- Combination of 'open' and 'override' is no longer a warning
KT-4829
Equal conditions in "when" is now a warningKT-6611
"This cast can never succeed" warning is no longer reported forFoo<T> as Foo<Any>
KT-12302
'abstract' modifier for a member of interface is no longer a warningKT-12452
'open' modifier for a member of interface without implementation is now a warningKT-11111
Overriding by inline function is now a warning, overriding by a function with reified type parameter is an error
KT-4285
No warning for a non-tail call when the method inherits default arguments from superclassKT-4764
Spurious "Variable must be initialized" in try/catch/finallyKT-11750
Exceptions when creating various entries with the name "name" in enumsKT-11998
Smart cast to not-null is not performed on a boolean property in 'if' condition
- Optimize coercion to Unit, POP operations are backward-propagated
KT-11499
Compiler crashes with "Incompatible stack heights"KT-11943
CompilationException with extension property of KClassKT-12125
Wrong increment/decrement on Byte/Char/Short.MAX_VALUE/MIN_VALUEKT-12192
Exhaustiveness check isn't generated for when expression returning UnitKT-12200
Erroneously optimized away assignment to a property initialized to zeroKT-12582
"VerifyError: Bad local variable type" caused by explicit loop variable type
- Reduced number of IO operation when loading kotlin compiled classes
- Support
-language-version
command line option for source compatibility with older releases
- Improve documentation (including
KT-11632
) - List iteration used in collection operations is performed with an indexed loop when the list supports
RandomAccess
and the operation isn't inlined
- Smart completion after "by" and "in"
- Improved completion in bodies of overridden members (when no type is specified)
- Improved presentation of completion items for property accessors
- Fixed keyword completion after 'try' in assignment expression
KT-8527
Include non-imported declarations on the first completionKT-12068
Special completion item for "[]" get-operator accessKT-12080
Parameter names are now higher up in completion list
- Fixed enum members being present in completion as static members
- Fixed QuickDoc not working for properties generated for java classes
KT-11609
No named arguments completion should be after dotKT-11633
Wrong indentation after completing a statement in data classKT-11680
Code completion of label for existing return with value inserts redundant whitespaceKT-11784
Completion for 'if' statement should add parentheses automaticallyKT-11890
Completion for callable references does not propose static Java membersKT-11912
String interpolation is not converted to ${} form when accessing this.propertyKT-11957
No "catch" and "finally" keywords in completionKT-12103
Smart completion for nested SAM-adapter produces short unresolved nameKT-12138
Do not show "::error" in smart completion when any function type accepting one argument is expectedKT-12150
Smart completion suggests to compare non-nullable with null
KT-11692
Support Spring model diagrams for Kotlin classesKT-12079
Support "Autowired members defined in invalid Spring bean" inspection on Kotlin declarationsKT-12092
Implement bean references in @Qualifier annotationsKT-12135
Automatically configure components based on 'basePackageClasses' attribute of @ComponentScanKT-12136
Implement package references inside of string literalsKT-12139
Support Spring configurations linked via @Import annotationKT-12278
Implement Spring @Autowired inspectionKT-12465
Implement Spring @ComponentScan inspection
KT-12091
Fixed unstable behavior of Spring line markersKT-12096
Fixed rename of custom-named beans specified with Kotlin annotationKT-12117
Group Kotlin classes from the same file in the Choose Bean dialogKT-12120
Show autowiring candidates line markers for @Autowired-annotated constructors and constructor parametersKT-12122
Fixed line marker popup on functions with @Qualifier-annotated parametersKT-12143
Fixed "Spring Facet Code Configuration (Kotlin)" inspection descriptionKT-12147
Fixed exception on analyzing object declaration with @Component annotationKT-12148
Warn about object declarations annotated with Spring@Configuration
/@Component
/etc.KT-12363
Fixed "Autowired members defined in invalid Spring bean (Kotlin)" inspection descriptionKT-12366
Fixed exception on analyzing class declaration upon annotation typingKT-12384
Fixed bean references in factory method calls
- New icon for "New -> Kotlin Activity" action
- "Change visibility on exposure" and "Make visible" fixes now support all possible visibilities
KT-5010
"Redundant semicolon" inspection with quickfixKT-9757
Quickfix for "Unused lambda expression" warningKT-10844
Quick fix to add crossinline modifierKT-11090
"Add variance modifiers to type parameters" inspectionKT-11255
Move Element Left/Right actionsKT-11450
"Modality is redundant" inspectionKT-11523
"Add @JvmOverloads annotation" intentionKT-11768
"Introduce local variable" intentionKT-11806
Quick-fix to increase visibility for invisible memberKT-11807
Use function body template when generating overriding functions with default bodyKT-11876
Quickfix for "Extension function type is not allowed as supertype" errorKT-11920
"Increase visibility" and "Decrease visibility" quickfixes for exposed visibility errorsKT-12089
Quickfix "Make primary constructor parameter a property"KT-12121
"Add 'toString()' call" quickfix
- Fixed "Convert property initializer getter" intention being available inside lambda initializer
- Improved message for "Can be declared as 'val'" inspection
KT-3797
Quickfix to make a function abstract should not be offered for object membersKT-11866
Suggest "Create secondary constructor" when constructors exist but are not applicableKT-11482
Fixed exception in "Move to companion object" intentionKT-11483
Pass implicit receiver as argument when moving member function to companion objectKT-11512
Allow choosing any source root in "Move file to directory" intentionKT-10950
Keep original file package name when moving top-level declarations to separate file (provided it's not ambiguous)KT-10174
Optimize imports after applying "Move declaration to separate file" intentionKT-11764
Intention "Replace with a 'forEach' function call should replace 'continue' with 'return@forEach'KT-11724
False suggestion to replace with compound assignmentKT-11805
Invert if-condition intention breaks code in case of end of line commentKT-11811
"Make protected" intention for a val declared in parameters of constructorKT-11710
"Replace 'if' with elvis operator": incorrect code generated for 'if' expressionKT-11849
Replace explicit parameter withit
changes the meaning of code because of the shadowingKT-11870
"Replace with Elvis" refactoring doesn't change the variable type from T? to TKT-12069
Specify language for all Kotlin code inspectionsKT-11366
"object 'Companion' is never used" warning in intellijKT-11275
Inconsistent behaviour of "move lambda argument out of parentheses" intention action when using lambda calls with function arguments without parenthesesKT-11594
"Add non-null asserted (!!) call" applied to unsafe cast to nullable type causes AE at KtPsiFactory.createExpression()KT-11982
False "Redundant final modifier" reportedKT-12040
"Replace when with if" produce invalid code for first entry which has commentKT-12204
'Use classpath of module' option in existing Kotlin run configuration may be changed when a new run configuration is createdKT-10635
Don't mark private writeObject and readObject methods of Serializable classes as unusedKT-11466
"Make abstract" quick fix applies to outer class of object with accidentally abstract functionKT-11120
Constructor parameter/field reported as unused symbol even if it have 'used' annotationKT-11974
Invert if-condition intention loses commentsKT-10812
Globally unused constructors are not marked as suchKT-11320
Don't mark @BeforeClass (JUnit4) annotated functions as unusedKT-12267
"Change type" quick fix converts to Int for Long literalKT-11949
Various problems fixed with "Constructor parameter is never used as a property" inspectionKT-11716
"Simply 'for' using destructuring declaration" intention: incorrect behavior for data classesKT-12145
"Simplify 'for' using destructuring declaration" should work even when no variables declared inside loopKT-11933
Entities used only by alias are marked as unusedKT-12193
Convert to block body isn't equivalent for when expressions returning UnitKT-10779
Simplify 'for' using destructing declaration: intention / inspection quick fix is available only when all variables are usedKT-12285
Fix exception on test class generationKT-12502
Convert to expression body should be forbidden for non-exhaustive when returning UnitKT-12260
ISE while replacing an operator with safe call
- Apply injection for the literals in property initializer through property usages
- Enable injection from Java or Kotlin function declaration by annotating parameter with @Language annotation
KT-2428
Support basic use-cases of language injection for expressions marked with @Language annotationKT-11574
Support predefined Java positions for language injectionKT-11472
Add comment or @Language annotation after "Inject language or reference" intention automatically
KT-7851
Respect naming conventions in automatic variable renameKT-8044
,KT-9432
Support @JvmName annotation in rename refactoringKT-8512
Support "Rename tests" options in Rename dialog
KT-6363
Do not rename ambiguous references in import directivesKT-8541
,KT-8786
Do now show 'Rename overloads' options if target function has no overloadsKT-8544
Show more detailed description in Rename dialogKT-8860
Allow renaming class by constructor delegation call referencing primary constructorKT-8892
Suggest renaming base declarations on overriding members in object literalsKT-9156
Quote non-identifier names in Kotlin referencesKT-9157
Fixed in-place rename of Kotlin expression referring Java declarationKT-9241
Do not replace Java references to synthetic component functions when renaming constructor parameterKT-9444
Rename dialog: Allow typing any identifier without backquotesKT-9446
Warn about calls with default arguments if function to be renamed inherits default values from some base function which is excluded from renameKT-10713
Skip read-only declarations when renaming parameters
KT-4727
Convert Java code copied from browser or other sources
KT-11952
Assertion failed in PropertyDetectionCache.get on conversion of access to Java constant of anonymous typeKT-12046
Recursive property setterKT-12039
Static imports converted missing ".Companion"KT-12054
Wrong conversion of 'instanceof' checks with raw typesKT-12045
ConvertObject()
toAny()
- Support for @receiver tag
- Rendering of '_' and '*' standalone characters
- Rendering of code blocks
KT-9933
Indentation in code fragments is not preservedKT-10998
Spaces around links are missing in return blockKT-11791
Markdown links renderingKT-12001
Allow use of '@param' to document type parameter
- Inspections that check that kotlin IDEA plugin, kotlin Maven plugin and kotlin stdlib are of the same version
KT-11643
Inspections and intentions to fix erroneously configured Maven pom fileKT-11701
"Add Maven Dependency quick fix" in Kotlin source filesKT-11743
Intention to replace kotlin-test with kotlin-test-junit
KT-9492
Configuring multiple Maven ModulesKT-11642
Kotlin Maven configurator tags orderKT-11436
"Choose Configurator" control opens dialogs with inconsistent modality (linux)KT-11731
Default maven integration doesn't include documentation
KT-11438
Support navigation from stacktrace to inline function call site
- Do not step into inline lambda argument during step over inside inline function body
- Fix step over for inline argument with non-local return
KT-12067
Deadlock in Kotlin debugger is fixedKT-12232
No code completion in Evaluate Expression and Throwable at CodeCompletionHandlerBase.invokeCompletion()KT-12137
Evaluate expression: code completion/intention actions allows to use symbols from modules that are not referencedKT-12206
NoSuchFieldError in Evaluate Expression on a property of a derived class
- Added "Decompile" button to Kotlin bytecode toolwindow
KT-2919
Constructor calls are no longer highlighted as classesKT-6540
Infix function calls are now highlighted as regular function callsKT-9410
Annotations in Kotlin are now highlighted with the same color as in Java by defaultKT-11465
Type parameters in Kotlin are now highlighted with the same color as in Java by defaultKT-11657
Allow viewing decompiled Java source code for Kotlin-compiled classesKT-11704
Support file path references inside of Kotlin string literalsKT-12076
Kotlin Plugin update check: alwats display installed version numberKT-11814
New icon for kotlin annotation classes
KT-5960
Can't find usages for Java methods used from Kotlin by call conventionKT-8362
"New Kotlin file": Keywords should be escaped in package nameKT-8817
Fixed rename of Java getters/setters through synthetic property references in KotlinKT-9399
Find Usages omits Kotlin annotation parameter usage in Java sourceKT-9797
"Kotlin Bytecode" toolwindow breaks after closingKT-11145
Use progress indicator when searching usages in Introduce ParameterKT-11155
Allow running multiple Kotlin classes as well as running mixtures of Kotlin and Java classesKT-11495
Show recursion line markers for extension function calls with different receiverKT-11659
Generate abstract overrides for Any members inside of Kotlin interfacesKT-12035
Auto-format cast expressionsKT-12018
Auto-format spaces between function name and arguments in infix callsKT-12070
Add empty line in error message of Maven and Gradle configurationKT-11961
Formatter doesn't handle space before angle bracket in method definitionKT-12175
Formatter: don't enforce empty line between secondary constructors without bodyKT-12548
Formatter doesn't handle spaces next to the 'is' keywordKT-12446
Formatter does not process spaces before class type parametersKT-12634
Formatter doesn't handle spaces between method name and parenthesis in method callKT-11908
Allow properties with custom setters to be used in generated equals/hashCode/toStringKT-11617
Fixed title of Introduce Parameter declaration chooserKT-11817
Fixed rename of Kotlin enum constants through Java referencesKT-11816
Fixed usages search for Safe Delete on simple enum entriesKT-11282
Delete interface reference from super-type list when applying Safe Delete to Java interfaceKT-11967
Fix Find Usages/Rename for parameter references in XML filesKT-10770
"Optimize imports" will not keep import if a type is only referenced by kdocKT-11955
Copy/Paste inserts fully qualified name when copying function with overloadsKT-12436
"Replace explicit parameter with it": java.lang.Exception at BaseRefactoringProcessor.run()KT-12440
Removing unused parameter results in Exception "Refactorings should not be started inside write action"KT-12006
getLanguageLevel is slow for Kotlin light classesKT-12026
"Constant expression required" in Java for const Kotlin valuesKT-12259
ClassCastException in light classes while trying to create generic propertyKT-12289
Remove unnecessary '?' from 'serr' live templateKT-12110
Map help button of the Compiler - Kotlin pageKT-12075
Kotlin Plugin update check: make dumbawareKT-10255
call BuildManager.clearState(project) in apply() method of Kotlin Compiler Settings configurableKT-11841
New Project / Module wizard, Gradle: pure Kotlin module is created withoutrepositories
call in build.gradleKT-11095
Java cannot infer generic return type of Kotlin function (with java 8 language level)KT-12090
Intellij/Kotlin plugin does not handle generic return type of static method defined in Kotlin, called from JavaKT-12206
Fix NoSuchFieldError on accessing base property without backing field in evaluate expressionKT-12516
File Structure: Kotlin annotation classes have Java annotation iconsKT-11328
"New Kotlin class": generates packages when fully qualified name is specified
KT-11531
Optimize "KCallable.name"
- Improve performance of maps and sets
KT-6942
Generate structural equality check (i.e.Any.equals
) instead of referential check (===) value equality patterns inwhen
KT-7228
Wrong AbstractList signatureKT-8299
Wrong access to private member in autogenerated code in data classKT-11346
Reified functions likefilterIsInstance
are now available in JS Standard LibraryKT-12305
Incorrect translation ofvararg
in@native
functionsKT-12254
JsEmptyExpression in initializer when compiling code likeval x = throw Exception()
KT-11960
Wrong code generated when a method of a local class calls constructor of the classKT-10931
Incorrect inlining of library method with optional parameters
KT-11839
Maven goal to execute kotlin script
- Various problems with gradle 2.2 fixed:
KT-12478
,KT-12406
,KT-12478
KT-12074
Building Kotlin maven projects using a parent pom will silently failKT-11770
Warning "RuntimeException: Could not find installation home path" when using Gradle Incremental Compilation
- KT-7437, KT-7971, KT-7051, KT-6125, KT-6186, KT-11649 Implement missing checks for protected visibility
- KT-11666 Report "Implicit nothing return type" on non-override member functions
- KT-4328, KT-11497, KT-10493, KT-10820, KT-11368 Report error if some classes were not found due to missing or conflicting dependencies
- KT-11280 Do not perform smart casts for values with custom
equals
compared with==
- KT-3856 Fix wrong "inner class inaccessible" diagnostic for extension to outer class
- KT-3896, KT-3883, KT-4986
do...while (true)
is now considered an infinite loop - KT-10445 Prohibit initialization of captured
val
in lambda or in local function - KT-10042 Correctly handle local classes and anonymous objects in control flow analysis
- KT-11043 Prohibit complex expressions with class literals in annotation arguments
- KT-10992, KT-11007 Fix multiple problems related to smart casts
- KT-11490 Prohibit nested intersection types in return position
- KT-11411 Report "illegal noinline/crossinline" on parameter of subtype of function type
- KT-3083 Report "conflicting overloads" for functions with parameter of type parameter type
- KT-7265 Parse anonymous functions in blocks as expressions
- KT-8246 Handle break/continue for outer loop correctly in case of try/finally in between
- KT-11300 Report error on increment or augmented assignment when
get
is an operator butset
is not - Report warning about unused anonymous functions
- Improve callable reference type in some ambiguous cases
- Improve multiple diagnostic messages: KT-10761, KT-9760, KT-10949, KT-9887, KT-9550, KT-11239, KT-11819
- Fix several compiler bugs leading to exceptions: KT-9820, KT-11597, KT-10983, KT-10972, KT-11287, KT-11492, KT-11765, KT-11869
- KT-8269, KT-9246, KT-10143 Fix visibility of protected classes in bytecode
- KT-11363 Fix potential binary compatibility breakage on using
when
over enums in inline functions - KT-11762 Fix VerifyError caused by explicit loop variable type
- KT-11645 Fix NoSuchFieldError on private const property in multi-file class
- KT-9670 Optimize Class <-> KClass wrapping/unwrapping when getting values from annotation
- KT-6842 Optimize unnecessary boxing and interface calls on iterating over ranges
- KT-11025 Don't inline const val properties in non-annotation contexts
- KT-5429 Write nullability annotations on extension receiver parameters
- KT-11347 Preserve source file and line number of call site when inlining certain standard library functions
- KT-11677 Write correct generic signatures for local classes in inlined lambdas
- KT-12127 Do not write unnecessary generic signature for property delegate backing field
- Fix multiple issues leading to exceptions or bad bytecode being generated: KT-11034, KT-11519, KT-11117, KT-11479
- KT-3068 Load contravariantly projected collections in Java (
List<? super T>
) as mutable collections in Kotlin (MutableList<in T>
) - KT-11322 Do not lose type nullability information in SAM constructors
- KT-11721 Fix wrong "Typechecker has run into recursive problem" error on calling Kotlin get function as synthetic Java property
- KT-10691 Fix wrong "Inherited platform declarations clash" error on inheritance from generic Java class with overloaded methods
- KT-9546 Flush stdout and stderr before shutdown when executing scripts
- KT-10605 Disable colored output on certain platforms to prevent crashes
- Report warning instead of error on unknown "-X" flags
- Remove the compiler option "Xmultifile-facades-open"
- Reduce read disk activity
- Fix compiler daemon JAR cache clearing on IDEA Ultimate
- KT-11410 Reduce method count of the standard library by ~2k
- KT-9990 Optimize snapshot operations to return special collection implementations when result is empty or has single element
- KT-10794 EmptyList now implements RandomAccess
- KT-10821 Create at most one wrapper sequence for adjacent drop/take operations on sequences
- KT-11301 Make Map.plus accept Map out-projected by key type as either operand (receiver or parameter)
- KT-11485 Remove implementations of some internal intrinsic functions
- KT-11648 Add deprecated extension MutableList.remove to redirect to valid function removeAt
- KT-11348 kotlin.test: Make inline methods
todo
andcurrentStackTrace
@InlineOnly
not to lose stack trace - KT-11745 Rename parameters of
String.subSequence
to match those ofCharSequence.subSequence
- KT-10953 Clarify parameter order of lambda function parameter of
*Indexed
functions - KT-10198 Improve docs for
binarySearch
functions - KT-9786 Improve docs for
trimIndent
/trimMargin
- KT-9952 Improve
toString()
for lambdas and function expressions when kotlin-reflect.jar is available - KT-11433 Fix multiple resource leaks by closing InputStream instances
- KT-8131 Fix exception from calling
KProperty.javaField
on a subclass - KT-10690 Support
javaMethod
andkotlinFunction
for top level functions in a different file - KT-11447 Support reflection calls to multifile class members
- KT-10892 Load annotations of const properties from multifile classes
- KT-11258 Don't crash on requesting members of Java collection classes
- KT-11502 Clarify KClass equality
- KT-4124 Support nested classes
- KT-11030 Support local classes
- KT-7819 Support non-local returns in local lambdas
- KT-6912 Safe calls (
x?.let { it }
) are now inlined - KT-2670 Support unsafe casts (
as
) - KT-7016, KT-8012 Fix
is
-checks for reified type parameters - KT-7038 Avoid unwanted side effects on
is
-checks for nullable types - KT-10614 Copy array on vararg call with spread operator
- KT-10785 Correctly translate property names and receiver instances in assignment operations
- KT-11611 Fix translation of default value of secondary constructor's functional parameter
- KT-11100 Fix generation of
invoke
on objects and companion objects - KT-11823 Fix capturing of outer class'
this
in inner's lambdas - KT-11996 Fix translation of a call to a private member of an outer class from an inner class which is a subtype of the outer class
- KT-10667 Support inheritance from nested built-in types such as Map.Entry
- KT-7480 Remove declarations of LinkedList, SortedSet, TreeSet, Enumeration
- KT-3064 Implement
CharSequence.repeat
New features:
- Spring Support
- KT-11098 Inspection on final classes/functions annotated with Spring
@Configuration
/@Component
/@Bean
- KT-11405 Navigation and Find Usages for Spring beans referenced in annotation arguments and BeanFactory method calls
- KT-3741 Show Spring-specific line markers on Kotlin classes
- KT-11406 Support Spring EL injections inside of Kotlin string literals
- KT-11604 Support "Configure Spring facet" inspection on Kotlin classes
- KT-11407 Implement "Generate Spring Dependency..." actions
- KT-11408 Implement "Generate
@Autowired
Dependency..." action - KT-11652 Rename bean attributes mentioned in Spring XML config together with corresponding Kotlin declarations
- KT-11098 Inspection on final classes/functions annotated with Spring
- Enable precise incremental compilation by default in non-Maven/Gradle projects
- KT-11612 Highlight named arguments
- KT-7715 Highlight
var
s that can be replaced byval
s - KT-5208 Intention action to convert string to raw string and back
- KT-11078 Quick fix to remove
.java
when KClass is expected - KT-1494 Inspection to highlight public members with no documentation
- KT-8473 Intention action to implement interface or abstract class
- KT-10299 Inspection to warn on array properties in data classes
- KT-6674 Inspection to warn on protected symbols in effectively final classes
- KT-11576 Quick fix to suppress "Unused symbol" warning based on annotations on the declaration
- KT-10063 Quick fix for adding
arrayOf
wrapper for annotation parameters - KT-10476 Quick fix for converting primitive types
- KT-10859 Quick fix to make
var
with private setter final - KT-9498 Quick fix to specify property type
- KT-10509 Quick fix to simplify condition with senseless comparison
- KT-11404 Quick fix to let type implement missing interface
- KT-6785, KT-10013, KT-9996, KT-11675 Support Smart Enter for trailing lambda argument, try/catch/finally, property setter, init block
- Add
kotlinClassName()
andkotlinFunctionName()
macros for use in live templates - Auto-configure EAP-repository during Kotlin Maven and Gradle project set up
Issues fixed:
- KT-11678, KT-4768 Support navigation to Kotlin libraries from Java sources
- KT-9401 Support Change Signature quick fix for Java -> Kotlin case
- KT-8592 Fix "Choose sources" for Kotlin files
- KT-11256 Fix Navigate to declaration for Java constructor with
@NotNull
parameter - KT-11018 Fix
var
s shown in Ctrl + Mouse Hover asval
s - KT-5105, KT-11024 Improve incompatible ABI versions editor strap, show the hint on how to resolve the problem
- KT-11638 Fixed
hashCode()
implementation in "Generate equals/hashCode" action - KT-10971 Pull Members Up: Always insert spaces between keywords
- KT-11476, KT-4175, KT-10965, KT-11076 Formatter: fix multiple issues regarding space handling
- KT-9025 Improve "Create Kotlin Java runtime library" dialog usability
- KT-11481 Fix "Add import" intention not being available for
is
branches in when - KT-10619 Fix completion after package name in annotation
- KT-10621 Do not show non-top level packages after
@
in completion - KT-11295 "Convert string to template" intention: fix exception on certain code
- KT-10750, KT-11424 "Convert if to when" intention now detects effectively else branches in subsequent code and performs more accurate comment handling
- Configure Kotlin: show only changed files in the notification "Kotlin not configured", restore all changed files in undo action
- KT-11556 Do not show "Kotlin not configured" for Kotlin JS projects
- KT-11593 Fix "Configure Kotlin" action for Gradle projects in IDEA 2016
- KT-11077 Use new built-in definition file format (
.kotlin_builtins
files) - KT-5728 Remove closing curly brace in a string template when opening one is deleted
- KT-10883 "Explicit get or set call" quick fix: do not move caret too far away
- KT-5717 "Replace 'when' with 'if'": do not lose comments
- KT-10797 "Replace with operator" intention is not available anymore for non-
operator
functions - KT-11529 Highlighting range for unresolved annotation name does not include
@
now - KT-11178 Don't show "Change type arguments" fix when there's nothing to change
- KT-11789 Don't interpret annotations inside Markdown code blocks as KDoc tags
- KT-11702 Fixed resolution of Kotlin beans with custom name
- KT-11689 Fixed exception on attempt to navigate to Kotlin file from Spring notification balloon
- KT-11725 Fixed renaming of injected SpEL references
- KT-11720 Fixed renaming of Kotlin beans through SpEL references
- KT-11719 Fixed renaming of Kotlin parameters references in XML files
- KT-11736 Fixed searching of Java usages for @JvmStatic properties and @JvmStatic @JvmOverloads functions
- KT-11862 Fixed bogus warnings about unresolved types in the Change Signature dialog
- Fix several issues leading to exceptions: KT-11579, KT-11580, KT-11777, KT-11868, KT-11845, KT-11486
- Fixed NoSuchFieldException in Kotlin module settings on IDEA Ultimate
- KT-11705 "Smart step into" no longer skips methods from subclasses
- Debugger can now distinguish nested inline arguments
- KT-11326 Support private classes in Evaluate Expression
- KT-11455 Fix Evaluate Expression behavior for files with errors in sources
- KT-10670 Fix Evaluate Expression behavior for inline functions with default parameters
- KT-11380 Evaluate Expression now handles smart casts correctly
- KT-10148 Do not suggest methods from outer context in "Smart step into"
- Fix Evaluate Expression for expression created for array element
- Complete private members from libraries in Evaluate Expression
- KT-11578 Evaluate Expression: do not highlight completion variants from nullable receiver with grey
- KT-6805 Convert Java expression to Kotlin when opening Evaluate Expression from Variables view
- KT-11927 Fix "ambiguous import" error when invoking Evaluate Expression from Variables view for some field
- KT-11831 Fix Evaluate Expression for values of raw types
- Show error message when debug info for some local variable is corrupted
- Avoid 1s delay in completion in debugger fields if session is not stopped on a breakpoint
- Avoid cast to runtime type unavailable in current scope
- Fix text with line breaks in popup with line breakpoint variants
- Fix breakpoints inside inline functions in libraries sources
- Allow breakpoints at catch clause declaration
- KT-11848 Fix breakpoints inside generic crossinline lambda argument body
- KT-11932 Fix Step Over for
while
loop condition
- Protected members used outside of inheritors are converted as public
- Support conversion for annotation constructor calls
- Place comments from the middle of the call to the end
- Drop line breaks between operator arguments (except
+
,-
,&&
and||
) - Add non-null assertions on call site for non-null parameters
- Specify type for variables with anonymous type if they have write accesses
- KT-11587 Fix conversion of static field accesses from other Java class
- KT-6800 Quote
$
symbols in converted strings - KT-11126 Convert annotations in annotations parameters correctly
- KT-11600 Do not produce unresolved
toArray
calls for JavaCollection#toArray(T[])
- KT-11544 Fix conversion of uninitialized non-final field
- KT-10604 Fix conversion of scratch files
- KT-11543 Do not produce unnecessary casts of non-nullable expression to nullable type
- KT-11160 Fix IDE freeze
- KT-7729 Add Android Lint checks for Kotlin (from Android Studio 1.5)
- KT-11487 Fixed sequential build with kapt and stubs enabled when Kotlin source file was modified and no Java source files were modified
- KT-11264 Action to create new activity in Kotlin
- KT-11201 Do not ignore items with similar names in kapt
- KT-11944 Rename Android Extensions imports when the layout file is renamed/deleted/added
- KT-10321 Do not upcast ViewStub to View
- KT-10841 Support
@android:id/*
IDs in Android Extensions
- KT-8487 Experimental support for incremental compilation with project property
kotlin.incremental
- KT-11350 Fixed a bug causing Java rebuild when both Java and Kotlin are up-to-date
- KT-10507 Fix IllegalArgumentException "Missing extension point" on parallel builds
- KT-10932 Prevent compile tasks from running when nothing changes
- KT-11993 Fix NoSuchMethodError on access to internal members in production from tests (IDEA 2016+)
- KT-11584, KT-11514 Correct comparison of Long! / Double! with integer constant
- KT-11590 SAM adapter for inline function corrected
- KT-11468 More correct use-site / declaration-site variance combination handling
- KT-11478 "Couldn't inline method call" internal compiler error fixed
Analysis & diagnostics issues fixed:
- KT-2277 Local function declarations are now checked for overload conflicts
- KT-3602 Special diagnostic is reported now on nullable ‘for’ range
- KT-10775 No compilation exception for empty when
- KT-10952 False deprecation warnings removed
- KT-10934 Type inference improved for whens
- KT-10902 Redeclaration is reported for top-level property vs classifier conflict
- KT-9985 Correct handling of safe call arguments in generic functions
- KT-10856 Diagnostic about projected out member is reported correctly on calls with smart cast receiver
- KT-5190 Calls of Java 8 Stream.collect
- KT-11109 Warning is reported on Strictfp annotation on a class because it's not supported yet
- KT-10686 Support generic constructors defined in Java
- KT-6958 Fixed resolution for overloaded functions with extension lambdas
- KT-10765 Correct handling of overload conflict between constructor and function in JPS
- KT-10752 If inferred type for an expression refers to a non-accessible Java class, it's a compiler error to prevent IAE in runtime
- KT-7415 Approximation of captured types in signatures
- KT-10913, KT-10186, KT-5198 False “unreachable code” fixed for various situations
- Minor: KT-3680, KT-9702, KT-8776, KT-6745, KT-10919, KT-9548
JVM code generation issues fixed:
- KT-11153 NoClassDefFoundError is fixed on primitive iterators during boxing optimization
- KT-7319 Correct parameter names for @JvmOverloads-generated methods
- KT-10425 Non-const values of member properties are not inlined now
- KT-11163 Correct calls of custom compareTo on primitives
- KT-11081 Reified type parameters are correctly stored in anonymous objects
- KT-11121 Generic properties generation is fixed for interfaces
- KT-11285, KT-10958 Special bridge generation refined
- KT-10313, KT-11190, KT-11192, KT-11130 Diagnostics and bytecode fixed for various operations with Long
- KT-11203, KT-11191, KT-11206, KT-8505, KT-11203 Handling of increment / decrement for collection elements with user-defined get / set fixed
- KT-9739 Backticked names with spaces are generated correctly
JS translator issues fixed:
- KT-10579 Improved performance of sum() and average() for arrays
- KT-10821 Improved performance of drop() / take() for sequences
- KT-10840 Fix annotations on Java elements in reflection
New features:
- Compatibility with IDEA 2016
- Kotlin Education Plugin (for IDEA 2016)
- KT-9752 More usable file chooser for "Move declaration to another file"
- KT-9697 Move method to companion object and back
- KT-7443 Inspection + intention to replace assert (x != null) with "!!" or elvis
General issues fixed:
- KT-11277 Correct moving of Java classes from project view
- KT-11256 Navigate Declaration fixed for Java classes with @NotNull parameter in constructor
- KT-10553 A warning provided when Refactor / Move result is not compilable due to visibility problems
- KT-11039 Parameter names are now not missing in parameter info and completion for compiled java code used from kotlin
- KT-10204 Highlight usages in file is working now for function parameter
- KT-10954 Introduce Parameter (Ctrl+Alt+P) fixed when default value is a simple name reference
- KT-10776 Intentions: "Convert to lambda expression" works now for empty function body
- KT-10815 Generate equals() and hashCode() is no more suggested for interfaces
- KT-10818 "Initialize with constructor parameter" fixed
- KT-8876 "Convert member to extension" now removes modality modifiers (open / final)
- KT-10800 Create enum entry now adds comma after a new entry
- KT-10552 Pull Members Up now takes visibility conflicts into account
- KT-10978 Partially fixed, completion for JOOQ became ~ 10 times faster
- KT-10940 Reference search optimized for convention functions
- KT-9026 Editor no more locks up during scala file viewing
- KT-11142, KT-11276 Darkula scheme appearance corrected for Kotlin
- Minor: KT-10778, KT-10763, KT-10908, KT-10345, KT-10696, KT-11041, KT-9434, KT-8744, KT-9738, KT-10912
Configuration issues fixed:
- KT-11213 Kotlin plugin version corrected in build.gradle
- KT-10918 "Update Kotlin runtime" action does not try to update the runtime coming in from Gradle
- KT-11072 Libraries in maven, gradle and ide systems are never more detected as runtime libraries
- KT-10489 Configuration messages are aggregated into one notification
- KT-10831 Configure Kotlin in Project: "All modules containing Kotlin files" does not list modules not containing Kotlin files
- KT-10366 Gradle import: no fake "Configure Kotlin" notification on project creating
Debugger issues fixed:
- KT-10827 Fixed debugger stepping for inline calls
- KT-10780 Breakpoints in a lazy property work correctly
- KT-10634 Watches can now use private overloaded functions
- KT-10611 Line breakpoints now can be created inside lambda in init block
- KT-10673 Breakpoints inside lambda are no more ignored in presence of crossinline function parameter
- KT-11318 Stepping inside for each is optimized
- KT-3873 Editing code while standing on breakpoint is optimized
- KT-7261, KT-7266, KT-10672 Evaluate expression applicability corrected