Skip to content

1.0.5

Compare
Choose a tag to compare
@yole yole released this 08 Nov 16:21
· 86142 commits to master since this release

Compiler

  • KT-10210 Annotation written before a block-level expression now applies to the entire expression, not to its first prefix
  • KT-13565 Remove net/sf/cglib/core/* classes from compiler jars
  • KT-2787 Set reference target and report custom error instead unresolved reference for cases:
    interface, generic parameter, object + invoke, class without companion.
  • KT-13408 Fix decompilation of types based on local classifiers
  • KT-13730 Fix signature clash problems when extending Hashtable and similar classes
  • Support for property reference inlining
  • KT-11123 Fix implicit type arguments resolution for inner classes
  • KT-11263 Refine diagnostic about type arguments for an outer class
  • KT-12238, KT-10627 Fix inference when captured type is used as a lambda parameter type
  • KT-13950 Fix false positive "Cannot capture" error reporting
  • KT-13381, KT-13396 Prevent generation of delegations to interfaces private methods
  • KT-13295 Add warning for redundant lateinit modifier
  • KT-13952, KT-13005 Prohibit return type mismatch for delegation members
  • KT-8154 Fix AssertionError when delegating base interface and implementing derived interface
  • KT-13969 Fix VerifyError for do-while, continue and a condition in a local variable
  • KT-14025 Fix CCE in OverloadResolver.findRedeclarations
  • KT-14147 Report error on declaring 'getClass' in class or package
  • KT-14146 Fix detection of accidental overrides with synthetic bridge
  • KT-14188 Do not generate mutable collection stubs for Kotlin-only signatures
  • KT-14195 Write generic signature for autogenerated toArray
  • KT-13698 Optimize method count for collection stubs
  • KT-14243 Fix wrong invocation descriptor on calling implicitly generated implementation in class
  • KT-11585 Fix "Cannot pop operand off an empty stack" exception when accessing @JvmStatic property
  • KT-14242 Fix runtime exception on array?.size
  • Forbid use of expressions to the left of ::class
  • KT-13926 Report error on usages of classes deprecated with DeprecationLevel.HIDDEN
  • KT-14298 Add -api-version command line option
  • KT-5044 Generate more efficient bytecode for in on ranges with double, float and long element type
  • KT-14357 Fixed CompilationException in case of try-catch used in false condition
  • KT-14012 Fixed internal error on every first compilation after the source code change
  • KT-14304 Fixed inconsistent reporting of 'variable must be initialized' after assignment
    in anonymous object
  • KT-14158 Fixed possible exception thrown when reporting unreachable code diagnostics
  • KT-7929, KT-8442 Fixed various exceptions caused by trying to use destructuring declarations outside of a code block
  • KT-14447 Fixed compiler exception if a value was changed but not used
  • KT-14201 Fixed compiler exception for anonymous object with invoke and non-trivial closure
  • KT-13890 Fixed incorrect bytecode generation causing IllegalAccessError at runtime for invoking protected method with default arguments
  • KT-9297 Report "External declaration cannot be abstract" on property with external accessor

Reflection

  • Various runtime performance optimizations
  • KT-13700 Fix reflective access on overridden generic property reference

IDE

  • KT-12852 Support breadcrumbs for Kotlin
  • KT-13474 Fix performance of typing super call lambda
  • Re-highlight only single function after local modifications
  • Show "Variables and values captured in a closure" highlighting only for usages
  • KT-9125 Support Type Hierarchy on references inside of super type call entries
  • KT-13838 Add file name to the presentation of private top-level declaration (Go to symbol, etc.)
  • KT-12697 Expand selection selects ": Type"
  • KT-13693 Expand selection stops on brackets in indexing expression
  • KT-4519 Show first line for folded block comments
  • KT-5193 Multiline strings are now foldable
  • KT-13473 Structure view now shows local functions
  • KT-11775 Added icons for class initializers
  • KT-11776 Primary constructor members are shown in Project view when "Show members" is enabled
  • KT-13326 Speed search is now enabled in add import popup
  • KT-3363 Support "Surround with if" for expressions
  • KT-13927 exception Fixed on adding second inner class when there is a usage in Java of the first one
  • KT-9009 Support for auto-import of Java static methods
  • Improved performance for Find Usages of convention functions
  • KT-13643 Support for Find Usages of invoke operator method
  • KT-13605 Find Usages no longer fails to find usages of component function defined in Java
  • KT-13953 Import member popup no longer suggests methods when only property or variable is valid
  • KT-9019, KT-10178 Improved display of structure when "Group by file structure" is enabled
  • KT-13475 Show context when invoking Show Implementations from Find Usages popup
  • KT-13140 "Copy Reference" now copies JVM name of class or method to clipboard
  • KT-10095 Support "Show expression type" in variable declaration position
  • KT-10588 Show smart cast information in "Show expression type"
  • KT-11310, KT-8803 Use short names in Show Expression Type
  • KT-11640 Optimize imports prevents accidental changes in resolve because of import priorities
  • KT-13976 Search Everywhere: Render function parameter types
  • KT-13977 Search Everywhere: Render extension type in prefix position
  • KT-12966 Fixed possible deadlock in IDE
  • KT-13136 Reduced plugin memory usage on projects with large number of modules
  • KT-13861 Correct Parameter Info for SAM adapters
  • KT-13981, KT-5117 Add indent before colon of super types list on new line
  • KT-7718 Fixed indent in constructor delegate call
  • KT-13584 Fixed IDE misbehavior (exceptions, index corruption) after Java to Kotlin conversion
  • KT-12402 Fixed resolve of databinding
    classes inside the IDE
  • KT-14131 Formatter now removes spaces in labeled expressions
  • KT-14327 Allow to select single word on double click in one line doc comment
  • KT-14452 Fix handling of underscores in Markdown links
  • KT-14153 Use correct fully-qualified name when creating run configurations for nested classes
  • KT-13753 Fixed "Go to implementations" when a class/interface and its implementations are both declared in a local scope
  • KT-14508 Improved performance of certain Find Usages operations

IDE. Code Completion

  • KT-4710 Postfix code completion
  • KT-13298 Completion after override val or override fun suggests base class method/property names
  • KT-13047 Autocomplete no longer inserts a fully-qualified variable name inside a String
  • KT-12083 Insert {} if needed when completing in string literal
  • KT-13833 JavaScript: Smart type completion uses lower priority for elements of dynamic type
  • KT-13728 Implicitly imported functions are shown higher in completion lists than non-imported
  • KT-8664 Hide componentX() functions for data classes from completion
  • KT-12077, KT-13009 Code completion and auto-import no longer insert FQN for annotations with use-site target inside primary constructor
  • KT-13780 Fix failure of code completion in certain conditions
  • KT-9835 Fix detection of receiver nullability
  • KT-13810 Fix incorrect deletion of last inserted character

IDE. Refactorings

  • KT-13155 Implement "Introduce Type Parameter" refactoring
  • KT-11017 Implement "Extract Superclass" refactoring
  • KT-11017 Implement "Extract Interface" refactoring
    Pull Up: Support properties declared in the primary constructor
    Pull Up: Support members declared in the companion object of the original class
    Pull Up: Show member dependencies in the refactoring dialog
  • KT-9485 Push Down: Support moving members from Java to Kotlin class
  • KT-13963 Rename: Implement popup chooser for overriding members
Issues Fixed
  • KT-13542 Rename: Do not search parameter text occurrences outside of its containing declaration
  • KT-8672 Rename: Optimize search of parameter references in calls with named arguments
  • KT-9285 Rename: Optimize search of private class members
  • KT-8867 Rename: Rename all overridden members if user chooses to refactor base declaration(s)
  • Support inplace rename on type parameters
  • KT-13630 Do not show Change Signature dialog when applying "Remove parameter" quick-fix
  • KT-13535 Pull Up: Remove visibility modifiers on adding 'override'
  • Pull Up: Drop 'override' modifier if moved member doesn't override anything
  • KT-13216 Move: Report separate conflicts for each property accessor
  • KT-13215 Move: Forbid moving of enum entries
  • KT-13553 Move: Do not show directory selection dialog if target directory is already specified by drag-and-drop
  • KT-13660 Move: Do not drop object receivers when calling variable of extension functional type
  • KT-13903 Move: Remove companion object which becomes empty after the move
  • KT-13916 Move: Report visibility conflicts in import directives
  • KT-13906 Move Nested Class to Upper Level: Do not show directory selection dialog twice
  • KT-13901 Move: Do not ignore target directory selected in the dialog (DnD mode)
  • KT-13904 Move Nested Class to Upper Level: Preserve state of "Search in comments"/"Search for text occurrences" checkboxes
  • KT-13909 Move Files/Directories: Fix behavior of "Open moved files in editor" checkbox
  • KT-14004 Introduce Variable: Fix exception on trying to extract variable of functional type
  • KT-13726 Move: Fix bogus conflicts due to references resolving to wrong library version
  • KT-14096 Rename: When renaming Kotlin file outside of source root do not rename its namesake in a source root
  • KT-13928 Move Inner Class to Upper Level: Fix replacement of outer class instances used in inner class constructor calls
  • KT-12556 Allow using whitespaces and other symbols in "Generate -> Test Function" dialog
  • KT-14122 Generate 'toString()': Permit for data classes
  • KT-12398 Call Hierarchy: Show Kotlin usages of Java methods
  • KT-14114 Move: Fix exception on moving Kotlin file without declarations
  • KT-14157 Rename: Rename do-while loop variables in the loop condition
  • KT-14128, KT-13862 Rename: Use qualified class name when looking for occurrences in non-code files
  • KT-6199 Rename: Replace non-code class occurrences with new qualified name
  • KT-14182 Move: Show error message on applying to enum entries
  • Extract Function: Support implicit abnormal exits via Nothing-typed expressions
  • KT-14234 Rename: Do not suggest type-based names for functions with primitive return types

IDE. Inspections, Intentions and Quickfixes

  • Intention to convert loops over collections to use of standard library higher-order functions (filter, map, all, none etc.)
  • KT-13519 Add intention+inspection to remove empty parentheses from method call with single lambda parameter
  • KT-13384 Inspection to warn on using == with array types
  • KT-12804 Add quickfix for "A type annotation is required on a value parameter"
  • KT-11525 Implement "Create type parameter" quickfix
  • KT-13521 Warning that right part of "expression ?: null" is useless
  • KT-13773, KT-13674 Quickfixes for FINAL_UPPER_BOUND diagnostic
  • KT-9590 Quickfix for accessing ::class of a non-reified type parameter
  • KT-13551 Inspection + intention to replace .let { it.foo() } with .foo()
  • KT-13744 Add "Copy concatenation text to clipboard" intention
  • KT-13635 Implement quick fix to convert a too long char literal to a string
  • KT-13945 Add intention to replace Math.max/min with coerceAtLeast/coerceAtMost
  • KT-9839 Add intention to convert primary constructor to a secondary one and back
  • KT-9931 Implement "Remove unused assignment" quickfix
  • KT-13937 Inspection/Intention to replace size check with 'isNotEmpty' and 'isEmpty'
  • KT-14241 Inspection/Intention to remove empty class body
  • Inspection to detect implicit casts from dynamic to another Kotlin type
  • KT-14032 Quickfix to replace if with elvis + safe-cast
  • KT-7488 Intention action on a local variable of data class type: convert to multi-variable declaration
  • KT-14238 Quickfix for ambiguously annotated binary expression
  • KT-9950 Auto-import now offers to import extension method when an instance method has the same name but a mismatched signature
  • KT-14342 Add quickfixes for lateinit errors
  • KT-14199 Add Library: Fix exception due to resolution being run in the "dumb mode"
  • Convert Receiver to Parameter: Fix this replacement
  • KT-10871, KT-12625 Inspection to highlight redundant calls of conversion methods
  • KT-14084 "Replace if expression with elvis operator" is now able to convert chained calls to safe-calls
  • KT-12019 Added inspection to highlight redundant if statements
Issues fixed
  • KT-9490 Convert receiver to parameter: use template instead of the dialog
  • KT-11483 Move to Companion: Do not use qualified names as labels
  • KT-13874 Move to Companion: Fix AssertionError on running refactoring from Conflicts View
  • KT-13883 Move to Companion Object: Fix exception when applied to class
  • KT-13876 Move to Companion Object: Forbid for functions/properties referencing type parameters of the containing class
  • KT-13877 Move to Companion Object: Warn if companion object already contains function with the same signature
  • KT-13933 Convert Parameter to Receiver: Do not qualify companion members with labeled 'this'
  • KT-13942 Redundant 'toString()' in String Template: Disable for qualified expressions with 'super' receiver
  • KT-13878 Remove Redundant Receiver Parameter: Fix exception receiver removal
  • KT-13588 Allow to convert empty Unit returning functions to expression form
  • KT-12297 Add function to supertype immediately removes redundant modifiers
  • KT-14143 Create from Usages: Do not suggest on type-mismatched expressions which are not call arguments
  • KT-14221 "Unused variable" is now reported only for last entry of destructuring declaration (if applicable)
  • KT-14244 Fix destructure intention for MultiMap entries
  • KT-13974 Enable use of intention to convert contains to in for CharSequence arguments
  • KT-13719 Highlighting range for "var can be val" no longer includes preceding annotations
  • KT-13884 Fix exception "Invalid root block PSI element" on replacing trivial when-expression to if
  • KT-13882 Convert Receiver to Parameter: Fix AssertionError
  • KT-14394 Lambda to reference: not-null types are now preferred for platform type receivers
  • KT-14420 Fixed false positive of "Convert lambda to reference" with nested lambdas
  • KT-14289 Correctly shorten qualified names when converting an object literal to lambda
  • KT-13958 Fixed behavior of "Surround with null check" inside if statements
  • KT-14065 Fixed false positive for "Variable can be declared immutable" for variables initialized in lambdas
  • KT-14550 Fix handling of named arguments in "Lambda to reference"
  • KT-14542 "If to elvis" handles calls with nullable result correctly

Debugger

  • KT-13534 Debugger didn't step into 'for' body if there's inline function call in range expression
  • KT-13751 Fix behavior of "step over" for inline calls
  • KT-12924 Fixed "Step over" diving into recursive call
  • KT-14068 Fixed showing toString() method result in watches when type has delegated properties
  • KT-14488 Fixed stepping into a function starting with a val or var when "Use simple getters" option is enabled

Android

  • Lint diagnostics updated to Android Studio 2.2
  • KT-11715 "Extract string resource" intention
Issues fixed
  • KT-12022 Report lint warnings even when file contains errors

Build Tools

  • Track changes in Java files generated by kapt2
  • KT-13633 All compiler options are now exposed as properties of Kotlin Gradle task
  • KT-14056 Fixed exception "This and base file have different roots"
  • KT-10401 Don't warn about absence of kotlin files
  • KT-13823 Kapt: asMemberOf() should also check the containing type itself, not only its supertypes
  • KT-13804 Kapt: Support type parameters in asMemberOf()
  • KT-13865 Kapt: typeElement.asType() should preserve type parameters and propagate it to its supertypes
  • KT-13917 Kapt: Dispose every JeElement and JeTypeMirror because some annotation processors may store them in static fields
  • KT-13984 Kapt: Support apt options
  • KT-14003 kotlinc shebang uses env
  • KT-13638 Changed the way "Configure Kotlin in project" sets up Maven build
  • KT-13478 Fixed creating Maven project by archetype
  • KT-14253 Fixed problem when switching from kapt2 to kapt
  • KT-14250 Fixed possible incremental build failure when using kapt
  • KT-14055 Corruption of incremental compilation caches triggers automatic rebuild
  • KT-14554 Newly introduced duplicate declarations correctly lead to failure of incremental build
  • Improvements to the use of local connections in compiler daemon

JavaScript

  • KT-2752 Support for @JsName annotation
  • KT-13345 Basic support for class literals
  • KT-7500 Remove intrinsic for Long.equals, because it's applied incorrectly for nullable longs
  • KT-13576 Implement Long.hashCode function
  • KT-12810 Support special modifiers(e.g. getter and setter) in IDL
  • KT-13583 Allow local classes to capture members of outer classes
  • KT-7397 Fix is operator with object operand
  • KT-8283 Implement same semantics as JVM for comparing arrays using ==
  • KT-13664 Write values of long compile-time constants as constants
  • KT-14082 Module was wrongly treated as JVM when js-stdlib is not the first in dependencies
  • KT-13825 Write simple name of class to constructor.$metadata$.simpleName.
  • KT-12707 Proper translation of a constructor in subclass that calls secondary constructor of parent class
  • KT-8385 Fix exception during translation of for expression with iterator having generic type constrained by Iterable
  • KT-13830 Support case when LHS of augmented assignment is something different than qualified expression or array access
  • KT-14194 HashMap.putAll no longer calls getKey/getValue

J2K

  • KT-11990 native modifier is converted to external
  • KT-13146 Fix infinite loop while converting self-referenced anonymous functions
  • KT-13529 Improve conversion of Java code on paste
  • KT-11804 Fix incorrect closing parenthesis position for method split to several lines
  • KT-13628 New line was not preserved when converting Java to Kotlin
  • KT-13818 Fix conversion of quotes in @code blocks
  • KT-13750 serialVersionUID is automatically marked as const
  • KT-11375, KT-9710, KT-8161 Fix conversion of floating point numbers where Java syntax isn't supported by Kotlin
  • KT-8091 Fix conversion of octal escape sequences in string and char literals
  • KT-10545 Fix conversion of array arguments for Java annotations
  • KT-13550 Fix conversion of Boolean.TYPE
  • KT-6424 Remove @SuppressWarnings annotations and //noinspection comments during conversion
  • KT-13020, KT-13021 Do not delete unknown tags when converting Javadoc comments to KDoc
  • KT-10885 Fix conversion of assignments used as expressions
  • KT-14205 Notify user about syntax errors in files being converted
  • KT-12677 Fix detection of SAM constructor redundancy
  • KT-5410 Fix conversion of string concatentations when the first object in an expresion is not a string
  • KT-5312 Fix handling of operator priority when convering complex expressions
  • KT-14248 Fix formatting of constructors after conversion
  • KT-12892 Fix placing of constructor comments after conversion
  • KT-13695, KT-13159, KT-14531 Paste context is now more comprehensively taken into account when converting Java code copied from non-IDE sources