Releases
v1.0.5
yole
released this
08 Nov 16:21
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
You can’t perform that action at this time.