mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-03-10 08:31:29 +00:00
342 KiB
342 KiB
CHANGELOG
1.5.0
Backend. Native
Backend. IR
KT-42684StackOverflowError on recursive inline arguments in inline fun
Compiler
New Features
KT-28791Kotlin serialization with inline classesKT-30222Support JVM target version selection in Kotlin bytecode tool windowKT-41884Support 'file' target for JvmSynthetic annotationKT-43677Support for Java recordsKT-43920Support loading binary Java annotations on fieldsKT-44278Generate SAM-converted lambdas and function references using 'invokedynamic' on JDK 1.8+KT-44650Deprecate JVM target version 1.6KT-44787Suspend functions in fun interfacesKT-44865Allow to declare protected constructors in sealed classesKT-44869Compiling sealed interface with version less than 1.5: error message from future could be provided
Performance Improvements
KT-6336Optimize generation of local functionsKT-7307Optimize infix call of String.plusKT-18692Optimize '<optimizable_range> step x' for-in loopKT-19978Inefficient bytecode generated for function references undergoing Java SAM conversionKT-23565OperationsMapGenerated.kt generates unreasonable amount of bytecodeKT-23825Tail suspend call utilizing elvis operator does not take advantage of suspend tail call optimizationKT-23826A suspend function on the right side of a returned || condition is not tail call optimizedKT-25348No compile time unsigned integer conversion when using hex literalKT-26060Support a compiler mode to compile lambda expressions usinginvokedynamicinstructionKT-26590Do not generate create method for suspend lambdas if its arity >= 2KT-27427Optimize nullable check introduced with 'as' castKT-28246Redundant boxing/unboxing isn't eliminated by the compiler in case of inline classes and javaClass intrinsicKT-30605Constant folding doesn't evaluate inv() functionKT-36845Generate enum-based TABLESWITCH/LOOKUPSWITCH on a value with smart cast to enum in JVM_IRKT-39585JVM BE generates redundant accessor calls when accessing static final field lifted from companionKT-40886Old JVM BE unspills ACONST_NULL from continuationKT-42621Kotlin binary size considerably larger for code extensively using stream APIKT-44153NI: Low Memory and IntelliJ hangs when quotes in split() are missedKT-45410JVM / IR: Extreme performance regression on arithmetic operations inside a loop
Fixes
KT-6007Support changed return type of inlined generic function when lambda returns anonymous objectKT-6055Failed invoke plus assign on array element accessed via several args through local get/set convention extensionsKT-6879CompilationException when local classes hierarchy is placed within other local or inner declarationKT-8120NoSuchMethodError on local class constructor call inside a local classKT-8199"Cannot pop operand off an empty stack" for local class using a captured variable as default value for constructor parameterKT-10835"AssertionError: Non-outer parameter incorrectly mapped to outer" when inlining object literal extending inner classKT-12790Don't generate synthetic accessors for private inline function/propertiesKT-13213IllegalArgumentException in ByteVector.putUTF8 on attempt to compile file with moderately long string literalKT-14628"UnsupportedOperationException: Don't know how to generate outer expression" for nested class inheriting from inner class with a companion objectKT-14833JVM internal error: Augment assignment and increment are not supported for local delegated properties and inline propertiesKT-15403Suspend operator get wrong code generated by BE (NoSuchMethodError)KT-15404Suspend operator set wrong code generatedKT-16084Proguard can't find enclosing class of let closure inside apply closureKT-16151Internal compiler error when using plusAssign operator with mutable mapKT-16221Support in/!in suspend operatorsKT-16282"Cannot pop operand off an empty stack" for plusAssign with default parameters in setter operatorKT-16445java.lang.VerifyError: Bad type on operand stackwhen delegating an interface through a private reified function inside an objectKT-16520Invalid bytecode semantics for set call by convention with default parametersKT-16567Inliner creates redundant objects on source inliningKT-16752Delegating function interface to function reference does not workKT-17554Incorrect cast to Unit generated on annotated when-expression with a single-branch if insideKT-17738Java cannot extend class implementing kotlin.collections.MapKT-17753Strange behavior of if and return statementsKT-18583"ISE: Recursive call in a lazy value" for generic sealed class with nested subclass in awhen(this)with inferred return typeKT-19861"IllegalStateException: Label wasn't found during iterating through instructions" forplusAssignwith safe callKT-20306Make 'when' over an 'expect' enum class non-exhaustiveKT-20869kotlin.jvm.internal.DefaultConstructorMarker should be publicKT-20996IllegalStateException: Cannot get FQ name of local class: class in metadata serialization for common codeKT-21014Incorrect bytecode generated for 'PrimitiveArray::size'KT-21092ReferencejavaClassfor generic property: "couldn't transform method node: get()"KT-21778"IllegalStateException: Couldn't build context" for inline function inside an anonymous objectKT-21900VerifyError on equals on generic primitive typeKT-22098"UnsupportedOperationException: Don't know how to generate outer expression" on extension function call inside lambda in anonymous object super constructor callKT-22488Bad line numbers generated for '&&' expressionKT-22972A compiler bug(?) in Number class descendantsKT-23619Transform stateless singleton lambda during inlineKT-23881Declaration of lambda in inlined apply block holds reference to superfluous references causing leakKT-24135Calling invoke on crossinline suspend lambda leads to no state-machineKT-24193NoClassDefFoundError: java/lang/Cloneable$DefaultImpls on inheritance from Cloneable through an interfaceKT-24305ClassNotFoundException when using Java reflection on local class in an inlined lambdaKT-24564Custom operator fun set on ByteArray resolves properly but is miscompiledKT-25400"NoClassDefFoundError: kotlin/KotlinPackage" with Turkish system locale on macOSKT-26130Incorrect method signature for a generic function with inline class as a type parameter upper boundKT-26360"Method from super interface has a different signature" for Interface that extends both interfaces with and without @JvmDefaultKT-26473Error on compiling inline class with calls of super methods equals(), hashCode(), toString()KT-26474VE “Bad type on operand stack” at runtime on calling toString() method of inline class with calls of super methods (toString(), equals(), hashCode()) insideKT-26592Do not generate private suspend functions as synthetic package-privateKT-27449NoSuchMethodError for local suspend function with suspend lambda parameter with default valueKT-27469"Cannot pop operand off an empty stack" for compound assignment (plusAssign) with avarargoperator getKT-27825Gradually prohibit non-abstract classes containing abstract members invisible from that classes (internal/package-private)KT-27830"Incompatible stack heights" with suspend inline function in do while loop that executes suspend lambdaKT-28042"Cannot pop operand off an empty stack" for a bound callable reference of lambda inside inline functionKT-28166"Argument 1: expected I, but found R" for generic method with generic parameter or receiver with inline class upper boundKT-28331Consider generating accessors for lateinit properties to avoid assertion on each callKT-28573Inliner does not update references to transformed objectKT-29331"AnalyzerException: Argument 1: expected R, but found I" with local generic extension property called onIntreceiverKT-29595NoClassDefFoundError with inline reified function with lambda argument returning anonymous objectKT-29802Incorrect reification when the same type parameter name is used for different reified typesKT-30041"AnalyzerException: Expected an object reference, but found ." on nested suspend function calls outer suspend functionKT-30066Consider adding annotations to ConeKotlinTypeKT-30280Inline class class literal gets unwrapped in annotation argumentsKT-30402Constant folding works incorrectly with unsigned arithmeticsKT-30548"java.lang.IndexOutOfBoundsException: Cannot pop operand off an empty stack" while compiling access to a private lateinit companion fieldKT-30629java.lang.VerifyError: Bad type on operand stackwhen using a function reference to a generic propertyKT-30933Inline function produces IllegalAccessError on property reference from different packageKT-31136"AnalyzerException: Argument 1: expected R, but found I" on x::javaClass when x is inline class object built around primitive typeKT-31227Prohibit using array based on non-reified type parameters as reified type arguments on JVMKT-31592NoSuchMethodException when inlining public function accessing a protected static Java class memberKT-31727Object expression captures all variables used in constructorKT-32023"AnalyzerException: Expected I, but found R" with inline suspend function used with callable referenceKT-32115NPE during initialization of enum class with delegated propertyKT-32153"AnalyzerException: Expected an object reference, but found ." with recursive suspend local functionKT-32351ClassNotFoundException for anonymous object implementing interface inside a lambda with data class and inline methodsKT-32384Safe cast to generic type argument with inline class upper-bound throws NPE instead of ClassCastExceptionKT-32579java.lang.VerifyError: Bad type on operand stack on calling inner class of inherited class in super class when casting to inherited classKT-32749"VerifyError: Call to wrong method" with inline function and accessing class field from anonymous objectKT-32793Generated code crashes by ClassCastException with local suspend function and inline classKT-32812"AnalyzerException: Argument 1: expected R, but found I" invoking function with default parameter inherited by inline classKT-32821Missing unboxing of inline class for complex hierarchy of suspend callsKT-33155ClassNotFoundException for qualified this in anonymous object and as a result of inline function callKT-33173Internal error: "AnalyzerException: Expected I, but found R" for supercall inside inline lambda from HashSet.remove implementationKT-33577NoSuchFieldError with nested anonymous objects accessing outer instance propertyKT-33836Wrong code generated for a local tailrec suspend function.KT-33873ClassCastException invoking UByte setter function via reflectionKT-34018"Cannot pop operand off an empty stack" with inline lambda with callable referenceKT-34186JDK11: class file contains malformed variable arity method for vararg sealed class constructorKT-34202IllegalAccessError on callable reference of function from multifile facade from standard libraryKT-34255@JvmStatic tailrec function: "Cannot pop operand off an empty stack"KT-34507Incorrect generated code for mutable collection stub methods in case of presence of functions with similar signatureKT-34665Possible index overflow in optimized "for" loop over withIndex()KT-34754Flow builder: "AnalyzerException: Expected an object reference, but found ." with recursive suspend local functionKT-34816"AnalyzerException: Expected an object reference, but found I" on "this" in inline class member extension suspend functionKT-34841ClassNotFoundException when invoke param function inside anonymous object methodKT-35008"AnalyzerException: Expected an object reference, but found I" in inline class companion calling private constructorKT-35166NoSuchMethodErrorat runtime with local property delegate on anonymous object referencing another anonymous objectKT-35224It's possible to pass non-spread arrays after arguments with SAM-conversionKT-35301MethodInliner fails with "AssertionError: call doesn't correspond to object transformation info" for qualified this in SAM constructor used as parameter of anonymous object inside inline lambdaKT-35419Failed to generate expression: KtNamedFunctionfor local suspend tailrec function with receiverKT-35511VerifyError: "Bad type on operand stack" after reificationKT-35553Kotlin compiler generates methods that always have line number 1 for Inline ClassesKT-35725"AssertionError: Couldn't find a context for a super-call" forsupermember call in property initializer of companion objectKT-36420ClassCastException with inline class Foo extending generic ComparableKT-36713AnalyzerException: "Incompatible stack heights" with suspend and inline suspend functionsKT-36794Move $assertionsDisabled field to the top-level classKT-36853IR: UninitializedPropertyAccessException on tailrec with object expression in default argumentKT-36875"RuntimeException: Trying to access skipped parameter" on synthetic local variable access from inline functionKT-36916AnalyzerException: Argument 1: expected I, but found R when using inline class with rxjavaKT-36957Exception during codegen: cannot pop operand off an empty stack (Nothing variable in string interpolation)KT-36984SAM adapter classes should be generated as anonymous inner classes in JVM_IRKT-37704Incorrect SMAP syntaxKT-37716"AssertionError: call doesn't correspond to object transformation info" with inline reified type parameter, anonymous object and lambda in constructor callKT-37972IllegalAccessError on initializing property reference for a property declared in JvmMultifileClass with -Xmultifile-parts-inheritKT-38100Support local delegated properties (not inlined) in new JVM default modesKT-38833JVM: java.lang.ClassCastException when loop variable is nullable in for loop over unsigned progressionKT-38849Read-only variable initialized in non-inline lambda using contract callsInPlace EXACTLY_ONCE is not captured correctly in nested lambdasKT-38869JVM BE produces invalid bytecode when inheriting from AbstractList and declaring methods that look like MutableList implementors (but they aren't)KT-38965"UnsupportedOperationException: Don't know how to generate outer expression: Closure" with reference to local variable in block argument of anonymous objectbydelegationKT-39289CCE in if-else inside annotated 'if' statementKT-39425AbstractMethodError: "Receiver class does not define or inherit an implementation of the resolved method" using classes with complex Java and Kotlin inheritance hierarchies.KT-39434IllegalAccessError with local delegated property in lambda in inlined functionKT-39687"Couldn't find captured this" when more than 3 inline functions are nestedKT-39784"IndexOutOfBoundsException: Cannot pop operand off an empty stack" caused by JvmOverloads annotation inside an inline classKT-40165ClassCastException caused by SAM conversion used on a functional interface with suspended functionKT-40179"VerifyError: Bad type on operand stack" with parent classgetextension function and child classsetextension function which used inside child classplusAssignextension functionKT-40277Fix generic types in special bridge methodsKT-40308NoSuchFieldError for multiple delegated extension properties with the same name in a companion objectKT-40338NoSuchFieldError on property without backing field that is called as function referenceKT-40392Deprecate JvmDefault annotation and old -Xjvm-default modesKT-40396NI: Exceptions when ambiguous type argument and generic invokeKT-40510"AssertionError: DELEGATION slice must override something" for ByteBuffer delegationKT-40601VerifyError: "interface method reference is in an indirect superinterface" when calling @JvmDefault suspend methodKT-40809"Couldn't find captured field" compiler error with local function with recursive call through method referenceKT-41056Increase stub version due to new "contract" keywordKT-41105IllegalStateException: 'Couldn't find declaration file ' with inline delegate declared in another fileKT-41165"IllegalStateException: Concrete fake override public final fun" when an enum class inherits an interface with a variable 'name' or 'ordinal'KT-41222"IllegalStateException: Concrete fake override public final fun" when a class property is inherited as merged 'var' from 'val' and 'var' from parent abstract class and interface propertiesKT-41255JDK 11: "VerifyError: Bad type on operand stack" with long function body with annotatedwhenexpressionKT-41427NoSuchMethodError caused by implementation by delegation to function referenceKT-41508ClassNotFoundException caused by object with overridden function inside a lambda with safe cast receiverKT-41750Inline classes: ClassCastExceptionError when calling .withIndex() on Iterator over ArrayKT-41758Deprecate kotlin.Metadata.bytecodeVersion and avoid using it in the compilerKT-41770AssertionError: "Asm parameter types should be the same length as Kotlin parameter types" cause by fun interfaceKT-41874"IllegalStateException: Couldn't obtain compiled function body" on extension delegated property with inline operator getValue in a different fileKT-41917[FIR] Incorrect calculating property type for override from intersection scopeKT-42012IllegalAccess to protected field instead of getterKT-42017"AssertionError: Unsigned type expected: UInt?" during codegen when a variable of nullable unsigned type is checking for presence in the rangeKT-42032"AnalyzerException: Expected I, but found R" while using Flow.reduce() with suspend function referenceKT-42034ArrayIndexOutOfBoundsException in PopBackwardPropagationTransformer on external override of function in inline classKT-42064"Parameter specified as non-null is null" with default value of the parameter in operator funKT-42069JVM IR: -Xreport-output-files doesn't report any source files for META-INF/*.kotlin_module filesKT-42083AbstractMethodError when 'remove' with irrelevant generic parameter but matching JVM signature is present in Kotlin collection classKT-42092JVM / IR: "AnalyzerException: Argument 1: expected R, but found J" when trying to add to ArrayList the result of a function applied to intKT-42175Psi2ir: "AssertionError: Undefined parameter referenced: " on augmented assignment on this in a BuilderInference lambdaKT-42179Platform declaration clash when extending abstract Java class implementing 'java.util.Collection' by abstract Kotlin class implementing Kotlin Set or ListKT-42321JVM IR: do not cast integer value based on the type of a literal receiver of an operator callKT-42337NoSuchMethodError in JVM backend with inheritance of private functions in the interfaceKT-42404"Supertypes of the following classes cannot be resolved" in Rider projectKT-42472No TYPE_INFERENCE_UPPER_BOUND_VIOLATED for Delegated Properties do not check types (in Kotlin 1.4.10)KT-42487"IndexOutOfBoundsException: Cannot pop operand off an empty stack" caused by USELESS_IS_CHECK of Double typeKT-42533(N until MIN_VALUE).reversed()should be an empty progression in for loopsKT-42588"IllegalStateException: Concrete fake override public open fun" caused byvaloverride withvarwith delegation.KT-42634Different bridges and abstract stubs behavior in abstract class implementing Map<K, String> in JVM and JVM_IRKT-42635ClassCastException with inline class in for loopKT-42662AbstractMethodError when using partially specialized generic Map classKT-42694@get:Synchronized causes the JVM getter method not to be generatedKT-42753"VerifyError: Bad invokespecial instruction: interface method reference is in an indirect superinterface" withjvm-default=allKT-42879JVM: Declaration clash in fun interface implementation returning an inline classKT-42900"VerifyError: Bad return type" incorrect bytecode when a property and an extension property in inline class have the same namesKT-42946FIR2IR: Fix super-calls to Java overrides of special built-inKT-42971JVM: "AssertionError: Unsigned type expected: T" with UInt loop rangeKT-42990"AssertionError: Next value after NEW should be one generated by DUP" caused by extension properties with accessors annotataed as @JvmStaticKT-43034AssertionError: Compiler fails with complicated tailrec + inline caseKT-43048JVM_IR: Implement coroutines state clearingKT-43050JVM IR: incorrect mangling for method with type parameter with inline class bound in the signatureKT-43059Different bridges behavior in class implementing Map<String, String> in JVM and JVM_IRKT-43063Redundant DefaultImpls delegate is generated in old JVM backend on explicit "duplicate" inheritance from interfaceKT-43069JVM: incorrect generic signature for method with implicit return type Nothing overriding a method from CollectionKT-43099Tailrec call in not tail-call position leads to internal compiler errorKT-43106JVM: customremovein Iterator subclass results in a synthetic bridgeKT-43120JVM: "Expected an object reference, but found ." caused by function which is passed as reference to suspend parameterKT-43167JVM IR, serialization: "No mapping for symbol: VALUE_PARAMETER INSTANCE_RECEIVER" with data class containing property defined in bodyKT-43255Verify error when inheriting from an abstract class implementing Collection with stub-like method in superclassKT-43303NI: False negative TYPE_INFERENCE_UPPER_BOUND_VIOLATED when inferred type argument is not a subtype of type parameter upper boundKT-43333AbstractMethodError when calling 'toArray' from Java on a Kotlin Collection with custom internal 'toArray'KT-43334AbstractMethodError when calling 'remove' from Java on a Kotlin Collection with custom internal 'remove'KT-43342[FIR2IR] No getter or backing field found for delegated member callKT-43347[FIR] Synthetic setter with unmatched parameter type isn't foundKT-43401JVM_IR. Additionalsynchronizedflag on JvmOverloads-generated adapter for Synchronized functionKT-43405Turkish locale, Linux Mint: "NoSuchMethodError: 'int[] kotlin.jvm.internal.Intrinsics$Kotlin.intArrayOf(int[])'" withintArrayOffunction callKT-43460JVM: redundant private setter is generated in case of multifile facadeKT-43473"VerifyError: Bad type on operand stack" caused by operatorgetwith optional argument in superclass when called via square brackets on subclassKT-43518JVM_IR. Additionalstrictfpflag on JvmOverloads-generated adapter for Strictfp functionKT-43569FIR: inapplicable candidate(s): kotlin/collections/setKT-43616[FIR] Nullable type parameter-based type after merge in ifKT-43669FIR: No real overrides for FUN IR_EXTERNAL_DECLARATION_STUBKT-43682Inline extension method of a multifile library inline class not foundKT-43687FIR: UnusedChecker does not take annotation arguments into accountKT-43688FIR: unused checker doesn't handle invokes properlyKT-43749"UnsupportedOperationException: Don't know how to generate outer expression: Closure" caused by Flow and collect method with function reference as a parameterKT-43812JVM IR: SAM wrapper class with generic supertype mentions missing type parameter in the signatureKT-43832JVM IR: missing bridges for inheritance of class from interface in a complex generic diamond hierarchyKT-43851JVM IR: function call returning object instance is removed during constant propagationKT-43864JVM: "Assertion error after mandatory stack transformations: incorrect bytecode" with lateinit property of type T, which has a primitive type upperboundKT-43887Problem with FunctionReferenceLowering$FunctionReferenceBuilder in kotlin nativeKT-43912JVM internal error: Augment assignment and increment are not supported for local delegated properties and inline propertiesKT-43915Back-end (JVM) Internal error: wrong bytecode generated for default methodKT-43938NSME when calling 'kotlin.Number' methods on instance of Java class extending Kolin abstract class extending 'kotlin.Number'KT-43942org.jetbrains.kotlin.codegen.CompilationException: Back-end (JVM) Internal error: Failed to generate functionKT-43949FIR: unresolved callable reference as lambda returnKT-43983IllegalStateException: "Couldn't obtain compiled function body for public final suspend inline fun" after moving inline extension function to libraryKT-43984FIR: recursion in overridden symbolsKT-43984FIR: recursion in overridden symbolsKT-44010FIR: Inapplicable constructor due to an unresolved referenceKT-44030FIR2IR: uncached type parameters in delegated propertyKT-44032FIR2IR: uncached type parameters in Java fieldKT-44050FIR: anonymous object as IR parentKT-44054FIR2IR: incorrect IR origin for substituted override functionKT-44058CompilationException: open suspend fun with @JvmStatic in open class companionKT-44069please remove deprecated usagesKT-44066FIR Java: override ambiguity with vararg value typeKT-44114CompilationException when inlining a extension suspend function declared in interface companion with 'this' reference to extension receiverKT-44131"UnsupportedOperationException: Don't know how to generate outer expression: Closure" when using suspend lambda and a function referenceKT-44140JVM IR: compilation of kotlin.Result crashes with IOOBE while generating toString-implKT-44141JVM IR: "ISE: There should be underlying type for inline class type" on usage of type parameter with Result upper bound inside a lambdaKT-44192Allow a greater number of constants in an enum classKT-44202"ClassCastException" when getting delegated property with inline class and Any/Any? typeKT-44210KJS / IR: "AssertionError: Undefined parameter referenced: defined" caused by plus assign operators in build blocksKT-44233[IR] Collection Stub generation not correctly considering java.util Collection iteratorsKT-44234Private companion property with explicit setter generates invalid bytecodeKT-44269"[TAILREC_ON_VIRTUAL_MEMBER_ERROR] Tailrec is not allowed on open members" with Spring annotation and private tailrec functionKT-44284Make Kotlin binaries publicly unavailable (set KotlinCompilerVersion.IS_PRE_RELEASE = true)KT-44316ReenteringLazyValueComputationException when analyzing complex lazy delegateKT-44347Back-end (JVM) Internal error: Couldn't transform method node for suspend function with wrong local for ContinuationKT-44368"IllegalStateException: Error type encountered" when inlining 'invoke' operator without enough information on type variableKT-44412JVM IR backend fails to compile break in condition of do whileKT-44420False NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATION with 1.4.30-RCKT-44429JVM IR: unnecessary integer unboxing leads to NPE when using mockito-kotlinKT-44439Type inference of generic types failing java interopKT-44440Too many Nothings in inferred typeKT-44471Fix failing script tests after switching to 1.5KT-44474Compiler expects sealed type inheritors from platform specific source-sets in when expression in common source-setKT-44483JVM IR: CCE on calling generic vararg function reference with Array expected typeKT-44527Suspend function with kotlin.Result: ClassCastException class kotlin.Result cannot be cast to class ...KT-44529Inline class calls wrong iterator method in for loopKT-44533JVM IR: ClassFormatError on synthetic $suspendImpl method generated in interface for a @JvmDefault functionKT-44540Regression in 1.4.30 in intellij-community: type mismatch for generic function call with generic Java classKT-44546NI: changed variable fixation order (that can lead to changed resolution)KT-44550KotlinBinaryClassCache leaks Kotlin plugin classloader on plugin unloadKT-44563Type Inference loosing type annotations in lambda type expectation for function calls with block parametersKT-44583"Supertypes of the following classes cannot be resolved" error message gives no contextKT-44627JVM IR: ACCIDENTAL_OVERRIDE when overriding a generic field where the type parameter has a primitive boundKT-44631"IndexOutOfBoundsException: Cannot pop operand off an empty stack" caused by a default param in inner class constructor which uses method or field from receiverKT-44647"IllegalAccessError: class TestKt tried to access private method" with String BuildergetandincoperatorKT-44651JVM / IR: "IllegalStateException: Illegal type substitutor" with if-else inside class constructor argument inside another if-elseKT-44660Internal inline functions in companion object with inline class return type fails compilationKT-44671JVM_IR: ClassCastException: Result$Failure cannot be cast to Result with multithreaded coroutinesKT-44703JVM / IR: "IllegalStateException: Unhandled special name in mangledNameFor" caused by a reference to inline class inside interface's companion with lazy initializationKT-44712JVM / IR: Behavior change after enabling with MockitoKT-44714Debugger / Coroutines: Local variables are trimmed out too aggressivelyKT-44722JVM IR: ClassCastException with inline class, let and bound function referenceKT-44726JVM IR: Incorrect KType nullability for platform type reified as non-nullKT-44781JVM IR: java.lang.NoSuchFieldError: $noName_0 when calling a crossinline lambda within a suspending lambdaKT-44798JVM IR: Inherited platform declarations clash for class implementing both List and SetKT-448011.4.30 JVM IR: Unbound symbols not allowed with anonymous objectKT-44803FIR bootstrap: incorrect nullability is set for type alias-based typeKT-44827Non-existing outer class is written in anonymous class for SAM wrapper in inline lambda with captureKT-44837JVM / IR: ClassCastException with Result object when it is used by a generic method in a suspend callKT-44875JVM_IR.hashCodecall is generated on interface target in fun interface equalityKT-44878JVM_IR: "IllegalStateException: Unexpected types" when checking non-nullable variable isinrange between nullable ones with smart-castKT-44926MPP: Actual typealias to compiled inline class incompatible with expect inline classKT-44947Sealed interfaces: Sealed fun interface leads to "NoWhenBranchMatchedException"KT-44993JVM IR: VerifyError on getfield with Kotlin generic field and elvis operatorKT-45008JVM IR: hashCode is generated as invokeinterface if smart cast to interface is presentKT-45011JVM / IR: "AssertionError: Unbound symbols not allowed"KT-45022IR: "AssertionError: Undefined variable referenced" from psi2ir caused by plusAssign operator of objectKT-45064JVM IR: "java.lang.AssertionError: SyntheticAccessorLowering should not attempt to modify other files!" with member reference to property in another file with private setterKT-45067"IllegalArgumentException: Wildcard mast have a bound for annotation of WILDCARD_BOUND position" with BEAM SDK 2.27KT-45069JVM / IR: New SAM conversions mode fails when converting from Unit to AnyKT-45131JVM / IR: "RuntimeException: Lambda, SAM or anonymous object should have only one constructor" caused by inline class that type cast to reified type parameter inside lambda in inline functionKT-45139Inline class: AssertionError: Expected top level inline classKT-45166JVM / IR: "AbstractMethodError: Receiver class does not define or inherit an implementation of the resolved method of interface" caused by interface with suspend functionKT-45187JVM / IR: ClassCastException caused by substituting generic type of vararg parameter with java.lang.VoidKT-45195JVM IR: annotation methods are generated as default interface methods ifallopenis usedKT-45243"IllegalStateException: Lambdas shouldn't be visited by ESExpressionVisitor" caused by lambda insidekotlin.test.assertNotNullKT-45259JVM: ClassCastException caused by Result as lambda parameter typeKT-45292AssertionError with recursive inline extension propertyKT-45300Deprecate super calls in public-api inline functionsKT-45409Rename jspecify annotations’ package and default not null annotationKT-45446JVM / IR: NullPointerException caused by unreachable code and comparisonKT-45721JVM / IR: "Unbound symbols not allowed" caused by class reference in sequence lambdaKT-45853JVM / IR: "Accidental override" caused by inheriting Throwable.getCause from Java interfaceKT-45861Turning warnings into errors for calls with type parameters annotated by @OnlyInputTypesKT-45865JVM IR: "VerifyError: Bad type on operand stack" withenumValueOfon a value from a list of stringsKT-45868JVM IR: ClassCastException with SAM function in init block when SAM is generated via invokedynamicKT-45920JVM IR: "Accidental override" on redefiningget()in custom Map classKT-45934JVM IR: "java.lang.IllegalStateException: Function has no body" for class implementing interface by delegationKT-45945JVM / IR: "AssertionError: Unexpected variance in super type argument" with contravariance and intersection typesKT-45963JVM / IR: "AbstractMethodError: Receiver class does not define or inherit an implementation of the resolved method" in Dokka testsKT-45967JVM IR: "IllegalAccessError" with invokedynamic to Java SAM over callable reference to private functionKT-45982Wrong subtyping result on captured types with postponed type variablesKT-46007JVM / IR: "ClassCastException: kotlin.Unit cannot be cast to java.lang.String" caused by default suspend function in interfaceKT-46060JVM IR: NullPointerException from RangeContainsLowering whencontainsis a @JvmStatic function in objectKT-46069JVM IR: unbound type parameter on generic bound adapted function referenceKT-46092JVM IR: AssertionError "Array type expected: @[FlexibleNullability] kotlin.CharArray?" on super call to Java constructor with primitive varargKT-46104The message on inline -> value class migration should not say that inline classes are deprecatedKT-46131Kotlin 1.5.0-RC errors when reading class fileKT-46160JVM IR: IllegalAccessException at runtime for member reference to JvmMultifileClass member from stdlibKT-46186Type inference regression in Kotlin 1.5 with constrained generic return types
Docs & Examples
KT-45884Incorrect description for JVMtoUpperCasemethod
IDE
KT-33233Use dependency of library to build built-ins in IDE, instead of loading them from the current classloaderKT-34023kotlin.KotlinNullPointerException at org.jetbrains.kotlin.backend.common.FunctionsFromAnyGenerator.getPrimaryConstructorProperties(FunctionsFromAnyGenerator.kt:66)KT-35947KFunctionN.call is unresolved in IDE in Kotlin/JVM projectKT-37702Code analysis speed: on-the-fly analysis diagnostics reportingKT-41048[FIR-IDE] Properly implement methods in KtFirPackageScopeKT-41671Missing nullability information in properties using type inference from get()KT-43824KtLightClassForSourceDeclaration#isInheritor works in a different way than java implementationKT-44128IDE: Kotlin JVM record has incorrect property accessors as seen from JavaKT-44487MPP, IDE: No error in IDE when sealed class inheritor from common source-set is not used in exhaustive when expression in platform source-setKT-45254Highlighting for files with certain errors appears only on second openingKT-46097Light classes: Incomplete nullability information for a getter method of a kotlin property defined in private constructor
IDE. Decompiler, Indexing, Stubs
KT-43699IDE: Unresolved extension method from Java code for simple class with typealias and generics (IllegalStateException: Unknown type parameter)KT-44756Infinite "UpToDateStubIndexMismatch: PSI and index do not match." with IDEA 2021.1 EAP upon attempt to open "org.gradle.configurationcache" even they seem to be the same
IDE. Gradle Integration
KT-37127Implement precise importing of platforms of root source sets (commonMain/commonTest) when hierarchical multiplatform support is enabledKT-42048KJS / Gradle integration: Could not determine the dependencies of task ':webApp:testPackageJson' in Android Studio 4.2 Canary 11
IDE. Gradle. Script
KT-46215Dead lock on closing project during the import in IJ211 through ScriptDefinitionsManager
IDE. Inspections and Intentions
KT-23824Return lifted out of if condition causes suspend tail call optimization to no longer applyKT-38155Lift assignment out of 'if' produces type mismatch without manually adding a semicolonKT-44821IDE: False positive NO_ELSE_IN_WHEN caused by sealed class and when in another moduleKT-46088[IDEA] Incorrect behavior of replace inline class with value class intention
IDE. Misc
KT-44675Incorrect reference to resource into 202 plugin
IDE. Refactorings
KT-44079Sealed Interfaces: Move refactoring should warn about violation of hierarchy restrictionsKT-44839Sealed interfaces: move refactoring warnings works with "more freedom for sealed classes" rules for language level < 1.5
IDE. Script
KT-43288Allow push notifications about script configuration /dependencies changes via theScriptDefinitionsProviderEP
JavaScript
KT-39272KJS / IR: Can't use javascript keywords as JsNameKT-41650JS IR BE:defaultshould be a reserved identifierKT-42176KJS / IR: Interface default method in sub-interface not resolved correctly from extension on super-interfaceKT-44103[JSIR] TypeError when bumping from 1.4.20 to 1.4.30-M1KT-44180KJS / IR: NPE in ConstTransformer of compileDevelopmentExecutableKotlinJs/compileProductionExecutableKotlinJs tasksKT-44415Kotlin/JS with IR and kotlin-react: "too much recursion" error in runtime in browserKT-44433KJS IR: support function interfaces with suspend memberKT-44469KJS / IR: Incorrect export functions with bridgesKT-44718MPP/ KJS: "IllegalStateException: Unsupported operation" with serialization plugin and incremental compilationKT-44796KJS / IR: default parameter of function with @JsName leads to "RangeError: Maximum call stack size exceeded"KT-45059KJS / IR: Add possibility for runtime diagnostics of DCE result
Libraries
KT-12109Add stdlib method that combines mapNotNull() and first/firstOrNull()KT-25571Make random implementations serializableKT-26234Floored division and remainder function for numeric typesKT-32996kotlin.test: add assertContentEquals for comparing content of arrays, iterables, sequencesKT-39177Make CharCategory available in common multiplatform codeKT-40225Support adding kotlin-test as a single dependency, as it should be with a multiplatform libraryKT-42071Strict version of String.toBoolean()KT-42720Kotlin ArrayDeque on JVM: provide optimized toArray methodKT-42840Commonize and generalize String.contentEquals that is currently JVM-onlyKT-43772Kotlin/Native unfinished workers detected.KT-44168Prevent storing NaN and negative zero in kotlin.time.DurationKT-44369Commonize Char.titlecaseChar() and Char.titlecase() that are currently JVM-onlyKT-44783Add IS_VALUE flag for value classes to kotlinx-metadata-jvmKT-44815Remove kotlin-annotations-android and JVM compiler support for @ParameterName/@DefaultValue/@DefaultNullKT-45213Update Unicode version used in K/N for Char and String case conversion functions
Middle-end. IR
KT-43831Compilation failed, IrSimpleFunctionPublicSymbolImpl is already boundKT-44100KJS / IR: Top level declarations added in IR plugin are not referenceable from other modulesKT-45170IR: "AssertionError: Single expression value for GET_OBJECT" caused by inc operator of field inside scope function inside object
Native
KT-42446Native: SIGSEGV in Kotlin_Array_get on linuxArm64KT-43502[K/N] relocation R_X86_64_PC32 cannot be used against symbol __environ; recompile with -fPICKT-442951.4.21 Kotlin native ndk compiler crashKT-44774ld fails with CALL16 reloc at 0x48f00 not against global symbol (Linux MIPS)KT-44746Different hashCode() results for Kotlin/Native stdlib
Native. C and ObjC Import
KT-44824cinterop tool no longer appends .klib to produced klibs
Native. C Export
KT-36639MPP: Build ios "staticLib" or "sharedLib" binary failed if interface contains member extension functionKT-41725Dynamic library doesn't load on raspberrypi
Native. ObjC Export
KT-44549In the Xcode debug session, call stack is missing a frame when the iOS app fails
Native. Platforms
KT-45094Fail to compile Kotlin Native sources under Oracle Linux 7
Reflection
KT-44594Avoid using unnecessary array types reflection in kotlin-reflectKT-44782Add KClass.isValue to kotlin-reflect
Tools. Ant
KT-16227Ant task: do not include runtime by default if destination is a jarKT-44293Support fork mode in kotlinc Ant task
Tools. CLI
KT-17344Include kotlin-reflect to resulting jar if "-include-runtime" is specifiedKT-43220-include-runtime should add .kotlin_builtins to the outputKT-43704Illegal reflective access by com.intellij.util.ReflectionUtil to method java.util.ResourceBundle.setParent(java.util.ResourceBundle)KT-44078Do not include module-info.class of kotlin-stdlib.jar to the resulting jar with -include-runtimeKT-44232CLI: do not pass -noverify to java process starting from JDK 13KT-45566JDK 16 - e: java.lang.NoClassDefFoundError: Could not initialize class org.jetbrains.kotlin.com.intellij.pom.java.LanguageLevel
Tools. CLI. Native
KT-43874Native / CLI: provide a way to show difference between Jvm and Native compilers
Tools. Compiler Plugins
KT-45783Serialization: "AnalyzerException: Expected an object reference, but found I" caused byJvmInlineandSerializableannotations
Tools. Gradle
KT-31027java.lang.NoSuchMethodError: No static method hashCode(Z)I in class Ljava/lang/Boolean; or its super classes (declaration of 'java.lang.Boolean' appears in /system/framework/core-libart.jar)KT-43605Kotlin Gradle Plugin 1.4.20 undeclared system property reads cause problems with Gradle configuration cache enabledKT-44204Kotlin Gradle Plugin 1.4.21 makes impossible to use ANTLR in other pluginsKT-44361Gradle: deprecate options includeRuntime, noStdlib, noReflectKT-44462Kotlin Gradle plugin createscompileconfiguration with Gradle 7.0KT-44834Gradle Kotlin DSL: AddlanguageSettingsconfiguration lambda withoutapplycallKT-44949Compatibility with Gradle 7.0KT-44957gradle - target.compilations seems to be deprecatedKT-45340Update minimal supported version of Kotlin Gradle Plugin to 6.1
Tools. Gradle. JS
KT-43237KJS:-jsLegacyNaming Convention is incompatible with NPMKT-43869Error in webpack configuration not displayedKT-44614Update Node.JS and Yarn versionsKT-44616Kotlin/JS: IR backend with React: "Uncaught TypeError: _this__0 is undefined" runtime error in browserKT-45574Sync Kotlin/JS compile tasks into one folder (build/js/packages//kotlin)
Tools. Gradle. Multiplatform
KT-42098Commonizer is re-launched for every included Gradle buildKT-43116Merge together MultiplatformHighlightingTest and MultiplatformAnalysisTestKT-44322KotlinTargetComponent maintenance for -sources.jarKT-44900Support gradle configuration cache with kotlin.multiplatform plugin
Tools. Gradle. Native
KT-46122kotlinx-serialization and kotlinx-datetime can't be built with 1.5.0-RC
Tools. JPS
KT-13631Compilation fails on Turkish locale because of locale-sensitive uppercasingKT-44644Mark all@JvmMultifileClassparts compiled in the previous round as dirty in the JPS plugin, similarly to how it’s done in the Gradle plugin
Tools. Scripts
KT-45194KT: Generate Kotlin Entities script: it doesn't workKT-44580Scripts: Unable to set new file annotation hooks after first snippet compilation
Tools. kapt
KT-43686KaptWithoutKotlincTask should use@CompileClasspathforkotlinStdlibClasspathfor cache relocateability.KT-44130KAPT changes field order in 1.4.30-M1KT-44909Kapt: ReenteringLazyValueComputationException without stacktrace caused bywhenexpression with sealed class function without explicit return typeKT-45168KAPT: Java stubs generated for Kotlin files generated by annotation processors
1.4.32
IDE
KT-43824KtLightClassForSourceDeclaration#isInheritor works in a different way than java implementationKT-45287LightClasses:KtLightSimpleModifierListis no more a parent ofKtLightAnnotationForSourceEntryKT-45291LightClasses: can't get annotations for constructor val-parameterKT-45417ULC leakage of primitive type annotations
Tools. CLI
KT-44758kotlin-compiler-embeddable dependency includes unshadedfastutilpackageKT-45007Concurrent Kotlin script compilation/execution results in NullPointerException in KeyedExtensionCollector.getPoint()
1.4.31
Compiler
KT-397762020.3+: Unresolved reference to Kotlin stdlib function
IDE. Gradle Integration
KT-44845After update to Kotlin 1.4.30 all external dependencies is unresolved in IDE with kotlin.mpp.enableGranularSourceSetsMetadata=true
IDE. Gradle. Script
KTIJ-11137build.gradle.kts: Fatal error during save/load standalone scripts settingsKTIJ-898Unable to import with Kotlin DSL buildscript - NullPointerException in KotlinDslScriptModelProcessorKt.toListOfScriptModels
IDE. Multiplatform
KTIJ-1200KotlinIconProviderKt.addExpectActualMarker takes up to 180+ seconds
IDE
Fixes
KT-44697New JVM IR backend notification - narrow its triggering to Kotlin projectsKT-44523IDE notification for trying new JVM backendKTIJ-696Freeze during startup of IDEA with intellij project with Kotlin (211-1.4.10-release-IJ1440)
1.4.30
Android
KT-42383HMPP: Bad IDEA dependencies: Missing dependency from p1:jvmAndAndroid to p2:jvmAndAndroid
Backend. Native
KT-38772Native: support non-reified type parameters in typeOfKT-42234Move LLVM optimization parameters into konan.propertiesKT-42649IndexOutOfBoundsException during InlineClassTransformer loweringKT-42942Native: optimize peak backend memory by clearing BindingContext after psi2irKT-43198Native: supportinitblocks inside inline classes
Compiler
New Features
KT-28055Supportinitblocks inside inline classesKT-28056Consider supporting non-public primary constructors for inline classesKT-41265Support noarg compiler plugin for JVM IRKT-42094Allow open callable members in expect interfacesKT-43129FIR: Support OverloadResolutionByLambdaReturnTypeKT-43592Promote JVM IR compiler backend to BetaKT-43919Support loading Java annotations on base classes and implementing interfaces' type argumentsKT-44021Enable JVM IR backend by default in 1.5
Performance Improvements
KT-41352JVM IR: reduce bytecode size in for loops and range checks with 'until' by not using inclusive endKT-41644NI: Infinite compilationKT-42791OutOfMemoryError on compilation using kotlin 1.4 on a class with a lot of type inferenceKT-42920NI: Improve performance around adding constraints
Fixes
KT-11454Load annotations on TYPE_USE/TYPE_PARAMETER positions from Java class-filesKT-11732Verify error for generic interface method invocation with default parametersKT-14612"ISE: Recursive call in a lazy value" during processing of a (weakly) recursive type aliasKT-18344Upper bound of a typealias type parameter is not reported correctly if it contains the typealias itselfKT-18768@Notnull annotation from Java does not work with varargsKT-20548java.lang.IllegalStateException: Illegal class container on simple Java code parsingKT-22465Excessive synthetic method for private setter from superclassKT-23816Inline classes: constants and annotationsKT-24158AE: No receiver found on incomplete code with $-signsKT-24392Nullability of Java arrays is read incorrectly if @Nullable annotation has both targets TYPE_USE and VALUE_PARAMETERKT-26229Lambda/anonymous function argument in parentheses is not supported for callsInPlace effectKT-29735KNPE atKtEnumEntrySuperclassReferenceExpression.getReferencedElementwith explicit type argument inside enum member constructorKT-31389ClassFormatError with companion object in annotation with @JvmStaticKT-31907ISE: UNIT_EXPECTED_TYPE on parsing array literal inside lambda with Unit return typeKT-32228Inconsistent boxing/unboxing for inline classes when interface is specialized by object expressionKT-32450Inline class incorrectly gets re-wrapped when provided to a functionKT-35849Missing nullability assertion on lambda return value if expected type has generic return value typeKT-35902Kotlin generates a private parameterless constructor for constructors taking inline class arguments with default valuesKT-36399Gradually support TYPE_USE nullability annotations read from class-filesKT-36769JVM IR: Missing LVT entries for inline function (default) parameters at call siteKT-36982JVM IR: SAM adapter classes are generated as syntheticKT-37007JVM IR: extraneous property accessors are generated in multifile facade for InlineOnly propertyKT-37317[FIR] Add support of extension functions in postponed lambda completionKT-38400FIR: interface abstract is preferred to Any method in super resolveKT-38536JVM IR: bound adapted function references are not inlinedKT-38656FIR: determine overridden member visibility properlyKT-38901FIR: Make behavior of integer literals overflow consistent with FE 1.0KT-39709[FIR] False positive UNINITIALIZED_VARIABLE in presence of complex graph with jumpsKT-39923Result.Failure will get wrapped with Success when using with RxJavaKT-40198'$default' methods in 'kotlin/test/AssertionsKt' generated as non-synthetic by JVM_IRKT-40200IDE: Multiple top-level main functions in different files: broken highlighting, "No descriptor resolved for FUN"KT-40262ACC_DEPRECATED flag not generated for property getter delegate in multifile class facade in JVM_IRKT-40282Inline class wrapping Any gets double boxedKT-40464JVM_IR does not generate LINENUMBER at closing brace of (suspend) lambdaKT-40500Warnings reporting by Java nullability annotations doesn't work for not top-level typesKT-40926IDE import actions do not add required import for conventioninvoke()extension callKT-40948IllegalAccessError while initializing val property in EXACTLY_ONCE lambda that is passed to another functionKT-40991NI: UNRESOLVED_REFERENCE_WRONG_RECEIVER instead of FUNCTION_EXPECTED with conventioninvokecallKT-41163Double wrapped value in Result class after map operationKT-41284Spring CGLIB proxies break auto-generated data class componentN and copy methods when using JVM IRKT-41468JVM IR: IllegalAccessError on access to abstract base member from another package, from anonymous object inside abstract classKT-41491UNRESOLVED_REFERENCE_WRONG_RECEIVER instead of FUNCTION_EXPECTED when invoking non-functional value as a functionKT-41493JVM IR: names of classes for local delegated variables contain the variable name twiceKT-41792[FIR] Introduce & use ConeAttribute.UnsafeVarianceKT-41793[FIR] Make captured types accessible at the end of resolveKT-41809JVM IR: name for internal $default method doesn't include module nameKT-41810JVM IR: Deprecated(HIDDEN) class is incorrectly generated as syntheticKT-41841JVM IR: delegates for private functions with default arguments are generated in multifile classesKT-41857Flaky 'ConcurrentModificationException' throughkotlin.serialization.DescriptorSerializerKT-41903JVM IR: do not generate LineNumberTable in auto-generated members of data classesKT-41911JVM IR: nested big-arity function calls are not loweredKT-41957JVM IR: step into suspend function goes to the first line of the fileKT-41960JVM IR: smart step into members implemented with delegation to interface doesn't workKT-41961JVM IR: line numbers are not generated in JvmMultifileClass facade declarationsKT-41962JVM IR: intermittent -1 line numbers in the state machine cause double stepping in the debuggerKT-42001Cannot resolve symbol: AssertionError: Module <sdk 1.8> is not contained in his own dependenciesKT-42002JVM / IR: IllegalStateException: "No mapping for symbol: VAR IR_TEMPORARY_VARIABLE" caused by named argumentsKT-42021JVM / IR: "IndexOutOfBoundsException: Index 0 out of bounds for length 0" during IR lowering with suspend conversionKT-42033JVM IR: accidental override in Map subclass with custom implementations of some membersKT-42036IR: "AssertionError: TypeAliasDescriptor expected: deserialized class Nothing" when referencing typealias with @UnsafeVarianceKT-42043JVM IR: Don't generate collection stubs when implementing methods with more specific return typesKT-42044Compiler error when lambda with contract surrounded with parenthesesKT-42114JVM_IR generates stub for 'removeIf' in abstract classes implementing 'List' and 'Set'KT-42115JVM_IR doesn't generate 'next' and 'hasNext' method in an abstract class implementing 'ListIterator'KT-42116FIR: Java accessor function should not exist in scope together with relevant propertyKT-42117IR-based evaluator cannot handle Java static final fieldsKT-42118FIR2IR: field-targeted annotation is placed on a property, not on a fieldKT-42130FIR: type variable is observed after when condition analysisKT-42132FIR2IR: companion function reference has no dispatch receiverKT-42137JVM IR: AbstractMethodError on complex hierarchy where implementation comes from another supertype and has a more specific typeKT-42186JVM / IR: Infinite cycle in for expression when unsigned bytes are used in decreasing loop rangeKT-42251JVM / IR: "IllegalStateException: Descriptor can be left only if it is last" when comparing the i-th element of the container of Int? andiwith changeKT-42253JVM IR: NoSuchFieldError on local delegated property in inline function whose call site happens before declaration in the sourceKT-42281JVM / IR: AnalyzerException when comparing Int and array that cast to Any in if conditionKT-42340FIR2IR: duplicating fake overridesKT-42344IR-based evaluator doesn't support "annotation in annotation"KT-42346FIR: double-vararg in IR while resolving collection literal as Java annotation argumentKT-42348FIR: false UNINITIALIZED_VARIABLE in local classKT-42350FIR: false UNINITIALIZED_VARIABLE after initialization in try blockKT-42351FIR: false HIDDEN in enum entry member callKT-42354JVM / IR: "AssertionError: Unexpected IR element found during code generation" with KPropertygetinvocationKT-42359FIR2IR: cannot mangle type parameterKT-42373FIR2IR: local object nested class has no parent if forward-referenced by nested class supertypeKT-42384FIR (BE): top-level field has no parent class in BEKT-42496FIR resolve: synthetic property is written but has no setterKT-42517FIR: exception in BE for recursive inline callKT-42530"AssertionError: No type for resolved lambda argument" on attempting to assign a Pair to a couple of values in a scratch fileKT-42601[FIR] Inherited declaration clash for stdlib inheritorsKT-42622NI: IllegalStateException for if expression with method reference inside flowKT-42642ISE: NogetProgressionLastElementfor progression type IntProgressionTypeKT-42650JVM IR: extraneous nullability annotation on a generic function of a flexible typeKT-42656FIR2IR: unsupported callable reference for Java fieldKT-42725Debugger steps into core library inline functions in chained callsKT-42758JVM / IR: Deserialized object that overrides readResolve() is not reference equal to the singleton instanceKT-42770FIR: duplicating signatures in mangler (typealias for functional type)KT-42771FIR: duplicating signature in mangler (data class with delegate)KT-42814FIR: false UNINITIALIZED_VARIABLE in local function after if...elseKT-42844FIR: Property write in init block resolved to parameter writeKT-42846JVM_IR: NPE on function reference to @JvmStatic method in a different fileKT-42933JVM / IR: "AnalyzerException: Expected an object reference, but found I" with local delegate in inline classKT-43006JVM/JVM_IR: do not generate no-arg constructor for constructor with default arguments if there are inline class types in the signatureKT-43017JVM / IR: AssertionError when callable reference passed into a function requiring a suspendable functionKT-43051JVM IR: extraneous methods overridding default (Java 8) collection methods in inline class that extends MutableListKT-43067Inner class declaration inside inline class should be prohibitedKT-43068JVM IR: no generic signatures for explicitly written methods in a List subclass, whose signature coincides with MutableList methodsKT-43132JVM / IR: Method name '<get-...>' in class '...$screenTexts$1$1' cannot be represented in dex format.KT-43145JVM IR: $default methods in multi-file facades are generated as non-synthetic finalKT-43156FIR: false UNINITIALIZED_VARIABLE after initialization insynchronizedblockKT-43196JVM: extra non-static member is generated for extension property in inline classKT-43199JVM IR: synthetic flag for deprecated-hidden is not generated for DeprecatedSinceKotlin and deprecation from overrideKT-43207JVM IR: no collection stub foriteratoris generated on extending AbstractCollectionKT-43217JVM_IR: Multiple FAKE_OVERRIDES for java methods using @NonNull Double and java doubleKT-43225Confusing message of warning NULLABLE_TYPE_PARAMETER_AGAINST_NOT_NULL_TYPE_PARAMETERKT-43226"Incompatible stack heights" with non-local return to outer lambda inside suspend lambdaKT-43242JVM / IR: "AnalyzerException: Expected I, but found R" caused bywheninside object with @Nullable Integer subjectKT-43249Wrong code generated for suspend lambdas with inline class parametersKT-43286JVM IR: IAE "Inline class types should have the same representation: Lkotlin/UInt; != I" on smart cast of unsigned type value with JVM target 1.8KT-43326JVM_IR: No deprecated flag for getter of deprecated interface property copied to DefaultImplsKT-43327JVM_IR: No deprecated or synthetic flag for accessors of deprecated-hidden property of unsigned typeKT-43332FIR: Smart casts lead to false-positive ambiguityKT-43370JVM IR: No deprecated flag for getter of deprecated property copied via delegation by interfaceKT-43459JVM_IR. Wrong signature for synthetic $annotations method for extension property on nullable primitiveKT-43478NI: "IndexOutOfBoundsException: Index: 3, Size: 3" caused byischeck with raw type insideifcondition withwheninsideKT-43519JVM_IR. External functions generated differently in multi file facadesKT-43524JVM_IR. Missed deprecation flag on companion @JvmStatic property accessorKT-43525Prohibit JvmOverloads on declarations with inline class types in parametersKT-43536JVM IR: IllegalStateException is not caught by runCatching under Deferred.await() with kotlinx.coroutinesKT-43562JVM IR: incorrect mangling for Collection.size in unsigned arraysKT-43584[FIR] Java annotations with named arguments aren't loaded correctlyKT-43587Invalid default parameter value in expect actual declaration on jvmKT-43630"AssertionError: Number of arguments should not be less than number of parameters" during capturing intersection raw type with star projectionKT-43698NoSuchMethodError for inline class implementing interface with @JvmDefault methods, -Xjvm-default=enableKT-43741Report error on inline class implementing 'kotlin.Cloneable'KT-43845org.jetbrains.kotlin.codegen.CompilationException: Back-end (JVM) Internal error: Failed to generate expression: KtBlockExpressionKT-43956NI: "Error type encountered – UninferredParameterTypeConstructor" on "try" and other constructs with code block as a valueKT-44055Left uninferred type parameter for callable references inside special callsKT-44113Compiler frontend exception: Number of arguments should not be less than number of parameters, but: parameters=2, args=1KT-44145No highlighting for not initialized base constructor and NoSuchMethodError in Android plugin
IDE
New Features
KT-44075Sealed interfaces: New Kotlin Class/File menu update
Fixes
KT-29454Light class with unexpected name when using obfuscated libraryKT-31553Complete Statement: Wrong auto-insertion of closing curly brace for a code blockKT-33466IDE generates incorrectexternal overridewith body for overridingopen externalmethodKT-39458Add CLI support for UL classesKT-40403UAST: PsiMethod for invoked extension function/property misses@receiver:annotationsKT-41406Kotlin doesn't report annotations for type arguments (no way to add@Nls,@NonNlsannotations to String collections in Kotlin)KT-41420UAST does not return information about type annotationsKT-42194OOME: Java heap space from incremental compilationKT-42754MPP: no smart cast for Common nullable property used in platform moduleKT-42821MPP, IDE: Platform-specific errors are reported even when build doesn't target that platformKT-44116Add language version 1.5 to the compiler configuration preferencesKT-44523IDE notification for trying new JVM backendKT-44543Kotlin's LowMemoryWatcher leaks on Kotlin plugin unload
IDE. Android
KT-42381MPP: Bad IDEA dependencies: JVM module depending on built artifact instead of sources of module with Android Plugin applied
IDE. Completion
KT-44016Code completion: support for "sealed interface"KT-44250Code completion does not work in when expression with sealed type argument
IDE. Gradle. Script
KT-39105AE “JvmBuiltins has not been initialized properly” after creating new Gradle/Kotlin-based project via old Project Wizard
IDE. Inspections and Intentions
New Features
KT-22666"Create enum constant" quick fix could be providedKT-24556Add Remove quick fix for "Expression under 'when' is never equal to null"KT-34121Report unused result of data classcopymethodKT-34533INLINE_CLASS_CONSTRUCTOR_NOT_FINAL_READ_ONLY_PARAMETER: Add quickfix "Add val to parameter"KT-35215Quickfix for CONST_VAL_NOT_TOP_LEVEL_OR_OBJECT to removeconstmodifierKT-40251Intention action to evaluate compile time expressionKT-44017Sealed interfaces: Java side Inspection "implementation of Kotlin sealed interface is forbidden"KT-43941Sealed interfaces: intention to extend class/interfaceKT-44043Sealed interfaces: quickfix to move class/interface to proper location
Fixes
KT-20420Intention "Put arguments/parameters on separate lines" doesn't respect the "Place ')' on new line" Kotlin code style settingKT-21799Quickfix "Change function signature" for receiver type doesn't change itKT-22665"Create object" quick fix produce wrong code for enumKT-23934IntelliJ suggest "merge map to joinToString" even when such action is impossible due to suspending actions in mapKT-30894Wrong results of intention "Add names to call arguments" when backticked argument starts from digitKT-31523ReplaceWith introduces additional argument name for lambda when named argument is used on call-siteKT-31833JavaMapForEachInspection should report for expression with implicit receiverKT-33096Turn 'MapGetWithNotNullAssertionOperator' into an intentionKT-33212False positive "map.put() should be converted to assignment" inspection when class inherited from MutableMap has "set" methodKT-34270False negative "Join declaration and assignment" with constructor callKT-34859False positive "Should be replaced with Kotlin function" inspection for Character.toString(int) functionKT-34959False positive "Redundant overriding method" with different implemented/overridden signaturesKT-35051False positive "Remove redundant backticks" if variable inside the string and isn't followed by spaceKT-35097False positive "Call replaceable with binary operator" on explicit 'equals' call on a platform type valueKT-35165"Replace 'if' with elvis operator": don't suggest if val initializer is a complex expressionKT-35346False positive 'Make internal' suggestion for function inside interfaceKT-35357"Move lambda argument out of parentheses" does not preserve block commentsKT-38349Invalid suggestion to fold to elvis when having a var-variableKT-40704False negative "Redundant semicolon" at start of lineKT-40861"Convert to secondary constructor" intention expected on class nameKT-40879False positive "Redundant 'inner' modifier" when calling another inner class with empty constructorKT-40985"Remove explicit type arguments" is suggested when type has an annotationKT-41223False positive "Redundant inner modifier" inspection ignores constructor arguments of object expressionsKT-41246False positive "Receiver parameter is never used" with anonymous function expressionKT-41298"Remove redundant 'with' call" intention works incorrectly with non-local returns and single-expression functionsKT-41311False positive "Redundant inner modifier" when deriving from a nested Java classKT-41499"Convert receiver to parameter" produces code with incorrect order of generic type and function invocation in case of generic function with lambda as a parameterKT-41680False positive "Redundant inner modifier" when deriving from class with non-empty constructor and value passed to it from enclosing classKT-42201Add Opt-In action doesn't work if there is already OptIn annotationKT-42255"Replace elvis expression with 'if' expression" intention shouldn't introduce unnecessary variable if 'error' expression is used
IDE. JS
KT-43760KJS: Debugging Kotlin code for Node.js runtime doesn't work
IDE. Misc
KT-44018Sealed interfaces: IDE side implementation for hierarchy provider
IDE. Multiplatform
KT-40814MISSING_DEPENDENCY_CLASS when consuming native-shared library in a source-set with fewer targets than library has
IDE. Run Configurations
KT-34535Unable to run common tests on Android via gutter icon in a multiplatform project
IDE. Scratch
KT-25038Scratch: Destructuring declaration produces an unresolved referenceKT-43415Kotlin scratch file could not be run and could lead to dead lock
IDE. Script
KT-44117IDE / Scripts: custom kotlin script definitions aren't loaded
JavaScript
Fixes
KT-31072Don't use non-reified arguments to specialize type operations in IR inlinerKT-39964Throwable incorrectly implements constructor for (null, cause) args in K/JS-IRKT-40090KJS: IR. Invalid behaviour for optional parameters (redundant tail undefined parameters)KT-40686KJS: Uncaught ReferenceError caused by external class as type inside eventListener in init blockKT-40771KJS / IR: "ReferenceError: Metadata is not defined" caused by default parameter value in inner class constructorKT-41032KJS / IR: "AssertionError: Assertion failed" caused by class that is delegated to inherited interfaceKT-41076KJS / IR: "AssertionError: Assertion failed" caused by overridden extensiion function in child classKT-41771KJS / IR: IndexOutOfBoundsException "Index 0 out of bounds for length 0" caused by inline class with List in primary constructor and vararg in secondaryKT-42025KJS / IR: IrConstructorCallImpl: No such type argument slot: 0KT-42112KJS: StackOverflowError on @JsExport in case of name clash with function with Enum parameter with star-projectionKT-42262KJS:break-statements without label are ignored in awhenKT-42357KotlinJS - external class constructor with vararg does not correctly handle spread operator.KT-42364KJS: Properties of interface delegate are non-configurableKT-43212JS IR: supportinitblocks inside inline classesKT-43222KJS IR: prototype lazy initialization for top-level properties like in JVMKT-43313KJS / IR: "Can't find name for declaration FUN" for secondary constructorKT-43901Call to enum values() method from enum companion object leads to non-initialized enum instances
KMM Plugin
KT-41677Could not launch iOS project with custom display nameKT-42463Launch common tests for Android on local JVM via run gutterKT-43188NoSuchMethodError in New Module Wizard of KMM Project
Libraries
KT-41112Docs: add more details about bit shift operationsKT-41278map.entries.contains can return false if the argument is not MutableEntryKT-41356Incorrect documentation forrangeTofunctionKT-44456Introduce locale-agnostic API for case conversionsKT-44458Introduce new Char-to-code and Char-to-digit conversions
Middle-end. IR
KT-41765[Native/IR] Could not resolveFakeOverride()KT-42054Psi2ir: "RuntimeException: IrSimpleFunctionSymbolImpl is already bound" when using result of function with overload resolution by lambda return type
Native. C and ObjC Import
KT-42412[C-interop] Modality of generated property accessors is always FINAL
Native. ObjC Export
KT-38530Native: values() method of enum classes is not exposed to Objective-C/SwiftKT-43599K/N: Unbound symbols not allowed
Native. Platform libraries
KT-43597Support for Xcode 12.2 SDK
Native. Platforms
KT-43276Support watchos_x64 target
Native. Runtime
KT-42822Kotlin/Native Worker leaks ObjC/Swift autorelease references (and indirectly bridged K/N references) on Darwin targets
Native. Stdlib
KT-42172Kotlin/Native: StableRef.dispose race condition on Kotlin deinitRuntimeKT-42428Inconsistent behavior of map.entries on Kotlin.Native
Reflection
KT-34024"KotlinReflectionInternalError: Inconsistent number of parameters" withjavaMethodon suspending functions with inline class in function signature or inside the function
Tools. CLI
KT-43294Support-no-stdliboption for thekotlinrunnerKT-43406JVM: produce deterministic jar files if -d option value is a .jar file
Tools. CLI. Native
KT-40670Allow to override konan.properties via CLI
Tools. Compiler Plugins
KT-41764KJS /IR IllegalStateException: "Symbol for public kotlin/arrayOf is unbound" with serialization pluginKT-42976kotlinx.serialization + JVM IR: NPE on annotation with @SerialInfoKT-43725Prohibit inner and local classes in kotlin-noarg
Tools. Gradle
KT-38692KaptGenerateStubs Gradle task will not clean up outputs when sources are empty and not an incremental buildKT-40140kotlin-android plugin eagerly creates several Gradle tasksKT-41295Kotlin Gradle Plugin 1.4.20 Configuration Caching bug due to friendPath providerKT-42058Support moduleName option in Kotlin Gradle plugin for JVMKT-43054Implementation ofAbstractKotlinTarget#buildAdhocComponentsFromKotlinVariantsbreaks configuration cachingKT-43489Incremental compilation - unable to find history files causing full recompilationKT-43740Gradle out-of-process runner fails with unclear diagnostics if build directory does not existKT-43895Fix cacheability warnings for the Kotlin plugins
Tools. Gradle. JS
KT-42400Kotlin/JS: Gradle DSL: customField() is rejected in Groovy build.gradleKT-42462NPM dependency declaration with Groovy interpolated stringKT-42954Kotlin/JS: IDE import after changingkotlin.js.externals.output.formatdoes not re-generate externalsKT-43535Common webpack configuration breaks on lambda serialization in some casesKT-43668PackageJson task use file dependencies as is (files and directories), but only files necessaryKT-43793nodeArgs in NodeJsExec taskKT-43842KJS: Invalidoutput.librarysupport fornullvalueKT-44104KJS / Gradle: An ability to pass jvm args to K2JSDce process
Tools. Gradle. Multiplatform
KT-42269Setup default dependsOn edges for Android source setsKT-42413[MPP/gradle]withJavabreaks build on 1.4.20-M1KT-43141Gradle / Configuration cache: NPE from org.jetbrains.kotlin.gradle.tasks.KotlinCompileCommon.getKotlinOptions() on reusing configuration cache for task compileCommonMainKotlinMetadataKT-43329Gradle / Configuration cache: IAE “Parameter specified as non-null is null: method KotlinMetadataTargetConfiguratorKt.isCompatibilityMetadataVariantEnabled, parameter $this$isCompatibilityMetadataVariantEnabled” on reusing configuration cache for task compileKotlinMetadataKT-44298Kotlin 1.4.20+ MPP "root" module publication does not include the source JAR that used to be published in the -metadata modules
Tools. Gradle. Native
KT-39564Make kotlin-native Gradle tasks CacheableKT-42485Fail on cinterop: clang_indexTranslationUnit returned 1KT-42550Adding subspec dependency with git location failedKT-42849Gradle / Configuration cache: tasks nativeMetadataJar, runReleaseExecutableNative, runDebugExecutableNative are unsupported and fails on reusing configuration cacheKT-42938CocoaPods Gradle plugin: podBuildDependencies doesn't properly report xcodebuild failuresKT-43151Gradle / Configuration cache: UPAE “lateinit property binary has not been initialized” on reusing configuration cache for linkDebugExecutableNative, linkDebugTestNative, linkReleaseExecutableNative tasksKT-43516Failed to resolve Kotin library [Multiple Multiplatform modules]
Tools. Incremental Compile
KT-42937another compilation fail (problem with compilation caches?)
Tools. JPS
KT-39536JPS compilation fails with IOException "storage is already closed"
Tools. Parcelize
KT-41553JVM IR, Parcelize: IrStarProjectionImpl cannot be cast to class IrTypeProjection
Tools. Scripts
KT-43534Allow running "main.kts" script that does not end in a "main.kts" filename (would allow kotlin scripting on GitHub Actions)
Tools. kapt
KT-34340Incremental annotation processor recompile all files (only if KAPT enabled).KT-36667Kapt: Add a flag to strip kotlin.Metadata() annotations from stubsKT-40493KAPT does not support aggregating annotations processors in incremental modeKT-40882Kapt stub generation is non-deterministic for incremental compilationKT-41788NullPointerException: Random crashes of build using gradle and kapt because of not calling Processor.init()KT-42182KAPT: Does not consider generated sources for incremental compilation.
1.4.20
Android
KT-42121Deprecate Kotlin Android Extensions compiler pluginKT-42267Platform declaration clasherror in IDE when usingkotlinx.android.parcel.ParcelizeKT-42406Long or infinite code analysis on simple files modification
Backend. Native
KT-27534Bridges to Nothing-returning methods have incorrect signatureKT-30284Native: Nothing? type for expression override and crashKT-36430Optimize when with in range casesKT-38787Missing optimization for "in range" checkKT-39100Make Native behaviour of property initialization consistent with JVMKT-39798Override equals/hashCode in functional interface wrappers on NativeKT-39800equals/hashCode on adapted function references on NativeKT-41394Compilation failed: Backend Internal error: Exception during IR loweringKT-41907Framework test segfaults on GC on watchos_x86 compiled with -opt
Compiler
New Features
KT-21147JEP 280: Indify String Concatenation (StringConcatFactory)KT-34178Scripts should be able to access imports objectsKT-35549Support kotlin-android-extensions in JVM IR backend (for use with Jetpack Compose projects)KT-31567Support special semantics for underscore-named catch block parameters
Performance Improvements
KT-20571Coroutines: Reduce number of local variables stored at suspension pointKT-28016Coroutine state-machines spill/unspill shall be optimized using data-flow analysisKT-33394UI freezes triggered by QualifiedExpressionResolver.resolveToPackageOrClassPrefixKT-36814Support optimized delegated properties in JVM_IRKT-36829Optimize 'in' expressions (operator fun contains) in JVM_IRKT-41741NI: "AssertionError: Empty intersection for types" with generic Java collectionKT-42195NI: prohibitively long compilation time for values of nested data structures with type inferenceKT-42221Native compiler never finishes frontend phase after migrating to Kotlin 1.4.10
Fixes
KT-11713Refine visibility check for synthetic property with protected setterKT-16222Coroutine should be clearing any internal state as soon as possible to avoid memory leaksKT-25519Extra inline marks inside suspending function callable reference bytecodeKT-33226Object INSTANCE field not annotated with NotNull in generated bytecodeKT-35495FIR: forbid non-Java synthetic propertiesKT-35651Kotlin stdlib has greater resolution priority than jars added via @file:DependsOn annotationKT-35716Using @JvmOverloads in @JvmStatic functions in interface companion objects causes a ClassFormatErrorKT-35730FIR: consider creating fake overrides for objectsKT-36951IllegalStateException: Expected some types: Throwing exception when there is a type parameter upper bound for itselfKT-37321[FIR] Support java array in type argumentKT-37431[FIR] Support Builder InferenceKT-38272FIR2IR: use lazy IR symbols for externals & fake overridesKT-38333FIR: CCE on red code with assignment used as expressionKT-38334FIR: CCE when resolving try-as-expressionKT-38336FIR: NPE with corrupted numeric constant literalKT-38397FIR: Exception while resolving contract definitionKT-38444[FIR] Invoke extension lambda with safe callKT-38470FIR: ConeDefinitelyNotNullType in signatureKT-38471FIR: ConeIntersectionType in signatureKT-38925Internal error: wrong bytecode generated. (AssertionError: int type expected, but null was found in basic frames)KT-38989FIR: Refine sealed classes exhaustiveness in case of sealed subclassKT-38992FIR: Refine type resolution for inner classesKT-39000FIR: Support smartcast after reference equality checkKT-39005FIR: Resolve plusAssign in a dependent contextKT-39008FIR: Investigate strange effect of type alias and not-nullable bound on inferenceKT-39012FIR: Inference doesn't get through elvis to lambda parameterKT-39028FIR: Strange resolution to synthetic property with implicit extension receiver while there's an explicit receiverKT-39032FIR: Ambiguity in member scope of a type parameter with multiple boundsKT-39033FIR: Ambiguity when calling generic overridden propertyKT-39034FIR: Support nested extension function typesKT-39040FIR: Deserialize annotations from compiled Kotlin binariesKT-39043FIR: Bare types incorrectly work with type aliasesKT-39044FIR: Add fillInStackTrace to member scope of kotlin.ThrowableKT-39046FIR: Implicit types in lambdas left when call argument is a type castKT-39048FIR: Inference fails with integer literal used as ComparableKT-39050FIR: Type resolver doesn't see nested classes from super class of a local classKT-39070FIR: Ambiguity on super calls to hashCode/equals when having super interface and classKT-39072FIR: Subtyping check doesn't affect nullability of safe-call receiverKT-39076FIR: Synthetic property is not a var because of @Nullable annotation on parameterKT-39080FIR: Smart casts remain incorrect if lambda is present in when branchKT-39374Wrong bytecode generated for suspend function call with EXACTLY_ONCE lambda capturing a variable initialized in when-subjectKT-39621[FIR] Support when exhaustiveness checker for java enumsKT-40135JVM IR does not generate restricted suspend lambdasKT-40382Missing proper jvmSignature for synthesized equals/hashCode/toString in inline classesKT-40605JVM IR: IndexOutOfBoundsException caused by inner class passed to generic outer class method with Nothing type argumentKT-40664JVM: No bounds check in optimization ofULong in UInt..UIntKT-40665JVM: No resolved function check when optimizingin/containswith mismatched bound typesKT-41014FIR2IR: when/where/how to determine the presence of a backing field for a propertyKT-41018FIR2IR: sort members during de/serializationKT-41144False positive "Redundant spread operator" in when statement and generic vararg argumentKT-41218HMPP: arrayList declarations are visible both from stdlib-common and stdlib-jvm and lead to false-positive resolution ambiguity in IDEKT-41374JVM / IR: NoSuchMethodError in Android project compiler caused by combination of inline classes and coroutinesKT-41388NI: Backend Internal error: Exception during IR loweringKT-41429Inline class returned from suspend function should be boxed on resume pathKT-41465JVM / IR: "AssertionError: inconsistent parent function for CLASS LAMBDA_IMPL CLASS name" caused by inline method call into multiple constructorsKT-41484JVM IR: support -Xemit-jvm-type-annotationsKT-41668JVM IR: incorrect enclosing constructor for lambdas in initializers of inner classesKT-41669JVM IR: incorrect hashCode intrinsic is used in JVM target 1.8 for generic type substituted with primitiveKT-41693NI: Type inference in nested expression incorrectly assumes non-nullable return type of Java function, causing NullPointerExceptionKT-41729NI: UnsupportedOperationException with invalid callable referenceKT-41761JVM IR: CCE from backend on generating typeOf for non-reified type parameter with star projection in upper boundKT-41789Missing DebugMetadata in inlined suspend lambdaKT-41913NI: Kotlin 1.4 type inference breaks valid codeKT-41934NI: a type variable for lambda parameter has been inferred to nullable type instead of not null oneKT-42005JVM / IR: "NullPointerException: Parameter specified as non-null is null" when toString is called on inline class with not primitive propertyKT-42450NI: "IllegalStateException: Error type encountered: NonFixed:" with coroutinesKT-42523Missed DefaultImpls for interface in-jvm-default=allmode on inheriting it from interface compiled in old schemeKT-42524Wrong specialization diagnostic is reported on inheriting from java interface with default with -Xjvm-default=all-compatibilityKT-42546HMPP: incorrect subtyping of nullable types & overload resolution ambiguity on using and expect-function declaration with nullable expect in a signatureKT-17691Wrong argument order in resolved call with varargsKT-25114Prohibit @JvmStatic on functions in private companionsKT-33917Prohibit to expose anonymous types from private inline functionsKT-35870Forbid secondary enum class constructors which do not delegate to the primary constructorKT-39098NI: parameter of anonymous function can be inferred to Any? if another parameter's type is specifiedKT-41176NI with Gson: "ClassCastException: java.util.ArrayList cannot be cast to java.lang.Void"KT-41194ClassCastException on returning Result.failure from lambda within suspend functionKT-42438NI: ClassCastException: cannot be cast to java.lang.Void caused by when statement inrunfunctionKT-42699False positive NON_JVM_DEFAULT_OVERRIDES_JAVA_DEFAULT diagnostic in new jvm-default modesKT-42706Kotlin 1.4 infers generic is Nothing instead of actual Foo class (Android project)
Docs & Examples
KT-42318No documentation forkotlin.js.js
IDE
New Features
KT-20775More kotlin kinds in new kotlin file/class menuKT-31331Improve: Optimize Import should remove unused unresolved importsKT-31500Smart enter: support get() clauseKT-39231Injection: Add receiver of kotlin.text.toPattern to standard Kotlin injectionsKT-39844Add specific highlight for Enum class
Performance Improvements
KT-39353Implement EnterBetweenBracesNoCommitDelegateKT-39720A lot of freezes in Kotlin projectKT-41634Deadlock in org.jetbrains.kotlin.idea.framework.LibraryEffectiveKindProviderImpl.getEffectiveKindKT-41936Impossible to work with Kotlin 1.4 in 202 idea, idea eats all cpu
Fixes
KT-10790"Move statement up" for @file-targeted annotation moves package declaration to bottom of fileKT-15262"Generate toString()" is ignoring property if it has a getterKT-24352Method separators: displayed between properties, not displayed between companion object and functionKT-29364"Extend selection" can't select lambda body with parametersKT-32403Clickable links in annotation parameters (like in TODOs)KT-32409Organizing imports should not remove imports while there are unresolved symbolsKT-34566Too small indent after line break for multi line stringsKT-34587"Move statement down" doesn't work for statement in constructor with end-of-line commentKT-34705"Move statement down" for penultimate statement with end-of-line comment in constructor leads to moving comma to the end of commentKT-34707"Move statement up" for last statement with end-of-line comment in constructor leads to moving comma to the end of commentKT-35424FIR IDE: Kotlin project does not see stdlibKT-35732URLs in String literals are not clickableKT-35859Language injection doesn't work with named arguments in different positionKT-37210UAST: KtLightClassForSourceDeclaration.isInheritor sometimes returns the wrong resultKT-37219File level OptIn annotation is not recognized by the IDEKT-38959IDE: False negative EXPLICIT_DELEGATION_CALL_REQUIRED, "IllegalArgumentException: Range must be inside element being annotated"KT-39398Wrong import of unrelated object member is suggested for receiverKT-39457Separate decompiled declarations Light implementation from LightClasses infrastructureKT-39899KotlinOptimizeImportsRefactoringHelper: ISE: Attempt to modify PSI for non-committed DocumentKT-40578UAST: write accesses to Kotlin properties should resolve to setterKT-41290KotlinClassViaConstructorUSimpleReferenceExpression resolves to PsiMethod instead of PsiClassKT-42029HMPP, IDE: NPE fromFacetSerializationKt.getFacetPlatformByConfigurationElementon project openingKT-43202On 1.4.20-RC version AS ask for xml compatibility update for EAP version of pluginKT-42883No highlighting for elements marked as @Deprecated in stdlib
IDE. Android
KT-42406Long or infinite code analysis on simple files modificationKT-42061Highlighting is broken in Android activityKT-41930Android Studio 4.2 cannot start after updating to 1.4.20 plugin with error: Missing essential plugin: org.jetbrains.android
IDE. Completion
KT-26235Kotlin methods/fields don't have icons in Java completion
IDE. Debugger
KT-37486Kotlin plugin keeps reference to stream debugger support classes after stream debugger plugin is disabledKT-38659Evaluate Expression:toString()on variable returns error when breakpoint is incommonTestsourcesetKT-39309Debugger: Prolonged "Collecting data" for variables when breakpoint is insiderespondHtmlKT-39435"Collecting data..." in debugger variables view never finishesKT-39717Debugger shows "Collecting data..." forever for instances of some classKT-40386Memory leak detected: 'org.jetbrains.kotlin.idea.debugger.coroutine.view.XCoroutineView'KT-40635Coroutines Debugger: make IDE plugin accept coroutines 1.3.8-rc* versions as wellKT-41505Coroutines Debugger: “Access is allowed from event dispatch thread with IW lock only.”
IDE. Decompiler, Indexing, Stubs
KT-28732Stub file element types should be registered early enoughKT-41346IDE: "AssertionError: Stub type mismatch: USER_TYPE!=REFERENCE_EXPRESSION" withCollapsedDumpParserclass from IDEA SDKKT-41859File analysis never ending with kotlinx.cli (AssertionError: Stub type mismatch: TYPEALIAS!=CLASS)KT-41640"Project roots have changed" happened during indexing because of org.jetbrains.kotlin.idea.core.script.ucache.ScriptClassRootsUpdater$notifyRootsChanged increases overall indexing time.KT-41646"AssertionError: ContentElementType: FILE"; Code analysis never finishes on some files from my project
IDE. Gradle Integration
KT-34271SupportpureKotlinSourceFoldersfor MPP projectsKT-37106Gradle + IDE integration: on creating source roots from Project tree IDEA creates incorrect settingsKT-38830addTransitiveDependenciesOnImplementedModules performance is slowing down Android Studio Gradle SyncKT-41703Kotlin plugin not functional: PluginException: While loading class org.jetbrains.kotlin.idea.core.script.KotlinScriptDependenciesClassFinder
IDE. Gradle. Script
KT-35092“Unable to get Gradle home directory” popup and no build.gradle.kts highlighting right after creating a new projectKT-37590Wrong notification for precompiled build scriptKT-39523Go to Declaration navigates to decompiled classfile instead of sources in case of jumping to Gradle plugin sources in buildSrcKT-39542EA-218043: java.util.NoSuchElementException: No element of given type found (GradleBuildRootsManager)KT-39790List of standalone script should be saved between IDE restartsKT-39910build.gradle.kts isn't highlighted after importKT-39916init.gradle.kts isn't highlightedKT-40243gradle.kts: standalone script under build root isn't highlighted as standaloneKT-41141Gradle Kotlin DSL: "cannot access 'java.lang.Comparable'. Check your module classpath" with empty JDK in Project structureKT-41281Multiple Script Definitions warning shown in git project having multiple Gradle projects
IDE. Hints
KT-32368Rework Inline hints settings so that they look appropriate with the new UI in 2019.3KT-38027Support Code Vision feature in KotlinKT-42014ClassNotFoundException in Android Studio 4.2 after installing 1.4.20 plugin
IDE. Hints. Parameter Info
KT-24172Parameter info marks signature as inapplicable when using argument labelsKT-41617Parameter Info shows nothing inside already present type arguments of supertypeKT-41645Add support for mixed named arguments to parameter info popup
IDE. Inspections and Intentions
New Features
KT-14578Suggest "Convert lambda to reference" intention for generic extension functionKT-19321Warn if method with nullable return type always returns non-nullKT-20718Add a quick fix for "this class has no constructor" error on 'expect' annotation classesKT-21223Add inspection for incomplete destructuringKT-22420Intention to replace a = b with b.also { a = it }KT-39930Add inspection for nullable Boolean inifconditionKT-40016Replace 'a.toLowerCase() == b.toLowerCase()' with 'a.equals(b, ignoreCase = true)' inspectionKT-40283Inspection which replacesalso/applywith nestedforEachtoonEachKT-40769Add intention to replace isBlank/isNotBlank method negation
Fixes
KT-12222Intention 'Convert to block body' should take nullability of overriden method into account when expression is of platform typeKT-14395Lambda to Reference doesn't work for generic typesKT-15846'Change lambda expression return type' quick fix does nothingKT-15944IDEA doesn't suggest to replace deprecated get set operator functions when it used as operatorKT-17222"Convert reference to lambda" creates red code for method with default argument valuesKT-18125"Wrap with let {...}" intention not available in all casesKT-20438Naming convention inspections: factory functions that are named like classes are flaggedKT-24138Incorrect behavior in "convert reference to lambda" with new inference enabled, on function reference with default argumentsKT-29844"Create class from usage" should mark constructor of created class as internal if its parameters have internal visibilityKT-30928"Show hints for suspend calls" is too easy to enable and hard to disableKT-31749"Surround with null check" produces incorrect check for 'in' expressionKT-32963Don't suggestjavadirectory of a JVM source set in multiplatform project as a target forCreate actualquick fixKT-33211Quickfix "add parameter" for method references should infer functional type instead of KFunctionKT-33258"Merge 'if's" intention drops comment before nested ifKT-34572Convert to block body action improperly works with suppress annotationsKT-35128IntentionConvert member to extensionhides property delegate text with single line commentKT-35214IntentionPut parameters on one line: don't suggest if parameters has end-of-line commentsKT-35320False positive "Replace explicit parameter 'x' with 'it'" in 'when' expression which returns lambdaKT-35525False positive intention for 'run': "Convert to 'let'" when invoked without receiverKT-35526Intention "Eliminate argument of 'when'" is broken for 'when' expression without 'else' branchKT-35805FoldInitializerAndIfToElvis: should not add new line for multiline initializerKT-36051IfThenToSafeAccessInspection: do not report if condition is SENSELESS_COMPARISONKT-37748"Convert anonymous function to lambda expression" intention does not add necessary lambda type parameterKT-37841IllegalStateException after "add non-null asserted call" on nullable function referenceKT-38139False negative "Add suspend modifier" quickfix when suspend function is called in inline lambdaKT-38267False positive "Call on collection type may be reduced" with Java platform types: suggested to reduce 'mapNotNull' call to 'map'KT-38282False positive "Remove redundant spread operator" inspection with array as class property or fun argumentKT-38915"Remove explicit type specification" intention should be disabled in explicit API modeKT-38981"Specify return type explicitly" inspection is not reported for declaration annotated with @PublishedApi in Explicit Api modeKT-39026'Specify return type explicitly' intention duplicates compiler warning in Explicit api modeKT-39200False positive "Redundant qualifier name" with same-named member object and companion propertyKT-39263False positive "Variable should be inlined" for override value in initialized objectKT-39311Batch quick fix name for "Change file's package" is truncatedKT-39393"Convert anonymous function to lambda expression" intention does not add necessary lambda type parameter for outer functionKT-39454False positive "Unused symbol" with private anonymous object propertyKT-39467False negative "Move variable declaration into when" if a variable declaration is placed on a new lineKT-39490'Wrap with ?.let' quickfix put the receiver inletlambdaKT-39552Merge 'if's intention drops comment after nested ifKT-39604"Package directive doesn't match file location" quick fix does not insert a space between keywordpackageand the package nameKT-39772"Redundant 'Unit'" should support lambdasKT-40215"Create abstract function" quick fix suggested even though surrounding class is non-abstractKT-40448"Convert call chain into sequence": support functions added in Kotlin 1.4KT-40558False positive "Move to class body" intention on data class constructor propertyKT-41338False positive "Redundant 'asSequence' call" when Map.Entry properties are used.KT-41615"Unused equals expression" inspection: highlight whole expression with yellow backgroundKT-43037Disable "Incomplete destructuring declaration" in 1.4.20
IDE. J2K
KT-20421J2K: SUPERTYPE_NOT_INITIALIZED for object extending base classKT-37298J2K: implicit widening conversion for whole argument expression is transformed to cast on subexpressionKT-38879J2K loses class annotations when converting class to objectKT-39149J2K fails with augmented assignment operators when multiplying int by a non-intKT-40359J2K: Conversion of invalid octal numbers throws NumberFormatExceptionKT-40363J2K: Converting HEX integer literal in for-loop throws NumberFormatException
IDE. JS
KT-39319KJS: Support debugging through new Intellij 202 APIKT-41328KJS / Gradle: explicitApi mode doesn't work
IDE. KDoc
KT-17926IDE should show documentation for a class if the constructor has no docs.KT-19069KDoc: show default argument valuesKT-37132Redundant @NotNull annotation in a Quick Documentation pop-up
IDE. Misc
KT-39327Get rid of usages of internal classes ModuleOrderEntryImpl and LibraryImplKT-40455Improve support for EditorConfig
IDE. Navigation
KT-24616Find usages fails to find setter usageKT-38762"Cannot access 'java.io.Serializable' which is a supertype of 'kotlin.Int'" brokes navigation to constructor parameter declarationKT-39558Call Hierarchy shows references from KDocKT-40788"Find usages" on Java getter overridden in Kotlin doesn't find synthetic property usage when it is called without base declarationKT-40960Unable to find usages in java of Kotlin constructor in library when sources is attached.
IDE. Project View
KT-37528'Add Kotlin File/Class' suggests file before class
IDE. Refactorings
KT-19744"Change Signature" is not available onconstructorkeyword in primary constructorKT-22170"Change Signature" ignores Java usages of methods marked with @JvmStaticKT-37517Invalid qualified name on copy-paste in build.gradle.kts
IDE. Run Configurations
KT-24463MPP, Intellij runner: Run does not add resource directory to classpathKT-36370Hide run gutter icons for not yet implemented targets in multiplatform projectsKT-39788MPP, Gradle runner: Run does not add resource directory to classpath on project reopen without Gradle sync
IDE. Scratch
KT-40557IDE / Scratch: .kt files are treated as Kotlin scratches, opening fails
IDE. Script
KT-35825Custom kotlin scripts have no project import suggestions in sub modules.KT-39796Performance of KotlinScriptDependenciesClassFinderKT-41622IDE: Kotlin scripting support can't find context class from same projectKT-41905IDE / Script: FilePathPattern parameter in @KotlinScript annotation is not reflected correctly in Pattern / ExtensionKT-42206Cannot load script definitions using org.jetbrains.kotlin.jsr223.ScriptDefinitionForExtensionAndIdeConsoleRootsSource
IDE. Tests Support
KT-28854Run/Debug configurations: "Redirect input from" option is not available for Kotlin appsKT-36909IDE attempts to run non-JVM tests launched from context menu as JVM onesKT-37799Don't show a target choice in context menu for a test launched on specific platform
IDE. Wizards
KT-37965New Project wizard 1.4+: adding JUnit5 test library add dependency to runnerKT-40527Node.JS application template in New Project WizardKT-40874Open new project wizard help page in browser when clicking help button in new project wizardKT-41417Add react template to new project wizardKT-41418Wizard: Support KJS compiler choiceKT-41958New project wizard: Backend/Console applications template with Groovy DSL missing compileTestKotlin blockKT-42372Rrename test classes in wizard template to avoid name clashing
JavaScript
KT-38136JS IR BE: add an ability to generate separate js files for each module and maybe each libraryKT-38868[MPP / JS / IR] IllegalStateException: "Serializable class must have single primary constructor" for expect class without primary constructor with @Serializable annotationKT-39088[ KJS / IR ] IllegalStateException: Concrete fake override IrBasedFunctionHandleKT-39367KJS: .d.ts generation not working for objectsKT-39378KJS / IR: "IllegalStateException: Operation is unsupported" with binaries.executable() and external function insideforloop with Iterator as return typeKT-41275KJS / IR: "IllegalStateException: Can't find name for declaration FUN" caused by default value in constructor parameterKT-41627KJS / IR / Serialization: IllegalStateException: Serializable class must have single primary constructorKT-37829Kotlin JS IR: "Properties without fields are not supported" for companion objectsKT-39740KJS / IR: Can't use Serializable and JsExport annotations at the same time
KMM Plugin
KT-41522KMM: exceptions for Mobile Multiplatform plugin are suggested to report to Google, not JetBrainsKT-42065[KMM plugin] iOS apps fail to launch on iOS simulator with Xcode 12
Libraries
KT-41799String.replace performance improvementsKT-43306Deprecate createTempFile and createTempDir functions in kotlin.ioKT-19192Provide file system extensions/APIs based on java.nio.file.PathKT-41837Remove @ExperimentalStdlibApi from CancellationException
Middle-end. IR
KT-40193IR: pluginContext.referenceClass() is not resolving typealiasKT-41181Kotlin/Native 1.4.0 compiler fails on data class with >120 fields
Native. C and ObjC Import
KT-41250[C-interop] Stubs for C functions without parameter names should have non-stable namesKT-41639Use LazyIR for enums and structs from cached librariesKT-41655Native: "type cnames.structs.S of return value is not supported here: doesn't correspond to any C type" when accessing forward-declared-struct-typed C global variable
Native. ObjC Export
KT-38641Kotlin-Multiplatform: Objective-Cdescriptionmethod name collision in SwiftKT-39206New line characters in @Deprecated annotation cause syntax error in Kotlin/native exported header
Native. Platform libraries
KT-42191Support for Xcode 12
Native. Runtime. Memory
KT-42275"Memory.cpp:1605: runtime assert: Recursive GC is disallowed" sometimes when using Kotlin from Swift deinit
Native. Stdlib
KT-39145MutableData append method
Tools. Android Extensions
KT-42342Build fails withjava.lang.RuntimeException: Duplicate class found in modulesoncheckDebug(Release)DuplicateClassestask when bothkotlin-parcelizeandkotlin-android-extensionsplugins are applied
Tools. CLI
KT-35111Extend CLI compilers help with link to online docsKT-41916Add JVM target bytecode version 15
Tools. Commonizer
KT-41220[Commonizer] Short-circuit type aliasesKT-41247[Commonizer] Missed supertypes in commonized classKT-41643Commonizer exception for targets [ios_x64], [macos_x64]KT-42574HMPP: unresolved platform.* imports in nativeMain source set
Tools. Compiler Plugins
KT-36329Provide diagnostic in kotlinx.serialization when custom serializer mismatches property typeKT-40030Move the Parcelize functionality out of the Android Extensions plugin
Tools. Gradle
KT-33908Make Kotlin Gradle plugin compatible with the Gradle configuration cacheKT-35341KotlinCompile: Symlinked friend paths are no longer supported
Tools. Gradle. JS
New Features
KT-35330Allow to customise generated package.jsonKT-39825Provide single point of Webpack configuration in Gradle scriptKT-41054Support Yarn resolutionsKT-41340Add flag to suppress kotlin2js deprecation messageKT-41566Kotlin/JS: Support JavaScript Library distributionKT-42222KJS / Gradle: "Cannot find package@version in yarn.lock" when npm dependencies of one package but with different version are used in projectKT-42339Support dukat binaries generation
Fixes
KT-39515package.json is regenerated without a visible reasonKT-39838Kotlin/JS Gradle tooling: NPM dependencies of different kinds with different versions of the same package fail with "Cannot find package@version in yarn.lock"KT-39995Collect statistic about generateExternals featureKT-40087Kotlin/JS, IR backend: browserRun: update in continuous mode fails: "ENOENT: no such file or directory" referring output .jsKT-40159Implement workaround / fix for webpack's "window is not defined"KT-40178Browser run task prints output in TeamCity formatKT-40201Kotlin/JS: Gradle: public package.json has emptydevDependencies {}KT-40202Kotlin/JS: Gradle: NPM version range operators are written into package.json as escape sequencesKT-40342[Gradle, JS, Maven] "Cannot find module" generating fake NPM module from Maven dependendencyKT-40462Collect statistic about usages of kotlin.js.generate.executable.default optionKT-40753Type script definition file is not referenced as types in the package.jsonKT-40812Node.JS run working directoryKT-40865KJS / Gradle: Registering a task with a type that directly extends AbstractTask has been deprecatedKT-40986KJS / Gradle: BuildOperationQueueFailure when two different versions of js library are used as dependenciesKT-41125Bump NPM versions in 1.4.20KT-41286KJS / Gradle: args order in runTask is changed in 1.4.0KT-41475KJS / Gradle: debug mode doesn't support custom launchers in karma configKT-41662Kotlin/JS: with CSS support mode == "extract" browser test fails even without CSS usage: "Error in config file!"KT-42494KJS / Gradle: "Configuration cache state could not be cached" caused by Gradle configuration cache
Tools. Gradle. Native
KT-39764Assertions are disabled when running K/N compiler in Gradle processKT-39999Cocoapods plugin's dummy header cannot be compiledKT-40999CocoaPods Gradle plugin: Support custom cinterop options when declaring a pod dependency.KT-41367CocoaPods Gradle plugin: support git repository dependencyKT-41844Kotlin 1.4.10 gradle configuration error with cocoapods using multiple multiplatform modulesKT-42531Gradle task "podGenIos" fails if a Pod with a static library is added.
Tools. Incremental Compile
KT-37446Incremental analysis for Java sources fails when run on JDK 11
Tools. Parcelize
KT-39981Android parcel 'java.lang.VerifyError: Bad return type'KT-42267Platform declaration clasherror in IDE when usingkotlinx.android.parcel.ParcelizeKT-42958False positive IDE error on classes with kotlinx.parcelize.Parcelize on project initial importKT-43290Typo in error message forErrorsParcelize.DEPRECATED_ANNOTATION- kotlin.parcelize instead of kotlinx.parcelizeKT-43291Diagnostic deprecation messages should not be shown in casekotlin-android-extensionsplugin is applied
Tools. Scripts
KT-37987Kotlin script: hyphen arguments not forwarded to scriptKT-38404Scripting API: Provide Location of Annotation UsageKT-39502Scripting: reverse order of Severity enum so that ERROR > INFOKT-42335No "caused by" info about an exception that thrown in Kotlin Script
Tools. kapt
KT-25960Interfaces annotated with JvmDefault has wrong modifiers during annotation processingKT-37732Kapt task is broken after update to 1.3.70/1.3.71KT-42915Kapt generates invalid stubs for static methods in interfaces in Kotlin 1.4.20-M2
1.4.10
Compiler
Performance Improvements
KT-41149NI: Upgraded project from 1.3.72 to 1.4.0 hangs during buildKT-41335Kotlin Out of Memory When evaluating expressionKT-41400NI: Huge performance regression for kotlin compiler from 1.3.72 to 1.4.0 due to using list of dozen lambdas in a call
Fixes
KT-41005Coercion to Unit doesn't take into account nullability of a return type for lambdaKT-41043NI: StackOverflowError throughPostponedArgumentInputTypesResolver.getAllDeeplyRelatedTypeVariablesKT-41135Type Inference Regression For Property Delegate With Receiver TypeKT-41140Unresolved reference to parameter of a catch block from lambda expression on 1.4.0KT-41150IllegalStateException: Couldn't obtain compiled function body for public final inline funKT-41164NI: "IllegalStateException: Error type encountered" with callbackFlow builder inside conditionKT-41202Type inference fails in 1.4.0KT-41218HMPP: arrayList declarations are visible both from stdlib-common and stdlib-jvm and lead to false-positive resolution ambiguity in IDEKT-413081.4.0 Type inference regression in suspend blocks with elvis operator expressionsKT-41357ClassCastException for unstable smart cast on a property call receiverKT-41386NI: Type mismatch with generic type parametersKT-41426Operator compareTo is not called with nullable typeKT-41430Broken choosing overload by lambda return type inside builder inferenceKT-41470Wrong nullability assertion is generated when using the BuilderInference annotationKT-41482Add a fallback compiler flag to disable the unified null checks behavior
IDE
KT-41325SOE in IDEKotlinAsJavaSupportKT-41390Typo: equals & hashCode are written with the first uppercase letter
IDE. Code Style, Formatting
KT-41314Formatter: Frequent freezes when reformatting code (TrailingCommaPostFormatProcessor)
IDE. Debugger
KT-40417Coroutines Debugger: “No coroutine information found” in case of main() entry-point without explicit debug-artifact
IDE. Gradle. Script
KT-39542EA-218043: java.util.NoSuchElementException: No element of given type found (GradleBuildRootsManager)KT-41283Gradle scripts unable to support 1.4 language level features yet
IDE. Inspections and Intentions
KT-41264Disable “Redundant inner modifier” in 1.4.10KT-41395Inspection description misses a space (needs to be lowercase)
IDE. REPL
KT-40898REPL: "IllegalAccessError: tried to access field" caused by log4j
IDE. Wizards
KT-38921New project wizard: Backend/Console applications template with Groovy DSL generates build.gradle with KotlinCompile instead of compileKotlin
JavaScript
KT-38059Support arrays passed as named arguments to varargsKT-40964KJS / IR: don't generate "import" (short names) for external interfacesKT-41081KJS IR: nativeGetter, nativeSetter, nativeInvoke are not supported
Libraries
KT-41320Actual kotlin.test annotation typealiases are inaccessible in modular environment
Middle-end. IR
KT-41324IR: "Compilation failed: null" caused by StackOverflowError in compiler in multi-module project
Native. C and ObjC Import
KT-39762cinterop on 1.4-M2 doesn't include @Deprecated Kotlin declaration for C declaration it fails to import
Native. ObjC Export
KT-39206New line characters in @Deprecated annotation cause syntax error in Kotlin/native exported headerKT-40976"Unrecognized selector sent to instance" exception invoking suspending lambda from Swift in Native iOS project
Reflection
KT-40842"AssertionError: Built-in class kotlin.Any is not found" on java modular run
Tools. Compiler Plugins
KT-41321Upgrading to 1.4.0 fails compiling native with is not bound error
Tools. Gradle. Multiplatform
KT-41083Transitive dependency on an MPP with host-specific source sets fails to resolve: "Couldn't resolve metadata artifact..."
Tools. Gradle. Native
KT-40834Cannot build Kotlin Multiplatform project on Windows 10 64-bit when the Cocoapods plugin is applied
Tools. Scripts
KT-35925REPL: Springboot autoconfiguration problem (META-INF/spring.factories not found ?)
Tools. kapt
KT-41313kapt 1.4.0 throws "ZipException: zip END header not found", when Graal SVM jar in classpath
1.4.0
Compiler
New Features
KT-23729Provide a way to generate JVM default method bodies in interfaces delegating to DefaultImplsKT-30330Introduce KotlinNothingValueException and throw it instead of NPE on expressions of type NothingKT-38435Support suspend conversion on callable references in JVM backend
Fixes
KT-35483NI: compatibility modeKT-39728Declarations fromkotlin.reflectresolved to expect-classes even in JVM modules in IDEKT-40153REPL IDE services completion fails on imports completionKT-40404Mixed named/positional arguments: argument can be passed twiceKT-40544NI: "TYPE_MISMATCH: Required: MutableList<out T!> Found: List" caused by Java interface functionKT-40555NI: Spread operator allows inferred nullable typesKT-40646NI: TYPE_MISMATCH: "inferred type is Unit but Observer was expected" caused by LieData.observe inferenceKT-40691False positive CAPTURED_VAL_INITIALIZATION with EXACTLY_ONCE contractKT-40693UnsupportedOperationException: no descriptor for type constructor of (CapturedType(out TResult)..CapturedType(out TResult)?)KT-40824Usages of a typealias lose nullability and annotations in deserializationKT-40843Unhandled exception for suspending methods that return Result typeKT-40869Recursion computation inside compiler resolve on a correct codeKT-40893Error "Captured values initialization is forbidden due to possible reassignment" when attempting to use the plusAssign operator with a java list inside an inline functionKT-40919kotlin.collections.ArrayDeque requires an explicit import when compiling with kotlinc 1.4-RC and -language-version 1.3KT-40920Regression in JvmDefault: incorrect access to missing DefaultImpls on default methods in Java interface overriding Kotlin interfaceKT-40978Prohibit using suspend functions as SAM in fun interfaces
Docs & Examples
KT-35218Fix misleading in JavaDoc forcreateTempDir/createTempFileKT-36981Provide a visual illustration of source sets structure generated byios(),watchos(),tvos()presetsKT-38050Language Guide: MPP reference: add sample of language settings for all roots instead of common root only
IDE
KT-30265IDE, MPP: False negative TYPE_PARAMETER_AS_REIFIED in common codeKT-40494UAST: "NoSuchElementException: No element of given type found" with use-site target annotationKT-40639Shift IDE plugins updater numbers for Kotlin plugin
IDE. Code Style, Formatting
KT-40636Hard freeze on formatter: infinite recursion
IDE. Gradle Integration
KT-30116IDE: Unresolved reference in MPP module (androidMain source set) for annotation from common module (defined in commonMain and with JVM target)
IDE. Gradle. Script
KT-34552Deadlock in ScriptDefinitionsManagerKT-40675Gradle build file is not highlighted until navigating to symbol
IDE. JS
KT-40461Create new projects with kotlin.js.generate.executable.default=false
IDE. Script
KT-39547Kotlin script support freezes IDEAKT-40242gradle.kts: Deadlock in ScriptClassRootsUpdater
IDE. Wizards
KT-36153New Project Wizard: provide more referential info on project structure editor screenKT-39904New Project wizard 1.4: update Frontend Application to make it run with JS IRKT-40149Gradle project wizard: templates for Kotlin/JS are not properly formatted
JavaScript
KT-25859JS: support function references to functions with vararg if expected type ends with repeated vararg element typeKT-40083K/JS-IR: java.lang.IllegalStateException: has not acquired a symbol yetKT-40892KJS, IR: Unresolved references on importing classes from kotlinx-nodejs
Libraries
KT-39051Libraries native artifacts are published without sources
Tools. Gradle
KT-27816Provide a possibility to specify intermediate source sets between platform-agnostic and platform-specific test source setsKT-37720Replace ArtifactTransform with TransformActionKT-40559Adding the stdlib by default triggers warning in the Android Gradle Plugin
Tools. Gradle. JS
KT-40093Incorrect updating version of Kotlin/JS dependencies in package.json
Tools. Gradle. Multiplatform
KT-27320Provide a way to reuse same sources for similar Native targetKT-40058NPE from mpp gradle plugin on kotlinx.benchmarks
Tools. Gradle. Native
KT-40801Gradle CocoaPods integration: Cannot change a framework name
1.4-RC
Backend. Native
KT-40209java.lang.UnsupportedOperationException: org.jetbrains.kotlin.ir.declarations.impl.IrValueParameterImpl@76484173KT-40367Kotlin/Native-Swift interop (iOS): Array member initialization failing in release builds
Compiler
Fixes
KT-31025Type mismatch when callable reference is resolved with a functional expected type and SAM conversionKT-37388Consider relaxing rules about inferring Nothing inside special constructions (if, try, when)KT-37717NI: "IllegalStateException: Error type encountered" with @BuilderInferenceKT-38427New inference in branched conditions (if, when) results in odd behavior with inconsistent compiler warnings and runtime errorsKT-38899NI: False positive IMPLICIT_NOTHING_TYPE_ARGUMENT_IN_RETURN_POSITION leads to NPEKT-39468NI: overload resolution ambiguity between functions passingTandFoo<T>with a contravariant receiverKT-39618NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER: unable to infer generic type on @BuilderInference annotated lambda parameter with receiver typeKT-39633NI: Incorrect type parameter instantiation based on contravariant type argumentKT-39691NI: Missing SAM conversion for nullable lambdaKT-39860Make Kotlin binaries publicly available (set KotlinCompilerVersion.IS_PRE_RELEASE = false)KT-39900NI: Incorrect type inference in a lambda returning UnitKT-39925New JVM default compilation mode doesn't check that JVM target is 1.8KT-39943Write information about all-compatibility mode in metadataKT-39953NI: ClassCastException "cannot be cast to java.lang.Void" with if-else in return statement in ANdroid projectKT-40045NI: lambda’s receiver type isn't inferred properlyKT-40057NI: provideDelegate org.jetbrains.kotlin.codegen.CompilationException: Back-end (JVM) Internal error: wrong bytecode generated for static initializerKT-40060NI: postponed variable from the builder inference flows to back-end and leads to throw an exceptionKT-40112Kotlin Gradle DSL: COMPATIBILITY_WARNING onkotlin.sourceSetsblockKT-40113Kotlin Gradle DSL: "Expression 'main' cannot be invoked as a function" fordistributions.mainDSL blockKT-40128Introduce compiler key to disable compatibility resolution mechanism for new inference featuresKT-40151NI: postponed variable isn't substituted for top-level CR inside builder inferenceKT-40214AbstractMethodError in gradle subplugin which is used in Android appKT-40234Deprecation level "hidden" has no effect on callable reference argumentKT-40247NI: false positive "function should be called from coroutine or another suspend function" for suspend invoke operator in try-catchKT-40254Rewrite at slice with two callable reference argumentsKT-40269NI: "disabled Unit conversions" error has appeared on green codeKT-40337NI: false positive "function should be called from coroutine or another suspend function" for suspend invoke operator inwhenblockKT-40406Prohibit reflection on adapted callable references
IDE
KT-39968Paths in KotlinJavaRuntime library aren't updated after you run IDE from a different directoryKT-39989NullPointerException when opening Kotlin facets in Project Structure dialog in IDEA 192KT-40311Create change_notes for 1.4 in IDE plugin description
IDE. Debugger
KT-39808(CoroutineDebugger) Doesn't start with kotlinx-coroutines-core >= 1.3.6KT-40073(CoroutineDebugger) Change minimum supported kotlinx.coroutines version to 1.3.8*KT-40172Restored frame variables isn't shown for suspended coroutinesKT-40635Coroutines Debugger: make IDE plugin accept coroutines 1.3.8-rc* versions as well
IDE. Gradle Integration
KT-38744No dependency between Androidtestand commonTest source sets with kotlin.mpp.enableGranularSourceSetsMetadata=trueKT-39037'None of the consumable configurations have attributes' in MPP IDE import with transitive project dependency on self
IDE. Gradle. Script
KT-31137IntelliJ would get very slow when editing gradle buildSrc(using the kotlin dsl)KT-36078Gradle Kotlin script context is not reloaded when gradle/wrapper/gradle-wrapper.properties file is changedKT-39317ISE “Calling invokeAndWait from read-action leads to possible deadlock.” on importing simple Gradle-based project in nightly IJ
IDE. Inspections and Intentions
KT-28662Inspection to flag usage of the wrong Transient annotation on Kotlin Serializable classKT-34209Switch default behaviour in 1.4 for insertion (to build script) via quick fix of the compiler option enabling inline classesKT-36131Suggest to add a missing module dependency on an unresolved reference in Kotlin codeKT-37462Add "Add dependency to module" quickfix in multimodule Maven projectKT-39869Add whole project migration usages of kotlin.browser.* & kotlin.dom.* to kotlinx.browser.* & kotlinx.dom.* respectively
IDE. Wizards
KT-40004New Project wizard 1.4+: nohttps://dl.bintray.com/kotlin/kotlinxrepository is added for kotlinx-htmlKT-40037New Project wizard: update Ktor versionKT-40092Wizard: the templates panel on mac OS is too wideKT-40232New Wizard: Android Sdk path doesn't have backslash escaping on WindowsKT-40371New Project Wizard: Frontend Application / Library results in broken run configurationKT-40377New Project Wizard: Frontend Application defines NPM dependencies that are unnecessary with Kotlin 1.4-RC+KT-40378New Project Wizard: Frontend Application, Disabling JavaScript test framework has no effectKT-40407Wizard: do not add stdlib by default for Gradle projects in wizard
JS. Tools
KT-39984Update dukat version in toolchain near to release of 1.4-RC
JavaScript
KT-32186Make sure K/JS Reflection API documentation is correct and fix it.KT-37563K/JS: stacktrace is not captured for exceptions without primary constructor inherited from Exception/ErrorKT-37752Generated typescript incorrect for constructors of derived classesKT-37883KJS: Generated TypeScript uses 'declare' rather than 'export'KT-38771JS: support non-reified type parameters in typeOfKT-39873Update Kotlin JavaScript wrappers due to NON_EXPORTABLE_TYPE diagnostic introductionKT-40126[JS / IR] NPE while compiling interfaces with invoke which is passed as a delegateKT-40216KJS / IR: AssertionError caused by an anonymous object in the dependency project
Libraries
KT-33069StringBuilder common functionsKT-35972Add contract to builder functionsKT-37101Mark following api with DeprecatedSinceKotlin("1.4")KT-38360Make sure that JB libraries correctly define their npm deps and republish them (after KT-30619)KT-38817'capitalize' should convert digraphs to title caseKT-40168Remove StringBuilder.capacity from common and JS parts
Middle-end. IR
KT-40520Assert during fake-override generation
Tools. Commonizer
KT-40199Commonizer loses nullability of abbreviated types
Tools. Compiler Plugins
KT-40036Add diagnostic that shows is serialization plugin compatible with serialization-runtime
Tools. Gradle
KT-39755[KJS / Gradle / Legacy mode] Directory with whitespace is not processedKT-39809Kotlin Gradle plugin: ServiceConfigurationError: org.jetbrains.kotlin.gradle.plugin.KotlinGradleSubplugin: Provider org.jetbrains.kotlin.gradle.internal.AndroidSubplugin not a subtypeKT-39977Collect statistics of used -Xjvm-default optionsKT-40300Fail the build if in MPP plugin no targets configured
Tools. Gradle. JS
KT-38170Investigate how to improve migration experience from pre 1.4.0 DSL to the new oneKT-39654Default CSS settings in webpack has priority over user's settingsKT-39842Kotlin/JS Gradle DSL: peerNpm dependency failsKT-40048[Gradle, JS] Deprecate kotlin-frontend pluginKT-40067[Gradle, JS] Public package.json for mixed JS/TS projectKT-40210Fail the build when Kotlin/JS target is not (properly) configuredKT-40320Gradle JS: make migration to the new Gradle DSL smoother
Tools. Gradle. Multiplatform
KT-32239Custom configurations inside Kotlin JVM Gradle projects can't properly resolve multiplatform dependenciesKT-39897[Commonizer] Fast-pass for library fragments absent for some targets
Tools. J2K
KT-39739J2K: Access is allowed from event dispatch thread with IW lock only
Tools. kapt
KT-34604KAPT: Flaky NPE throughorg.jetbrains.kotlin.kapt3.base.ProcessorLoader.doLoadProcessorsKT-36302TypeTreeVisitor.visitMemberSelect IllegalStateException: node.sym must not be null on JDK 11KT-39876KAPT: Serialization of classpath structure is incorrect if there are dependencies between types in jar/dir
1.4-M3
Compiler
New Features
KT-23575Deprecate with replacement and SinceKotlinKT-38652Do not generate optional annotations to class files on JVMKT-38777Hide Throwable.addSuppressed member and prefer extension instead
Performance Improvements
KT-38489Compilation of kotlin html DSL increasingly slowKT-28650Type inference for argument type is very slow if several interfaces with a type parameter is used as an upper bound of a type parameter
Fixes
KT-15971Incorrect bytecode generated when inheriting default arguments not from the first supertypeKT-25290NI: "AssertionError: If original type is SAM type, then candidate should have same type constructor" on out projection of Java classKT-28672Contracts on calls with implicit receiversKT-30279Support non-reified type parameters in typeOfKT-31908NI: CCE on passing lambda to function which accepts vararg SAM interfaceKT-32156New inference issue with genericsKT-32229New inference algorithm not taking into account the upper bound classKT-33455Override equals/hashCode in functional interface wrappersKT-34902AnalyzerException: Argument 1: expected I, but found R for unsigned types in generic data classKT-35075AssertionError: "No resolved call for ..." with conditional function referencesKT-35468Overcome ambiguity between typealias kotlin.Throws and the aliased type kotlin.jvm.ThrowsKT-35494NI: Multiple duplicate error diagnostics (in IDE popup) with NULL_FOR_NONNULL_TYPEKT-35681Wrong common supertype between raw and integer literal type leads to unsound codeKT-35937Error "Declaration has several compatible actuals" on incremental buildKT-36013Functional interface conversion not happens on a value of functional type with smart cast to a relevant functional typeKT-36045Do not depend on the order of lambda arguments to coerce result toUnitKT-36448NI: fix tests after enabling NI in the compilerKT-36706Prohibit functional interface constructor referencesKT-36969Generate @NotNull on instance parameters of Interface$DefaultImpls methodsKT-37058Incorrect overload resolution ambiguity on callable reference in a conditional expression with new inferenceKT-37120[FIR] False UNRESOLVED_REFERENCE for public and protected member functions and properties which are declared in object inner classKT-37149Conversion when generic specified by type argument of SAM typeKT-37249false TYPE_MISMATCH when When-expression branches have try-catch blocksKT-37341NI: Type mismatch with combination of lambda and function referenceKT-37436AME: "Receiver class does not define or inherit an implementation of the resolved method" in runtime on usage of non-abstract method of fun interfaceKT-37510NI infersjava.lang.Voidfrom the expression in a lazy property delegate and throws ClassCastException at runtimeKT-37541SAM conversion with fun interface without a function fails on compiling and IDE analysis in SamAdapterFunctionsScope.getSamConstructor()KT-37574NI: Type mismatch with Kotlin object extending functional type passed as @FunctionalInterface to JavaKT-37630NI: ILT suitability in a call is broken if there are CST calculation and calling function's type parametersKT-37665NI: applicability error due to implicitly inferred Nothing for returning T with expected typeKT-37712No extension receiver in functional interface created with lambdaKT-37715NI: VerifyError: Bad type on operand stack with varargs generic value when type is inferredKT-37721NI: Function reference with vararg parameter treated as array and missing default parameter is rejectedKT-37887NI: Smart casting for Map doesn't work if the variable is already "smart casted"KT-37914NI: broken inference for a casting to subtype function within the common constraint system with this subtypeKT-37952NI: improve lambdas completion through separation the lambdas analysis into several stepsKT-38069Callable reference adaptation should have dependency on API version 1.4KT-38143New type inference fails when calling extension function defined on generic type with type arguments nested too deepKT-38156FIR Metadata generationKT-38197java.lang.OutOfMemoryError: Java heap space: failed reallocation of scalar replaced objectsKT-38259NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER for provideDelegateKT-38337Map delegation fails for inline classesKT-38401FIR: protected effective visibility is handled unpreciselyKT-38416FIR: infinite loop in BB coroutine test 'overrideDefaultArgument.kt'KT-38432FIR: incorrect effective visibility in anonymous objectKT-38434Implement resolution of suspend-conversion on FE only, but give error if suspend conversion is calledKT-38437[FIR] String(CharArray) is resolved to java.lang.String constructor instead of kotlin.text.String pseudo-constructorKT-38439NI: anonymous functions without receiver is allowed if there is an expected type with receiverKT-38473FIR: ConeIntegerLiteralType in signatureKT-38537IllegalArgumentException: "marginPrefix must be non-blank string" with raw strings and space as margin prefix in trimMargin() callKT-38604Implicit suspend conversion on call arguments doesn't work on vararg elementsKT-38680NSME when calling generic interface method with default parameters overriden with inline class type argumentKT-38681Wrong bytecode generated when calling generic interface method with default parameters overriden with primitive type argumentKT-38691NI: overload resolution ambiguity if takeRand() -> R, and pass literal lambda, which returnsRKT-38799False positive USELESS_CAST for lambda parameterKT-38802Generated code crashes by ClassCastException when delegating with inline classKT-38853Backend Internal error: Error type encountered: Unresolved type for nested class used in an annotation argument on an interface methodKT-38890NI: false negative Type mismatch for values with fun keywordKT-39010NI: Regression with false-positive smartcast on var of generic typeKT-39013202, ASM 8: "AnalyzerException: Execution can fall off the end of the code"KT-39260"AssertionError: Unsigned type expected: Int" in rangeKT-39305NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER: unable to infer deeply nested type bound when class implements generic interfaceKT-39408Using unsigned arrays as generics fails in 1.4-M2 with class cast exceptionKT-39533NI: Wrong overload resolution for methods with SAM converted function reference argumentsKT-39535NI: Inference fails for the parameters of SAM converted lambdas with type parametersKT-39603Require explicit override in JVM default compatibility mode on implicit generic specialization of inherited methods in classesKT-39671Couldn't inline method call 'expectBody'KT-39816NI:ClassCastException and no IDE error with provideDelegate when DELEGATE_SPECIAL_FUNCTION_MISSING in OIKT-32779Rewrite at slicein array access resolution in coroutine inferenceKT-39387Can't build Kotlin project due to overload resolution ambiguity on flatMap callsKT-39229NI: resolution to wrong candidate (SAM-type against similar functional type)
Docs & Examples
KT-36245Document that @kotlin.native.ThreadLocal annotation doesn't work anywhere except in Kotlin/NativeKT-37943Conflicting overloads in the factory functions sample code in Coding Conventions Page
IDE
New Features
KT-10974Add Code Style: Import Layout Configuration TableKT-39065"Join lines" should remove trailing comma on call site
Fixes
KT-9065Wrong result when move statement through if block with call with lambdaKT-14757Move statement up breaks code in function parameter listKT-14946Move statement up/down (with Ctrl+Shift+Up/Down) messes with empty linesKT-15143Kotlin: Colors&Fonts -> "Enum entry" should use Language Default -> Classes - Static fieldKT-17887Moving statement (Ctrl/Cmd+Shift+Down) messes with use blockKT-34187UAST cannot get type of array accessKT-34524"PSI and index do not match" and IDE freeze with library import fromsquare/workflowKT-35574UAST: UBreakExpression in when expression should be UYieldExpressionKT-36801IDE: Unsupported language version value is represented with "latest stable" in GUIKT-37378Remove IDE option "Enable new type inference algorithm..." in 1.4KT-38003"Analyze Data Flow from Here" should work on parameter of abstract methodKT-38173Reified types do no have extends informationKT-38217Make Kotlin plugin settings searchableKT-38247"IncorrectOperationException: Incorrect expression" through UltraLightUtils.kt: inlined string is not escaped before parsingKT-38293Throwable: "'codestyle.name.kotlin' is not found in java.util.PropertyResourceBundle" at KotlinLanguageCodeStyleSettingsProvider.getConfigurableDisplayName()KT-38407Drop components from plugin.xmlKT-38443No error on change in property initializerKT-38521ISE: Loop in parent structure when converting a DOT_QUALIFIED_EXPRESSION with parent ANNOTATED_EXPRESSIONKT-38571Rework deprecated EPsKT-38632Change the code style to official in tests
IDE. Code Style, Formatting
Fixes
KT-24750Formatter: Minimum blank lines after class header does nothingKT-31169IDEA settings search fails to find "Tabs and Indents" tab in Kotlin code style settingsKT-35359Incorrect indent for multiline expression in string templateKT-37420Add setting to disable inserting empty line between declaration and declaration with commentKT-37891Formatter inserts empty lines between annotated propertiesKT-38036Use trailing comma setting does not apply to code example in Settings dialogKT-38568False positive: weak warning "Missing line break" on -> in when expressionKT-39024Add option for blank lines before declaration with comment or annotation on separate lineKT-39079Trailing comma: add base support for call siteKT-39123OptionAlign 'when' branches in columnsdoes nothingKT-39180Move trailing comma settings in Other tab
IDE. Completion
KT-18538Completion of static members of grand-super java class inserts unnecessary qualifierKT-38445Fully qualified class name is used instead after insertion ofdelaymethod
IDE. Debugger
Fixes
KT-14057Debugger couldn't step into Reader.readKT-14828Bad step into/over behavior for functions with default parametersKT-36403Method breakpoints don't work for librariesKT-36404Evaluate: "AssertionError: Argument expression is not saved for a SAM constructor"KT-37486Kotlin plugin keeps reference to stream debugger support classes after stream debugger plugin is disabledKT-38484Coroutines Debugger: IAE “Requested element count -1 is less than zero.” is thrown by calling dumpCoroutinesKT-38606Coroutine Debugger: OCE from org.jetbrains.kotlin.idea.debugger.coroutine.proxy.mirror.BaseMirror.isCompatibleKT-39143NPE on setCurrentStackFrame to Kotlin inner compiled class contentKT-39412Failed to find Premain-Class manifest attribute when debugging main method with ktorKT-39634(CoroutineDebugger) Agent doesn't start if using kotlinx-coroutines-core only dependencyKT-39648Coroutines debugger doesn't see stacktraces in case of the project has kotlinx-coroutines-debug dependency
IDE. Gradle Integration
Performance Improvements
KT-39059Poor performance ofmodifyDependenciesOnMppModules
Fixes
KT-35921Gradle Import fails with "Unsupported major.minor version 52.0" on pure Java project in case "Gradle JDK" is lower 1.8 and Kotlin plugin is enabledKT-36673Gradle Project importing: move ModelBuilders and ModelProviders to kotlin-gradle-tooling jarKT-36792IDEA 2020.1: Some module->module dependencies in HMPP project are missed after import from GradleKT-37125Imported modules structure for MPP project is displayed messy in UI in IDEA 2020.1KT-37428NPE at KotlinFacetSettings.setLanguageLevel() on the first project importKT-38706IDE Gradle import creates 4 JavaScript modules for MPP source sets with BOTH compiler typeKT-38767Published hierarchical multiplatform library symbols are unresolved in IDE (master)KT-38842False positive [INVISIBLE_MEMBER] forinternaldeclaration of commonMain called from commonTestKT-39213IDE: references from MPP project to JavaScript library are unresolved, when project and library are compiled with "both" modeKT-39657Language settings for intermediate source-sets are lost during import
IDE. Gradle. Script
New Features
KT-34481*.gradle.kts: use Intellij IDEA Gradle project sync mechanics for updating script configuration
Performance Improvements
KT-34138Deadlock inScriptTemplatesFromDependenciesProviderKT-38875Deadlock in ScriptClassRootsUpdater.checkInvalidSdks
Fixes
KT-34265Bogus "build configuration failed, run 'gradle tasks' for more information" message and other issues related to "script dependencies"KT-34444*.gradle.kts: special storage of all scripts configuration on one fileKT-35153build.gradle.kts: scripts in removed subproject remain imported, but shouldn'tKT-35573Request for gradle build script configuration only after explicit click on notificationKT-36675move .gradle.kts ModelBuilders and ModelProviders to kotlin-gradle-tooling jarKT-37178build.gradle.kts: Rework the notification for scripts out of projectKT-37631Unnecessary loading dependencies after opening build.gradle.kts after project import with Gradle 6KT-37863Scanning dependencies for script definitions takes too long or indefinitely during Gradle importKT-38296MISSING_DEPENDENCY_SUPERCLASS in the build.gradle.kts editor while Gradle runs OkKT-38541"Invalid file" exception in ScriptChangeListener.getAnalyzableKtFileForScript()KT-39104“Gradle Kotlin DSL script configuration is missing” after importing project in IJ201, Gradle 6.3KT-39469Gradle version is not updated in script dependencies if the version of gradle was changed in gradle-wrapper.propertiesKT-39771Freeze 30s from org.jetbrains.kotlin.scripting.resolve.ApiChangeDependencyResolverWrapper.resolve on loading script configuration with Gradle 5.6.4
IDE. Inspections and Intentions
New Features
KT-14884Intention to add missing "class" keyword for enum and annotation top-level declarationsKT-17209Provide intention to fix platform declaration clash (CONFLICTING_JVM_DECLARATIONS)KT-24522Suggest to move typealias outside the classKT-30263Detect redundant conversions of unsigned typesKT-35893Support Inspection for unnecessary asSequence() callKT-38559"Change JVM name" (@JvmName) quickfix: improve name suggester for generic functionsKT-38597Expand Boolean intentionKT-38982Add "Logger initialized with foreign class" inspectionKT-39131TrailingCommaInspection: should suggest fixes for call-site without warnings
Fixes
KT-5271Missing QuickFix for Multiple supertypes availableKT-11865"Create secondary constructor" quick fix always inserts parameter-less call tothis()KT-14021Quickfix to add parameter to function gives strange name to parameterKT-17121"Implement members" quick fix is not suggestedKT-17368Don't highlight members annotated with @JsName as unusedKT-20795"replace explicit parameter with it" creates invalid code in case of overload ambiguitiesKT-22014Intention "convert lambda to reference" should be available for implicit 'this'KT-22015Intention "Convert lambda to reference" should be available in spite of the lambda in or out of parenthesesKT-22142Intentions: "Convert to primary constructor" changes semantics for property with custom setterKT-22878Empty argument list at the call site of custom function named "suspend" shouldn't be reported as unnecessaryKT-24281Importing of invoke() from the same file is reported as unused even if it isn'tKT-25050False-positive inspection "Call replaceable with binary operator" for 'equals'KT-26361@Deprecated "ReplaceWith" quickfix inserts 'this' incorrectly when using function importsKT-27651'Condition is always true' inspection should not be triggered when the condition has references to a named constantKT-29934False negativeChange typequickfix on primary constructor override val parameter when it has wrong typeKT-31682'Convert lambda to reference' intention inside class with function which return object produces uncompilable codeKT-31760Implement Abstract Function/Property intentions position generated member improperlyKT-32511Create class quick fix is not suggested in super type list in case of missing primary constructorKT-32565False positive "Variable is the same as 'credentials' and should be inlined" with object declared and returned from lambdaKT-32801False positive "Call on collection type may be reduced" with mapNotNull, generic lambda block and new inferenceKT-33951ReplaceWith quickfix with unqualified object member call doesn't substitute argument for parameterKT-34378"Convert lambda to reference" refactoring does not work for suspend functionsKT-34677False positive "Collection count can be converted to size" withIterableKT-34696Wrong 'Redundant qualifier name' for 'MyEnum.values' usageKT-34713"Condition is always 'false'": quickfix "Delete expression" doesn't removeelsekeyword (may break control flow)KT-35015ReplaceWith doesn't substitute parameters with argument expressionsKT-35329Replace 'when' with 'if' intention: do not suggest if 'when' is used as expression and it has no 'else' branchKT-36194"Add braces to 'for' statement" inserts extra line break and moves the following single-line commentKT-36406"To ordinary string literal" intention adds unnecessary escapes to characters in template expressionKT-36461"Create enum constant" quick fix adds after semicolon, if the last entry has a commaKT-36462"Create enum constant" quick fix doesn't add trailing commaKT-36508False positive "Replace 'to' with infix form" when 'to' lambda generic type argument is specified explicitlyKT-36930Intention "Specify type explicitly" adds NotNull annotation when calling java method with the annotationKT-37148"Remove redundant.letcall doesn't remove extra callsKT-37156"Unused unary operator" inspection highlighting is hard to seeKT-37173"Replace with string templates" intention for String.format produces uncompilable string templateKT-37181Don't show "Remove redundant qualifier name" inspection on qualified Companion imported with star importKT-37214"Convert lambda to reference" with a labeled "this" receiver failsKT-37256False positivePlatformExtensionReceiverOfInlineinspection if a platform type value is passed to a nullable receiverKT-37744"Convert lambda to reference" inspection quick fix create incompilable code when type is inferred from lambda parameterKT-37746"Redundant suspend modifier" should not be reported for functions with actual keywordKT-37842"Convert to anonymous function" creates broken code with suspend functionsKT-37908"Convert to anonymous object" quickfix: false negative when interface has concrete functionsKT-37967Replace 'invoke' with direct call intention adds unnecessary parenthesisKT-37977"Replace 'invoke' with direct call" intention: false positive when function is not operatorKT-38062Reactor Quickfix throwsNotImplementedErrorfor KotlinKT-38240False positive redundant semicolon withascast andnotunary operator on next lineKT-38261Redundant 'let' call removal leaves ?. operator and makes code uncompilableKT-38310Remove explicit type annotation intention drops 'suspend'KT-38492False positive "Add import" intention for already imported classKT-38520SetterBackingFieldAssignmentInspection throws exceptionKT-38649False positive quickfix "Assignment should be lifted out of when" in presence of smartcastsKT-38677Invalid psi tree afterLift assigment out of...KT-38790"Convert sealed subclass to object" for data classes doesn't remove 'data' keywordKT-38829'Remove redundant backticks' can be broken with @ in nameKT-38831'Replace with assignment' can be broken with fast code changeKT-38832"Remove curly braces" intention may produce CCEKT-38948False positive quickfix "Make containing function suspend" for anonymous functionKT-38961"Useless call on collection type" for filterNotNull on non-null array where list return type is expectedKT-39069Improve TrailingCommaInspectionKT-39151False positive inspection to replace Java forEach with Kotlin forEach when using ConcurrentHashMap
IDE. JS
KT-39275Kotlin JS Browser template for kotlin dsl doesn't include index.html
IDE. KDoc
KT-32163Open Quick Documentation when cursor inside function / constructor brackets
IDE. Navigation
KT-32245Method in Kotlin class is not listed among implementing methodsKT-33510There is no gutter icon to navigate fromactualtoexpectifexpectand the correspondingactualdeclarations are in the same fileKT-38260Navigation bar doesn't show directories of files with a single top level Kotlin classKT-38466Top level functions/properties aren't shown in navigation panel
IDE. Project View
KT-36444Structure view: add ability to sort by visibilityKT-38276Structure view: support visibility filter for class properties
IDE. REPL
KT-38454Kotlin REPL in IntelliJ doesn't take module's JVM target setting into account
IDE. Refactorings
KT-12878"Change signature" forces line breaks after every parameter declarationKT-30128Change Signature should move lambda outside of parentheses if the arguments are reordered so that the lambda goes lastKT-35338Move/rename refactorings mess up code formatting by wrapping linesKT-38449Extract variable refactoring is broken by NPEKT-38543Copy can't work to package with escaped packageKT-38627Rename package refactorings mess up code formatting by wrapping lines
IDE. Run Configurations
KT-34516Don't suggest incompatible targets in a drop-down list for run test gutter icon in multiplatform projectsKT-38102DeprecatedMethodException ConfigurationFactory.getId
IDE. Scratch
KT-38455Kotlin scratch files don't take module's JVM target setting into account
IDE. Script
KT-39791Kotlin plugin loads VFS in the output directories
IDE. Structural Search
KT-39721Optimize Kotlin SSR by using the indexKT-39733Augmented assignment matchingKT-39769"When expressions" predefined template doesn't match all when expressions
IDE. Wizards
KT-38673New Project Wizard: multiplatform templates are generated having unsupported Gradle version in a wrapperKT-38810Incorrect order of build phases in Xcode project from new wizardKT-38952Remove old new_project_wizardsKT-39503New Project wizard 1.4+: release kotlinx.html version is added to dependencies with milestone IDE pluginKT-39700Wizard: group project templates on the first step by the project typeKT-39770CSS Support in Kotlin wizardsKT-39826Fix Android app in New Template WizardKT-39843Change imports in JS/browser wizard
JS. Tools
KT-32273Kotlin/JS console error on hot reloadKT-39498Update dukat version in toolchain near to release of 1.4-M3
JavaScript
KT-29916ImplementtypeOfon JSKT-35857Kotlin/JS CLI bundled to IDEA plugin can't compile using IR back-end out of the boxKT-36798KJS: prohibit using @JsExport on a non-top-level declarationKT-37771KJS: Generated TypeScript does not recursively export base classes (can fail with generics)KT-38113Review public API of JS stdlib for IR BEKT-38765[JS / IR] AssertionError: class EventEmitter: Super class should be any: with nested class extending parent classKT-38768KJS IR: generate ES2015 (aka ES6) classes
Libraries
New Features
KT-11253Function to sum long or other numeric property of items in a collectionKT-28933capitalize() with Locale argument in the JDK stdlibKT-34142Create SortedMap with Comparator and itemsKT-34506Add Sequence.flatMap overload that works on IterableKT-36894Support flatMapIndexed in the Collections APIKT-38480Introduce experimental annotation for enabling overload resolution by lambda resultKT-38708minOf/maxOf functions to return min/max value provided by selectorKT-39707Make some interfaces in stdlib functional
Performance Improvements
KT-23142toHashSet is suboptimal for inputs with a lot of duplicates
Fixes
KT-21266Add module-info for standard library artifactsKT-23322Document 'reduce' operation behavior on empty collectionsKT-28753Comparing floating point values in array/list operations 'contains', 'indexOf', 'lastIndexOf': IEEE 754 or total orderKT-30083Annotate KTypeProjection.STAR with JvmField in a compatible wayKT-30084Annotate functions in KTypeProjection.Companion with JvmStaticKT-31343Deprecate old String <-> CharArray, ByteArray conversion apiKT-34596Add some validation to KTypeProjection constructorKT-35978Review and remove experimental stdlib API status for 1.4KT-38388DocumentfromIndexandtoIndexparametersKT-38854Gradually change the return type of collection min/max functions to non-nullableKT-39023Document split(Pattern) extension differences from Pattern.splitKT-39064Introduce minOrNull and maxOrNull extension functions on collectionsKT-39235Lift experimental annotation from bit operationsKT-39237Lift experimental annotation from common StringBuilderKT-39238Appendable.appendRange - remove nullabilityKT-39239Lift experimental annotation from String <-> utf8 conversion apiKT-39244KJS: update polyfills, all or most of them must not be enumerableKT-39330Migrate declarations from kotlin.dom and kotlin.browser packages to kotlinx.*
Middle-end. IR
KT-31088need a way to compute fake overrides for pure IRKT-33207Kotlin/Native: KNPE during deserialization of an inner classKT-33267Kotlin/Native: Deserialization error for an "inner" extension property imported from a classKT-37255Make psi2ir aware of declarations provided by compiler plugins
Reflection
KT-22936Not all things can be changed tocreateTypeyet, and nowdefaultTypemethods are starting to failKT-32241Move KType.javaType into stdlib from reflectKT-34344KType.javaType implementation throws when invoked with a typeOf()KT-38491IllegalArgumentException when using callBy on function with inline class parameters and default argumentsKT-38881Add KClass.isFun modifier of functional interfaces to reflection
Tools. Android Extensions
KT-25807Kotlin extension annotation @Parcelize in AIDL returns Object instead of original T
Tools. CLI
KT-30211Support a way to pass arguments to the underlying JVM in kotlinc batch scripts on WindowsKT-30778kotlin-compiler.jar contains shaded but not relocated kotlinx.coroutinesKT-38070Compiler option to bypass prerelease metadata incompatibility errorKT-38413Add JVM target bytecode version 14
Tools. Compiler Plugins
KT-39274[KJS / IR] Custom serializer for class without zero argument constructor doesn't compile
Tools. Gradle
KT-25428Kotlin Gradle Plugin: Use new Gradle API for Lazy tasksKT-34487Gradle build fails with "Cannot run program "java": error=7, Argument list too longKT-35957MPP IC fails with "X has several compatible actual declarations" errorKT-38250Drop support for Gradle versions older than 5.3 in the Kotlin Gradle plugin
Tools. Gradle. JS
New Features
KT-30619Support NPM transitive dependencies in multi-platform JS targetKT-38286[Gradle, JS] Error handling on Webpack problems
Fixes
KT-31669Gradle/JS: rise error when plugin loaded more than onceKT-32531[Gradle/JS] Add scoped NPM dependenciesKT-34832[Kotlin/JS] Failed build after webpack run (Karma not found)KT-35194Kotlin/JS: browserRun fails with "address already in use" when trying to connect to local serverKT-35611Kotlin Gradle plugin should reportkotlin2jsplugin ID as deprecatedKT-35641Kotlin Gradle plugin should reportkotlin-dce-jsplugin ID as deprecatedKT-36410JS: Collect stats about IR backend usageKT-36451KJS Adding npm dependency breaks Webpack devserver reloadingKT-37258Kotlin/JS + Gradle: in continuous mode kotlinNpmInstall time to time outputs "ENOENT: no such file or directory" errorKT-38109[Gradle, JS] Error handling on Karma launcher problemsKT-38331Add an ability to control generating externals for npm deps individuallyKT-38485[Gradle, JS] Unable to configure JS compiler with stringKT-38683Remove possibility to set NPM dependency without versionKT-38990Support multiple range versions for NPM dependenciesKT-38994Remove possibility to set NPM dependency with npm(org, name, version)KT-39109ArithmeticException: "/ by zero" caused by kotlinNodeJsSetup task with enabled gradle caching on WindowsKT-39210Kotlin/JS: with both JS and MPP modules in the same project Gradle configuration fails onnodejs {}andbrowser {}KT-39377Use standard source-map-loader instead of custom one
Tools. Gradle. Multiplatform
KT-39184Support publication of Kotlin-distributed libraries with Gradle MetadataKT-39304Gradle import errorjava.util.NoSuchElementException: Key source set foo is missing in the mapon unused source set
Tools. Gradle. Native
KT-37514CocoaPods Gradle plugin: Support building from terminal projects for several platformsKT-38440Make error message about missing Podfile path for cocoapods integration actionable for a userKT-38991Gradle MPP plugin: Enable parallel in-process execution for K/N compilerKT-39935Support overriding theKotlinNativeCompiletask sourcesKT-37512Cocoapods Gradle plugin: Improve error logging for external tools
Tools. J2K
KT-35169Do not show "Inline local variable" popup during "Cleaning up code" phase of J2KKT-38004J2K breaks java getter call in java codeKT-38450J2K should convert Java SAM interfaces to Kotlin fun interfaces
Tools. JPS
KT-27458The Kotlin standard library is not found in the module graph ... in a non-Kotlin project.KT-29552Project is completely rebuilt after each gradle sync.
Tools. Scripts
KT-37766Impossible to apply compiler plugins onto scripts with the new scripting API
Tools. kapt
KT-29355Provide access to default values for primary constructor properties
1.4-M2
Compiler
New Features
KT-37432Do not include annotations fields into 'visibility must be explicitly specified' check in api mode
Performance Improvements
KT-27362Anonymous classes representing function/property references contain rarely used methodsKT-35626NI: Performance problem with many type parametersKT-36047Compiler produces if-chain instead of switch when when subject captured as variableKT-36638Use 'java/lang/StringBuilder.append (C)Ljava/lang/StringBuilder;' when appending single character in JVM_IRKT-37389Avoid type approximation during generation constraints with EQUALITY kindKT-37392Avoid substitution and type approximation for simple callsKT-37546NI: high memory and CPU consumption due to creating useless captured types (storing in approximated types cache, unneeded computations)
Fixes
KT-11265Factory pattern and overload resolution ambiguityKT-27524Inline class is boxed when used with suspend modifierKT-27586ClassCastException occurs if the Result (or any other inline class) is returned from a lambdaKT-30419Use boxed version of an inline class in return type position for covariant and generic-specialized overridesKT-31163FIR: consider replacing comparisons with compareTo calls and some additional intrinsicsKT-31585ClassCastException with derived class delegated to generic class with inline class type argumentKT-31823NI: Type mismatch with a star projection andUnsafeVarianceKT-33119Pre-increment for inline class wrapping Int compiles to direct increment instead of inc-implKT-33715Kotlin/Native: metadata compilerKT-34048IllegalAccessError when initializing val property in EXACTLY_ONCE lambdaKT-34433NI: Type mismatch with a star projection andUnsafeVarianceKT-35133FIR Java: don't set 'isOperator' for methods with non-operator namesKT-35234ClassCastException with creating an inline class from a function reference of covariant or generic-specialized overrideKT-35406Generic type implicitly inferred as Nothing with no warningKT-35587Plain namespace strings in JvmNameResolver.PREDEFINED_STRINGS are prone to namespace changes during jar relocation.KT-36044NI: premature fixation a type variable if there were nested lambdas (constraint source was the deepest lambda)KT-36057[FIR] Incorrect smartcastKT-36069NI: TYPE_MISMATCH caused by incorrect inference to NothingKT-36125Callable reference resolution ambiguity error is not displayed properly in the IDEKT-36191IDE locks loading packages and editing file containingtrykeyword inside string templateKT-36222NI: Improve error message about nullability mismatch for a generic callKT-36249NI doesn't use upper bound for T of called function during infer return type and as a result infer it toAny?if the resulting type was intersection typeKT-36345FIR: record argument mapping for use in back-endKT-36446NI: "UnsupportedOperationException no descriptor for type constructor of IntegerLiteralType[Int,Long,Byte,Short]" with BuilderInference and delegateKT-36758[FIR] Unresolved callable reference to member of local classKT-36759[FIR] Unsupported callable reference resolution for methods with default parametersKT-36762[FIR] Unresolvedarray.clone()KT-36764[FIR] Bug in inference with DefinitelyNotNull typesKT-36816NI: definitely not-null (T!!) types in invariant positions don't approximate to T inside inference processKT-36819NI: premature completion of lambdas, which are passed somewhereKT-36850Incorrect private visibility of sealed class constructorsKT-36856Throwing exception when there is inheritance in Kotlin from Java class, which contains methods with the same JVM descriptorsKT-36879Introduce FIR_IDENTICAL in diagnostic testsKT-36881FIR: completion don't runs for return expressionsKT-36887[FIR] Unresolved member in nested lambda in initializerKT-36905[FIR] Unresolved in lambda in default argument positionKT-36953AssertionError: "Unsigned type expected: null" when there is a range with an unsigned typeKT-37009FIR: Bound smart-cast lostKT-37027FIR: Wrong projection on spread + varargs on non-final typesKT-37038NI: redundant lambda's arrow breaks CST calculation for extension lambdasKT-37043NI: inference T to Any? if there was elvis between Java out-type and reifiedmaterializefor this type without out projectionKT-37066[FIR] Wrong type inference for lambdasKT-37070[FIR] Unresolved parameters of outer lambda in scope of inner lambdaKT-37087"IllegalStateException: Can't find method 'invoke()'" for mutable property reference in default value of an inline function parameterKT-37091[FIR] Wrong inferred type of when-expression if when-argument is not-null-asserted and type is not specifies explicitlyKT-37176[FIR] Incorrect resolution mode for statements of blockKT-37302Unexpected conversion:Intconstant inferred toLongin when expressionKT-37327FIR: Smartcast problemKT-37343NI: definitely not null types pre-approximation is inconsistent with OIKT-37380NI: broken some code with def not null types due to skip needed constraintsKT-37419NI: UNRESOLVED_REFERENCE_WRONG_RECEIVER is reported in case lambda with receiver is returned fromwhenexpressionKT-37434Kotlin/JS, Kotlin/Native: fun interfaces: SAM conversion to Kotlin interface is not compiled with RESOLUTION_TO_CLASSIFIERKT-37447Expression from annotation entry in value parameter inside value parameter should be marked as USED_AS_EXPRESSIONKT-37453Type arguments not checked to be empty for candidates with no declared parametersKT-37488[FIR] Incorrect exhaustiveness checking for branches with equals to object that implements sealed classKT-37497NI: 'super' is not an expression, it can not be used as a receiver for extension functionsKT-37530NI: instantiation of abstract class via callable reference argument causes run time InstantiationErrorKT-37531NI: callable reference argument with left hand side type parameter causes frontend exceptionKT-37554NI: Nothing is inferred incorrectly with elvis returnKT-37579NI: inconsistent behaviour with OI around implicit invoke convention after safe call with additional implicit receiverKT-37604"VerifyError: Call to wrong method" in 'invoke' for adapted callable reference to constructor with coercion to UnitKT-37621NI: type variable is inferred to Nothing if the second branch was Nothing and there was upper bound for a type parameterKT-37626NI: builder inference with expected type breaks class references resolution for a class with parametersKT-37627NI: wrong order of the type variable fixation (Nothing? against a call with lambda)KT-37628NI: wrong approximation of type argument to star projection during common super type calculationKT-37644NI: appeared exception during incorporation of a captured type into a type variable for elvis resolveKT-37650NI: it's impossible to infer a type variable with the participation of a wrapped covariant typeKT-37718False positive unused parameter for @JvmStatic main function in objectKT-37779ClassCastException: Named argument without spread operator for vararg parameter causes code to crash on runtimeKT-37832In MPP, subtypes of types defined in legacy libraries, like stdlib, cannot properly resolve on the consumer side receviing bothKT-37861Capturing an outer class instance in a default parameter of inner class constructor causes VerifyErrorKT-37986Return value of function reference returning inline class mapped to 'java.lang.Object' is not boxed properlyKT-37998'!!' operator on safe call of function returning inline class value causes CCE at runtimeKT-38042Allow kotlin.Result as a return type only if one enabled inline classes explicitlyKT-38134NI: Type mismatch with a star projection andUnsafeVarianceKT-38298Inconsistent choice of candidate when both expect/actual are available (affects onlyenableGranularSourceSetMetadata)KT-38661NI: "Cannot infer type variable TypeVariable" with lambda with receiverKT-38668Project with module dependency in KN, build fails with Kotlin 1.3.71 and associated libs but passes with 1.3.61.KT-38857Class versions V1_5 or less must use F_NEW frames.KT-39113"AssertionError: Uninitialized value on stack" with EXACTLY_ONCE contract in non-inline function and lambda destructuringKT-28483Override of generic-return-typed function with inline class should lead to a boxingKT-37963ClassCastException: Value of inline class represented as 'java.lang.Object' is not boxed properly on return from lambda
Docs & Examples
KT-35231toMutableList documentation is vague
IDE
Performance Improvements
KT-30541EDT Freeze after new Kotlin Script creationKT-35050Significant freezes due to findSdkAcrossDependencies()KT-37301Freeze when "Optimize Imports" in KotlinImportOptimizerKT-37466Invalidate partialBodyResolveCache on OCBKT-37467PerFileAnalysisCache.fetchAnalysisResultsKT-37993Do not resolve references if paste code is located in the same originKT-38318Freezes in IDEA
Fixes
KT-27935Functional typealias with typealias in type parameters causes UnsupportedOperationException in TypeSignatureMappingKt (IDEA analysis)KT-31668Complete statement for class declaration: add '()' to supertypeKT-33473UAST: References to local variable are resolved to UastKotlinPsiVariableKT-34564Kotlin USimpleNameReferenceExpression for annotation parameter resolves to null for compiled Kotlin classesKT-34973Light class incorrectly claiming ambiguous method call from Java when one overload is syntheticKT-35801UAST: UnknownKotlinExpression for valid Kotlin annotated expressionKT-35804UAST: Annotations missing from catch clause parametersKT-35848UAST: ClassCastException when trying to invoke UElement for some wrapped PsiElementsKT-36156Kotlin annotation attributes have blue color whereas white in JavaKT-36275UAST: UCallExpression::resolve returns null for local function callsKT-36717Fix failing light class tests after switching plugin to language version 1.4KT-36877Message bundles for copy paste are missed in 201KT-36907IDE:-Xuse-irsetting on facet level does not affect highlightingKT-37133UAST: Annotating assignment expression sometimes leads to UnknownKotlinExpressionKT-37312"Implement members" intention put function in the primary constructor if there are unused brackets in classKT-37613Uast: no parameters in reified methodKT-37933Rare NPE in ProjectRootsUtilKt.isKotlinBinary [easy fix]KT-38081Configure kotlin in project produces IDE error "heavy operation and should not be call on AWT thread"KT-38354HMPP. IDE. Dependency leakage from leaf native to shared native moduleKT-38634IDE: Error on opening MPP project in 1.3.72 after opening it in 1.4-M2
IDE. Code Style, Formatting
KT-37870"Remove trailing comma" action stops working after applying and cancelling it
IDE. Completion
KT-36808Delete Flow.collect from autocompletion list or make it least prioritizedKT-36860Provide convenient completion of extension functions from objectsKT-37395Invalid callable reference completion of member extension
IDE. Debugger
KT-34906Implement Coroutine DebuggerKT-35392Debugger omits meaningful part of the stacktrace even with disabled filterKT-36215Coroutines debugger tab is empty in Android StudioKT-37238Coroutines Debugger: dump creation fails every timeKT-38047Coroutines Debugger: Assertion failed: “Should be invoked in manager thread, use DebuggerManagerThreadImpl” on moving to source code from suspended coroutine in project without debugger jar in classpathKT-38049Coroutines Debugger: NPE “null cannot be cast to non-null type com.sun.jdi.ObjectReference” is thrown by calling dumpCoroutinesKT-38487Any Field Watch interaction causes a MissingResourceException
IDE. Decompiler, Indexing, Stubs
KT-37896IAE: "Argument for @NotNull parameter 'file' of IndexTodoCacheManagerImpl.getTodoCount must not be null" through KotlinTodoSearcher.processQuery()
IDE. Gradle Integration
KT-33809Withkotlin.mpp.enableGranularSourceSetsMetadata=true, IDE misses dependsOn-relation between kotlin and android sourceSets, leading to issues with expect/actual matchingKT-36354IDE: Gradle import from non-JVM projects: dependency to output artifact is created instead of module dependencyKT-38037UnsupportedOperationException on sync gradle Kotlin project with at least two multiplatform modules
IDE. Gradle. Script
KT-36763Drop modification stamp for scripts after project importKT-37237Script configurations should be loaded during project import in case of errorsKT-38041Do not request for script configuration after VCS update
IDE. Inspections and Intentions
New Features
KT-3262Inspection "Inner class could be nested"KT-15723Add 'Convert to value' quickfix for property containing only getterKT-34026Add "Remove argument" quick fix for redundant argument in constructor callKT-34332Add "Remove argument" quick fix for redundant argument in function callKT-34450Convert function to propertyintention should be also displayed onfunkeywordKT-34593Invert 'if' condition: InvertString.isNotEmptyshould beString.isEmptyKT-34819Inspection: report useless elvis "?: return null"KT-37849SupportReplaceWithfor supertypes call
Performance Improvements
KT-37515Deadlock
Fixes
KT-12329"invert if" inserts unnecessary 'continue' for statement inside a loop with 'continue'KT-17615"Convert parameter to receiver" changesthistothis@ < no name provided >KT-20868IntelliJ says method from anonymous inner class with inferred interface type is not used even though it isKT-20907Secondary constructor is marked as unused by IDE when called by typealiasKT-22368"Convert to block body" intention incorrectly formats closing braceKT-23510"Remove parameter" quick fix keeps lambda argument when it's out of parenthesesKT-27601False positive "Unused import directive" for extension function used in KDocKT-28085"Convert receiver to parameter" introduces incorrect this@class in lambdaKT-30028"Convert parameter to receiver" introduces wrong 'this' qualifier for extension lambda receiverKT-31601"Remove redundant let call" changes semantics by introducing multiple safe callsKT-31800False positive "never used" with function in private val object expressionKT-31912QF “Convert to anonymous object” do nothing on SAM-interfacesKT-32561"Property can be declared in constructor" causes another warningKT-32809Convert parameter to receiver inserts wrong qualifiers for this (when nothing needs to be changed)KT-34371"Surround with lambda" quickfix is not available for suspend lambda parameters.KT-34640Replace 'if' with 'when' leads to copy comment line above when from another ifKT-36225KNPE: CodeInliner.processTypeParameterUsages withReplaceWithfor inline reified generic functionKT-36266NPE when invoking Lift return out of if/when after intention becomes inapplicable but still beeing shownKT-36296False negative "Redundant SAM-constructor" with multiple SAM argumentsKT-36367False negative "Redundant SAM-constructor" for kotlin functionsKT-36368False negative "Redundant SAM-constructor" for fun interfaces in kotlinKT-36395False positive "Redundant SAM-constructor" with two java interfaces extending one anotherKT-36411"Put parameters on separate lines" and "Put parameters on one line" actions do not respect trailing commaKT-36482"Add JvmOverloads annotation" intention is still suggested for annotation's parametersKT-36686Implement members quickfix puts the implementation before the data class if it already has a bodyKT-36685"Convert to a range check" transform hex range to int if it is compared with "Less" or "Greater"KT-36707False positive redundant companion object on calling companion object membersKT-36735Inspection 'Replace 'toString' with string template' miss curly braces and generates wrong code for constructor callsKT-36834Convert use-site targets and usages with convert property to fun intentionKT-37213"Move to top level" intention does not update imports for extension functionsKT-37496False positive "Remove redundant backticks" for multiple underscores variable nameKT-37502False positive "redundant lambda arrow" with inline generic function with reified type in object and anonymous parameter nameKT-37508"Convert receiver to parameter" breaks code in anonymous objects (this@ < no name provided >)KT-37576Kotlin InspectionSuppressor not being called for the kotlin's inspectionsKT-37749"Convert to anonymous object" intention is suggested for Java SAM conversion, but not for KotlinKT-37781"Add modifier" intention/quickfix works incorrectly with functional interfacesKT-37893i18n: Incorrect quickfix name "Lift return out of '"
IDE. KDoc
KT-37361Support for showing rendered doc comments in editor
IDE. Libraries
KT-36276IDE: references to declarations in JavaScript KLib dependency are unresolvedKT-37562IDE: references to JavaScript KLib dependency are unresolved, when project and library are compiled with "both" mode
IDE. Navigation
KT-18472UI lockup on find usagesKT-18619Find Usages of element used via import alias does not show actual usage locationKT-34088Navigate | Implementations action doesn't show implementations of Java methods in Kotlin files if method has parameters referring to generic typeKT-35006IDE: "Navigate to inline function call site" from stack trace for nested inline call navigates to outer inline callKT-36138628 second freeze when doing Find Usages on data class propertyKT-36218Show Kotlin file members in navigation barKT-37494AnnotatedElementsSearch unable to find annotated property accessor
IDE. Project View
KT-32886Project tool window: Show Visibility Icons does nothing for Kotlin classesKT-37632IDE error on project structure opening
IDE. Refactorings
Performance Improvements
KT-37801Renaming private property with common name is very slow
Fixes
KT-22733Refactor / Inline Function: fun with type parameter: KNPE at CodeInliner.processTypeParameterUsages()KT-27389MPP: Refactoring "Move Class" does not change the package declarationKT-29870Inline variable doesn't handle 'when' subject val correctlyKT-33045Cover Move Refactoring by statistics (FUS)KT-36071Refactoring: Move top declaration implementation refactoringKT-36072Empty files are removed on Refactor/Move action with turned off "Delete empty source files" optionKT-36114java.lang.NoClassDefFoundError exception on Refactor/Move of kotlin function if it is referenced in javaKT-36129java.lang.Throwable: Invalid file exception occurs on Refactor/Move of class from kotlin scriptKT-36382Move file refactoring breaks ktor application configKT-36504"Extract property" suggests potentially invalid name for new propertyKT-37637KotlinChangeSignatureUsageProcessor broke Change Signature in Python pluginKT-37797Useless "Value for new paramater" step in 'Update usages to reflect signature changes' for method with default parameter valueKT-37822Improve message "Inline all references and remove the kind"KT-38348UL methods return signature without generic type parametersKT-38527Move nested class to upper level fails silently: MissingResourceException
IDE. Script
KT-37765NCDFE KJvmCompiledModuleInMemory on running*.main.ktsscript
IDE. Tests Support
KT-36716Withkotlin.gradle.testing.enabled=true, gradle console output gets extra ijLog messagesKT-36910There are no Run/Debug actions in context menu for non-JVM platform-specific test resultsKT-37037[JS, Debug] Node.JS test debug doesn't stop on breakpoints
IDE. Wizards
New Features
KT-36150New Project Wizard: provide a way to connect with "dependsOn" relation the added project modulesKT-36179New Project Wizard: it's impossible to make a JVM target friendly to Java code in a multiplatform project
Fixes
KT-35583New Project wizard: don't suggest build systems which cannot be usedKT-35585New Project wizard: remember choices which have sense for many projectsKT-35691New Project wizard: artifact and group values are effectively ignoredKT-35693New Project wizard creates pom.xml / build.gradle referring to release Kotlin version onlyKT-36136New Project Wizard: generated projects are missing m2 Gradle repositoryKT-36137New Project Wizard: "multiplatform" shall be written as a single word, without the capital P in the middleKT-36155New Project Wizard: show warning "Multiplatform project cannot be generated" only for MPP projectsKT-36162New Project Wizard: make the error messages in modules editor actionableKT-36163New Project Wizard: remove trailing spaces in Android SDK Path automaticallyKT-36166New Project Wizard: addition of Android target into a multiplatform project doesn't add a necessary minimal Android configurationKT-36169New Project Wizard: Android-related projects failed to buildKT-36176New Project Wizard: module templates doesn't work for multiplatform projectsKT-36177New Project Wizard: it's impossible to add more than one target of JVM kind to a multiplatform projectKT-36180New Project Wizard: it's impossible to set target JVM version for a JVM moduleKT-36226New Project Wizard: add Mobile Android/iOS project templateKT-36267New Project Wizard: flatten JVM targets list for multiplatform projectsKT-36328New Project wizard fails for certain templates with AE: "Wrong line separators" at KotlinFormattingModelBuilder.createModel()KT-37599New Project Wizard: Open Kotlin Wizard via hyperlinkKT-37667New project wizard: implement new UI designKT-37674Kotlin version in build files includes the IDEA versionKT-38061New Project wizard 1.4: do not allow choosing build system if corresponding IJ plugin is disabledKT-38567New Project wizard 1.4+: Improve processing case when project with required path already existsKT-38579New Project wizard 1.4+: multiplatform mobile application: build fails on lint task: Configuration with name 'compileClasspath' not foundKT-38929New project wizard: update libraries in project template according to kotlin IDE plugin versionKT-38417Enable new project wizard by-defaultKT-38158java.lang.NullPointerException when try to create new project via standard wizard on Mac os
JS. Tools
KT-36484KotlinJS, MPP: Compilation throws "TypeError: b is not a function" only in production mode
JavaScript
KT-31126Invalid JS constructor call (primary ordinary -> secondary external)KT-35966Make @JsExport annotation usable in common codeKT-37128KJS: StackOverflowException when using reified recursive bound for type parameterKT-37163KJS: NullPointerException on using intersection type as a reified oneKT-37418SupportAssociatedObjectKeyandfindAssociatedObjectin JS IR BE
Libraries
New Features
KT-8658Add property delegates which call get/set on the given KProperty instance, e.g. a property referenceKT-12448Make@Suppressapplicable for type parametersKT-22932String.format should support null localeKT-23514assertFailsWith should link unexpected exception as causeKT-23737JS & MPP: Support exception cause and addSuppressedKT-25651Add shuffle() to Array, ByteArray, IntArray, etc to match MutableListKT-26494Create an interface with provideDelegate()KT-27729InheritReadWritePropertyfromReadOnlyPropertyKT-28290Add the onEach extension function to the ArrayKT-29182SIZE_BYTES/BITS for Float and DoubleKT-30372Add associateWith to ArrayKT-33906Add vararg overloads for maxOf/minOf functionsKT-34161Array.contentEquals/contentHashCode/contentToString should allow null array receiver and argumentKT-35851Add setOfNotNull functionKT-36866reduceIndexedOrNullKT-36955stdlib: Reverse range and sortDescending rangeKT-37161Add #onEachIndexed similar to #forEachIndexedKT-37603Throwable.stackTraceToString: string with detailed information about exceptionKT-37751Implement shuffled() method SequencesKT-37804Add 'fail' in kotlin-test that allows to specify causeKT-37839StringBuilder.appendLine in stdlib-commonKT-37910Support Media Source Extension (MSE) and Encrypted Media Extensions (EME) in Kotlin/JsKT-38044Common Throwable.printStackTrace
Performance Improvements
KT-37416readLine() is very slow
Fixes
KT-13887Double/Float companion values such as NaN should be constantsKT-14119String.toBoolean()should beString?.toBoolean()KT-16529Names of KProperty's type parameters are inconsistent with ReadOnlyProperty/ReadWritePropertyKT-36356Specify which element Iterable.distinctBy(selector) retainsKT-38060runningFold and runningReduce instead of scanReduceKT-38566Kotlin/JS IR: kx.serialization & ktor+JsonFeature: SerializationException: Can't locate argument-less serializer for class
Reflection
KT-29969Support optional vararg parameter inKCallable.callByKT-37707"IllegalStateException: superInterface.classLoader must not be null" on class, which implements "AutoCloaseable" interface, "isAccessible" property changing
Tools. CLI
KT-37090file does not exist:C:\Users\NK\DOWNLO~1\kotlin-compiler-1.3.61\kotlinc\bin\..\lib\kotlin-compiler.jar" from standalone compiler on Windows
Tools. Gradle
KT-35447Warnings should be piped to stderr when using allWarningsAsErrors = trueKT-35942User test Gradle source set code cannot reach out internal members from the production codeKT-36019Implement Gradle DSL for explicit API mode
Tools. Gradle. JS
New Features
KT-32017Kotlin/JS in MPP: support changing the generated JS file name in Gradle DSLKT-32721[Gradle, JS] CSS Support for browserKT-36843[Gradle, JS, IR] Configure JS Compiler Type through DSLKT-37207Allow to use npm dependency from a local directoryKT-38056[Gradle, JS] Group tasks by browser and node
Fixes
KT-32466kotlinNpmResolve fails in the case of composite buildKT-34468Consider custom versions while parsing yarn.lockKT-36489[Gradle, JS, IR]: Correct naming for both compilersKT-36784Kotlin. JS. MPP – Cannot find project :js when using Gradle composite buildsKT-36864KJS. Composite build require JS plugin in root projectKT-37240KJS. Nondeterministic execution order for webpack scripts (from folder 'webpack.config.d')KT-37582Kotlin/JS: KotlinWebpack non-nullable properties are shown as nullable in Gradle configurationKT-37587KJS. Karma ignore dynamically created webpack patchesKT-37635[Gradle, JS] Webpack devtool provide enum for only 2 variantsKT-37636[Gradle, JS] Extract package.json from klibKT-37762[Gradle, JS] Actualize Node and Yarn versions in 1.4KT-37988[Gradle, JS] Bump NPM versions on 1.4-M2KT-38051[Gradle, JS] browserDistribution doesn't provide outputsKT-38519JS Compiler per project without additional import
Tools. Gradle. Multiplatform
KT-36674allMetadataJartask fails if there is an empty intermediate source set in a multiplatform project with native targetsKT-38746In HMPP, compilation of a shared-native source set could be mistakenly disabledKT-39094Provide a way to pass custom JVM args to commonizer from Gradle
Tools. Gradle. Native
KT-25887Kotlin Native gradle build fail withendorsed is not supported. Endorsed standards and standalone APIson jdk > 8 & CLionKT-36721Deduce a fully qualified unique_name in klib manifest from something like group nameKT-37730Native part of multiplatform build fails with "unresolved reference" errors if there is a local and external module with the same nameKT-38174Kotlin/Native: Disable platform libraries generation at the user side by default
Tools. J2K
Fixes
KT-34965Convert function reference copied from function callKT-35593New J2K: method's names don't change between functions declared in Number.java and Number.ktKT-35897J2K converts private enum constructors to internal constructors and produces NON_PRIVATE_CONSTRUCTOR_IN_ENUM errorKT-36088J2K: StackOverflowError when trying to convert Java class with recursive type boundKT-36149J2K: PsiInvalidElementAccessException: Element class com.intellij.psi.impl.source.tree.CompositeElement of type DOT_QUALIFIED_EXPRESSIONKT-36152J2K: RuntimeException: Couldn't get containingKtFile for ktElementKT-36159J2K: ClassCastException if constructor contains a super() call and class extends from Kotlin classKT-36190J2K: Wrong property name generation when getter for non-boolean value starts with 'is'KT-36891j2k: Fail with java.lang.NoClassDefFoundError when converting arrayKT-37052new J2K: Java private function is converted toprivate opentop-level functionKT-37620new J2K: IndexOutOfBoundsException (DefaultArgumentsConversion.applyToElement) with overloaded function with vararg parameterKT-37919new J2K: Redundant line feeds when converting function
Tools. JPS
KT-37159A Typo (forgotten space) in build output in Circular dependencies warning description
Tools. Scripts
KT-30086ThreadDeath when running kotlin scripts using jsr223KT-37558Scripts: implicit receivers don't work correctly when using CompiledScriptJarsCacheKT-37823Consecutive invocations of main.kts throw a KotlinReflectionNotSupportedError
1.4-M1
Compiler
New Features
KT-4240Type inference possible improvements: analyze lambda with expected type from the outer callKT-7304Smart-casts and generic calls with multiple bounds on type parametersKT-7745Support named arguments in their own position even if the result appears as mixedKT-7770SAM for Kotlin classesKT-8834Support function references with default values as other function typesKT-10930Expected type isn't taken into account for delegated propertiesKT-11723Support coercion to Unit in callable reference resolutionKT-14416Support of @PolymorphicSignature in Kotlin compilerKT-16873Support COERSION_TO_UNIT for suspend lambdasKT-17643Inferring type of Pair based on known Map typeKT-19869Support function references to functions with vararg if expected type ends with repeated vararg element typeKT-21178Prohibit access of protected members inside public inline membersKT-21368Improve type inferenceKT-25866Iterable.forEach does not accept functions that return non-Unit valuesKT-26165Support VarHandle in JVM codegenKT-27582Allow contracts on final non-override membersKT-28298Allow references to generic (reified) type parameters in contractsKT-31230Refine rules for allowed Array-based class literals on different platforms: allowArray::classeverywhere, disallowArray<...>::classon non-JVMKT-31244Choose Java field during overload resolution with a pure Kotlin propertyKT-31734Empty parameter list required on Annotations of function typesKT-33990Type argument isn't checked during resolution partKT-33413Allow 'break' and 'continue' in 'when' statement to point to innermost surrounding loopKT-34743Support trailing comma in the compilerKT-34847Lift restrictions fromkotlin.Result
Fixes
KT-2869Incorrect resolve with 'unsafe call error' and genericsKT-3630Extension property (generic function type) does not workKT-3668Infer type parameters for extension 'get' in delegated propertyKT-3850Receiver check fails when type parameter has another parameter as a boundKT-3884Generic candidate with contradiction is preferred over matching global functionKT-4625Poor error highlighting when assigning not matched type to index operatorKT-5449Wrong resolve when functions differ only in the nullability of generic typeKT-5606"Type mismatch" in Java constructor call with SAM lambda andvarargparameterKT-6005Type inference problem in sam constructorsKT-6591Overloaded generic extension function call with null argument resolved incorrectlyKT-6812Type inference fails when passing a null instead of a generic typeKT-7298Bogus type inference error in generic method call translated from JavaKT-7301Type inference error in Kotlin code translated from JavaKT-7333Type inference fails with star-projections in code translated from JavaKT-7363Kotlin code with star-projections translated from Java does not typecheckKT-73783-dimension array type inference failKT-7410Call resolution error appears only after adding non-applicable overloadKT-7420Type inference sometimes infers less specific type than in JavaKT-7758Type of lambda can't be inferedKT-8218Wrong 'equals' for generic types with platform type and error typeKT-8265Non-typesafe program is compiled without errorsKT-8637Useless diagnostics for type parameters with unsafe nullabilityKT-8966Smart casts don't work with implicit receiver and extension on type parameter with boundsKT-10265Type inference problem when using sealed class and interfacesKT-10364Call completeCall on variable before invoke resolutionKT-10612java.util.Comparator.comparing type inferenceKT-10628Wrong type mismatch with star projection of inner class inside use-site projected typeKT-10662Smartcast with not-null assertionKT-10681Explicit type arguments not taken into account when determining applicable overloads of a generic functionKT-10755Not "least" common super-type is selected for nested 'if' result in presence of multiple inheritanceKT-10929Type inference based on receiver type doesn't work for delegated properties in some casesKT-10962Wrong resolution when argument has unstable DataFlowValueKT-11108RxJava failed platform type inferenceKT-11137Java synthetic property does not function for a type with projectionKT-11144UninferredParameterTypeConstructor exception during buildKT-11184Type inference failed for combination of safe-call, elvis, HashSet and emptySetKT-11218Type inference incorrectly infers nullable type for type parameterKT-11323Type inference failed in call with lambda returning emptyListKT-11331Unexpected "Type inference failed" in SAM-conversion to projected typeKT-11444Type inference failsKT-11664Disfunctional inference with nullable type parametersKT-11894Type substitution bug related platform typesKT-11897No error REIFIED_TYPE_FORBIDDEN_SUBSTITUTION on captured typeKT-11898Type inference error related to captured typesKT-12036Type inference failedKT-12038non-null checks and inferenceKT-12190Type inference for TreeMap type parameters from expected type doesn't work when passing comparator.KT-12684A problem with reified type-parameters and smart-castsKT-12833'it' does not work in typed containers of lambdasKT-13002"Error type encountered: UninferredParameterTypeConstructor" with elvis and whenKT-13028cast with star on on type with contravariant generic parameter makes the compiler crashKT-13339Type inference failed for synthetic Java property call on implicit smart cast receiverKT-13398"Type T is not a subtype of Any"KT-13683Type inference incorporation error when passed null into not-null parameterKT-13721Type inference fails when function arguments are involvedKT-13725Type inference fails to infer type with array as a generic argumentKT-13800Type inference fails when null passed as argument (related to common system)KT-13934Callable reference to companion object member via class name is not resolvedKT-13964Unknown descriptor on compiling invoke operator call with generic parameterKT-13965Invoke operator called on extension property of generic type has incorrect parameter typeKT-13992Incorrect TYPE_INFERENCE_UPPER_BOUND_VIOLATEDKT-14101Type inference failed on nullKT-14174Compiler can't infer type when it should be able toKT-14351Internal error with uninferred types for compiling complicated when expressionKT-14460Smartcast isn't considered as necessary in the last expression of lambdaKT-14463Missing MEMBER_PROJECTED_OUT error after smartcast with invokeKT-14499Type inference fails even if we specifyTexplicitlyKT-14725kotlin generics makes agera's compiled repositories unusableKT-14803Weird smart cast absence in lazy delegateKT-14972Type inference failed: wrong common supertype for types with several subtypesKT-14980Type inference for nullable type in if statementKT-15155False "No cast needed" warning for conversion to star-projected typeKT-15185Inference for coroutines not work in case where we have suspend function with new coroutine insideKT-15263Kotlin can't infer the type of a multiple bounded methodKT-15389Type inference for coroutines in 1.1-M04KT-15394Support coercion to Unit for last statement for suspend lambdaKT-15396Type inference for last statement in coroutineKT-15488Type inference not working on generic function returning generic type in lambda resultKT-15648Better use of overladed functions with nullablesKT-15922TYPE_INFERENCE_CONFLICTING_SUBSTITUTION for function referenceKT-15923Internal error: empty intersection for typesKT-16247Overload resolution ambiguity with intersection types and method referencesKT-16249Can't call generic method with overloaded method reference when non-generic overload existsKT-16421Remove @ParameterName annotation from diagnostic messagesKT-16480Wrong "Type mismatch" for variable as function callKT-16591Type inferencing doesn't consider common base class of T of multiple Foo function parametersKT-16678Overload resolution ambiguity on println()KT-16844Recursive dependency] (DeferredType) error on code generation.KT-16869Cannot infer type parameter S in fun <S, T : S?> f(x: S, g: (S) -> T): TKT-17018"Rewrite at slice LEXICAL_SCOPE" for 'when' with function reference inside lambdaKT-17048Compilation exception: error type encountered in some combination of when/elvis with multiple inheritanceKT-17340Type inference failed on overloaded method reference with expected KFunctionKT-17386Smart cast on LHS of callable reference doesn't work if expected type is nullableKT-17487ReenteringLazyValueComputationException for interface with a subclass that has a property of interface typeKT-17552Call completed not running for elvis as last expression in lambdaKT-17799Smart cast doesn't work for callable reference (colon-colon operator)KT-17968More type inference problems with Streams.collectKT-17995No type mismatch with emptywhenexpression inside lambdaKT-18002Issue with star projection for generic type with recursive upper boundKT-18014Cannot use Comparator.comparingKT-18080Type inference failed for generic method reference argumentKT-18192Type inference fails for some nested generic type structuresKT-18207Unexpected attempt to smart cast causes compile errorKT-18379Type inference failed although explicit specifiedKT-18401Type mismatch when inferring out type parameter (related to callable reference)KT-18481ReenteringLazyValueComputationException for recursive const declaration without explicit typeKT-18541Prohibit "tailrec" modifier on open functionsKT-18790function take the parameterized type with multi-bounds can't workingKT-19139Kotlin build error in Android Studio on << intent.putExtra(“string”, it.getString(“string”) >> inside "else if" blockKT-19751Nested conditionals break type inference when multiple types are possible for the expressionKT-19880An overload with nullable parameter is not resolved due to a smart cast attempt after assignmentKT-19884type inference with type parameterKT-20226Return type 'Any' inferred for lambda with early return with integer literal in one of possible return valuesKT-20656Callable reference breaks smart cast for next statementKT-20734Invalid "Smart-cast impossible" when there are applicable extension and semi-applicable memberKT-20817Coroutine builder type inference does not take smart casts into account (confusing)KT-21060ReenteringLazyValueComputationException during type inferenceKT-21396if-else with a branch of type Nothing fails to infer receiver typeKT-21463Compiler doesn't take into accout a type parameter upper bound if a corresponding type argument is in projectionKT-21607Type inference fails with intermediate functionKT-21694Type inference failed for ObservableListKT-22012Kotlin type deduction does not handle Java's <? super T> constructsKT-22022ReenteringLazyValueComputationException when having cyclic references to static variablesKT-22032Multiple type parameter bounds & smart castsKT-22043Report an error when comparing enum (==/!=/when) to any other incompatible type since 1.4KT-22070Type inference issue with platform types and SAM conversionKT-22474Type safety problem because of incorrect subtyping for intersection typesKT-22636Anonymous function can be passed as a suspending one, failing at runtimeKT-22723Inconsistent behavior of floating-point number comparisonsKT-22775Type inference failed when yielding smartcasted not null value fromsequenceKT-22885Broken type safety with function variables caused by wrong subtyping check that includes intersection typesKT-23141Cannot resolve between two functions when only one of them accepts nullable parameterKT-23156IDEA asking me to remove uninferable explicit type signatureKT-23391Bogus type inference error with smart cast, synthetic property and star projectionKT-23475Implicit invoke on property with generic functional return type resolves incorrectlyKT-23482Incorrect frontend behaviour for not inferred type for generic property with function type as resultKT-23677Incorrect error diagnostic for return types that coerced to 'Unit' inside lambdaKT-23748Erroneous type mismatch when call with @Exact annotation depends on non-fixed type variableKT-23755Nested lambdas with nested types can cause false USELESS_CAST warningKT-23791Explicit type argument leads to an error, while candidate is picked correctly without itKT-23992Target prefixes for annotations on supertype list elements are not checkedKT-24143Type-checking error for generic functionsKT-24217Type inference for generic functions reference problem.KT-24237Uninferred type parameter on variable with multiple smart casts in elvisKT-24317Unnecessary non-null assertion inspection shownKT-24341Compiler exception instead of error about "upper bound violated"KT-24355Overload resolution ambiguity due to unstable smartcastKT-24458Cannot solve “Conditional branch result is implicitly cast to Any” with ListKT-24493Incorrect error about Array unsupportedKT-24886Type inference failure in an if-else_if-elseKT-24918type inference not good enough for return type with involved if statementKT-24920Type inference failure when using RxJava composeKT-24993Inference for buildSequence/yield doesn't work for labeled lambdasKT-25063List of Arrays - wrong type inferred if nullable involvedKT-25268Incorrect type inference (least upper bound of the types) in exhaustive when for NumberKT-25294Reactors Mono map function with KotlinKT-25306Make f(a = arrayOf(x)) equivalent to f(a = *arrayOf(x))KT-25342Type inference: lazy with generic fails to inferKT-25434Too eager smartcast cause type mismatchKT-25585"Rewrite at slice LEXICAL_SCOPE" forifexpression with callable reference inside lambdaKT-25656Short-hand array literal notation type inference fails in nested annotationsKT-25675return whenleads to compiler errorKT-25721Type inference does not work in nested try catchKT-25827NullPointerException in setResultingSubstitutor with a generic base classKT-25841Collection type is inferred as Collection if the values returned frommapfunction have an intersection common typeKT-25942Pass a parameter to generic function with several upper boundsKT-26157Failed type inference forDelegates.observableparameter with a nullable propertyKT-26264No smart cast on implicit receiver extension function callKT-26638Check for repeatablilty of annotations doesn't take into account annotations with use-site targetKT-26698OnlyInputTypes doesn't work in presence of upper bound constraintKT-26704Correct variable-as-function call fails to compile in case of function type dependent on variable typeKT-27440Infer lambda parameter type before lambda analysis in common systemKT-27464False negative type mismatch when a non-null assertion is used on a top-levelvarmutable variableKT-27606Incorrect type inference when common supertype of enum classes is involvedKT-27722mapNotNull on List<Result> fails if T is not subtype of AnyKT-27781ReenteringLazyValueComputationException for anonymous object property referring to itself in overridden methodKT-27799Prohibit references to reified type parameters in annotation arguments in local classes / anonymous objectsKT-28083Nothing-call smart cast of a variable that a lambda returns does not affect the lambda's return typeKT-28111Type inference fails for return type of lambda with constrained genericKT-28242Not-null assertion operator doesn't affect smartcast typesKT-28264Resulting type of a safe call should produce type that is intersected with AnyKT-28305"Error type encountered" with elvis operator, type argument and explicitAnytypeKT-28319"resultingDescriptor shouldn't be null" for a star projection base classKT-28334Smartcast doesn't work if original type is type with star projection and there was already another smartcastKT-28370Var not-null smartcasts are wrong if reassignments are used inside catch section (in try-catch) or try section (in try-finally)KT-28424Type annotations are not analyzed properly in several casesKT-28584Complex condition fails smart castKT-28614"Error type encountered: UninferredParameterTypeConstructor"KT-28726Recursion in type inference causes ReenteringLazyValueComputationExceptionKT-28837SAM conversion doesn't work for arguments of members imported from objectKT-28873Function reference resolution ambiguity is not reportedKT-28999Prohibit type parameters for anonymous objectsKT-28951"Error type encountered" with elvis operator, type argument and explicitAnytypeKT-29014Unclear diagnostic for conditional branches coercion with multiple root interfaces and no common superclassKT-29079ByteArray.let(::String)can not compile as the callable reference is resolved before the outer callKT-29258Incorrect return type is used for analysis of an extension lambda (if its type is used as a generic parameter)KT-29330NI: Multiple duplicate error messages in IDE popup with lambda argumentKT-29402Missed INLINE_FROM_HIGHER_PLATFORM diagnostic if inline function called from Derived classKT-29515type inference fails to infer T of KFunction0 for most typesKT-29712Incorrect compiler warning, "No cast needed" for recursive type boundKT-29876ReenteringLazyValueComputationException with usage of property inside lambda during assignment to that propertyKT-29911Not-null smart cast fails inside inline lambda after safe call on generic variable with nullable upper boundKT-29943Callable reference resolution ambiguity between a property and a function is reported incorrectly in function calls expecting KProperty1KT-29949Cannot chose among overload as soon as nullable type is involvedKT-30151Any instead of Number is inferred as common super type of Int and DoubleKT-30176Compiler can't infer correct type argument which blocks overload resolutionKT-30240Can't infer intersection type for a type variable with several boundsKT-30278Retain star projections in typeOfKT-30394Different behaviour in type inferences (bug in the old inference) when cast of variable of nullable type parameter to not-null is usedKT-30496Wrong infix generic extension function is chosen fornullreceiverKT-30550Suspend modifier on a functional type changes resolution of return typeKT-30892IllegalStateException(UninferredParameterTypeConstructor) with return references to local function from if-else expressionKT-30947No smart cast on accessing generic class member with upper-bounded type argumentKT-31102Type mismatch in mixing lambda and callable referenceKT-31151"IllegalStateException: Error type encountered" with elvis, when and inheritanceKT-31219Type mismatch for delegated property depending on anonymous objectKT-31290overload resolution ambiguity with Iterable.mapTo()KT-31352JvmName can't eliminate platform declaration clash of annotated propertiesKT-31532Type inference for complex last expression in lambdaKT-31540Change initialization order of default values for tail recursive optimized functionsKT-31594No SETTER_PROJECTED_OUT diagnostic on synthetic properties from JavaKT-31630TYPE_INFERENCE_PARAMETER_CONSTRAINT_ERROR for generic function with callable reference argumentKT-31654False unnecessary non-null assertion (!!) warning inside yield callKT-31679NI: Unresolved reference with delegated property and anonymous objectKT-31739Overload resolution ambiguity in generic function call with lambda arguments that take different parameter typesKT-31923Outer finally block inserted before return instruction is not excluded from catch interval of inner try (without finally) blockKT-31968New inference is using a more common system to infer types from nested elvis call than OIKT-31978NI: changed precedence of elvis operator relative to equality operatorKT-32026Infer return type of @PolymorphicSignature method to void if no expected type is givenKT-32087"Remove explicit type arguments" inspection when function creates a lambda that calls a function with type argumentKT-32097NI: NON_APPLICABLE_CALL_FOR_BUILDER_INFERENCE when using awaitClose in channelFlow builderKT-32098Kotlin 1.3.40 type inference mismatch between the IDE and the compilerKT-32151Return arguments of lambda are resolved in common system while in OI aren'tKT-32165Cannot use 'Nothing' as reified type parameter,KT-32196Inconsistency between compiler and inspection with mapNotNullKT-32203NON_APPLICABLE_CALL_FOR_BUILDER_INFERENCE warning false-positiveKT-32249New inference breaks generic property delegate resolutionKT-32250New Type Inference fails for nullable fieldKT-32262Type inference failed in presence of @JvmSuppressWildcardsKT-32267NI: "Overload resolution ambiguity. All these functions match." with KFunctionKT-32284False positive "Redundant lambda arrow" with extension function returning generic with lambda type argumentKT-32290New Inference: old inference fails on nullable lambda from if-expressionKT-32306False positiveRemove explicit type argumentswhen using generic return argument from lambda for delegated propertyKT-32358NI: Smart cast doesn't work with inline function after elvis operatorKT-32383NI: listOf(…) infers to invalid type if different enums implementing the same interface are involvedKT-32397OI can't infer types when there are different lower and upper bounds in common systemKT-32399OI can't choose candidate with different lower and upper boundsKT-32425No coercion to Unit by a return type of callable expression argumentKT-32431Nothing inferred for upper bound in parametric classKT-32449IDE fails to report error: Expected type mismatchKT-32462NI: "AssertionError: No resolved call" with callable referenceKT-32497Compiler Type inference fails when inferring type parameters ("Generics") - IDE inference worksKT-32507IntelliJ Kotlin plugin not recognizing smart cast to non-nullable typeKT-32501type inference should infer nullable type if non-nullable doesn't workKT-32527Cast required for Sequence.map when mapping between disjoint typesKT-32548OVERLOAD_RESOLUTION_AMBIGUITY with platform generic typesKT-32595NI: Overload resolution ambiguity for member function with type parameter with upper bounds and lambda parameterKT-32598Kotlin 1.3.41 type inference problemKT-32654Non-applicable call for builder inference with coroutinesKT-32655Kotlin compiler and IDEA plugin disagree on typeKT-32686New type inference algorithm infers wrong type when return type ofwhenexpression has a type parameter, and it's not specified in all casesKT-32788No smartcast for an implicit "this" in old inferenceKT-32792Bug in new type inference algorithm for Android StudioKT-32800Problem with inlined getValue in Delegates, IDEA does not detect problem, but code doesn't compileKT-32802Odd behaviour with smart-casting in exception blockKT-32850Invalid suggestion in Kotlin codeKT-32866tests in Atrium do not compile with new type inferenceKT-33012Proper capturing of star projections with recursive typesKT-33102Fake overrides aren't created for propertiesKT-33152Type inference fails when lambda with generic argument type is presentKT-33166NI: TYPE_MISMATCH for specific case withwhenexpression and one branch throwing exceptionKT-33171TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER with object convention invoke direct call on property delegationKT-33240Generated overloads for @JvmOverloads on open methods should be finalKT-33545NI: Error type encountered: NonFixed: TypeVariable(T) (StubType)KT-33988Low priority candidates doesn't match when others failKT-34128Internal compiler error ReenteringLazyValueComputationException in the absence of right parenthesisKT-34140Function with contract doesn't smartcast return value in lambdaKT-34314There is no an error diagnostic about type inference failed (impossible to infer type parameters) on callable referencesKT-34335A lambda argument without a type specifier is inferred to Nothing, if it's passed to a function, declaration of which contains vararg (e.g. Any)KT-34501if-expression infersAnywhenNumber?is expectedKT-34708Couldn't transform method node: emit$$forInline (try-catch in a Flow.map)KT-34729NI: type mismatch error is missed for generic higher-order functionsKT-34830Type inference fails when using an extension method with "identical JVM signature" as method referenceKT-34857"Illegal resolved call to variable with invoke" with operator resolved to extension propertyinvokeKT-34891CompilationException: Failed to generate expression: KtLambdaExpression (Error type encountered)KT-34925MPP, IDE: False positive warning NO_REFLECTION_IN_CLASS_PATH in common codeKT-35020"Type checking has run into a recursive problem" for overloaded generic function implemented using expression body syntaxKT-35064NI: The new inference has overload resolution ambiguity on passing a callable reference for extension functions (> 1 candidates)KT-35207Incorrect generic signature in annotations when KClass is used as a generic parameterKT-35210NI: OnlyInputTypes check fails for types with captured onesKT-35213NI: overload resolution ambiguity for callable reference with defined LHSKT-35226Forbid spread operator in signature-polymorphic callsKT-35306Non-applicable call for builder inferencefor nested builder functions which return generic types that are wrapped.KT-35337IllegalStateException: Failed to generate expression: KtLambdaExpressionKT-35398NI, IDE: Duplicate warning message JAVA_CLASS_ON_COMPANION in argument positionKT-35469Change behavior of signature-polymorphic calls to methods with a single vararg parameter, to avoid wrapping the argument into another arrayKT-35487Type safety problem because of lack of captured conversion against nullable type argumentKT-35494NI: Multiple duplicate error diagnostics (in IDE popup) with NULL_FOR_NONNULL_TYPEKT-35514Type inference failure withouttype and if-else inside lambdaKT-35517TYPE_MISMATCH error duplication for not Boolean condition in if-expressionKT-35535Illegal callable reference receiver allowed in new inferenceKT-35578Diagnostics are sometimes duplicatedKT-35602NI doesn't approximate star projections properly for self typesKT-35658NI: Common super type between Inv<A!>, Inv<A?> and Inv is Inv<out A?>, not Inv<A!> (as old inference)KT-35668NI: the lack of fixing to Nothing problem (one of the bugs: the lack of smartcast through cast of Nothing? to Nothing after elvis)KT-35679Type safety problem because several equal type variables are instantiated with a different typesKT-35684NI: "IllegalStateException: Expected some types" from builder-inference about intersecting empty types on trivial codeKT-35814Inference fails to infer common upper type for java typesKT-35834Do not declare checked exceptions in JVM bytecode when using delegation to Kotlin interfacesKT-35920NI allows callable references prohibited in old inferenceKT-35943NI: IllegalStateException: No error about uninferred type parameterKT-35945Using Polymorphism and Type Inference the compiler fails having a Type with Type with TypeKT-35992Wrong overload resolution with explicit type arguments if KFunction and type parameter once nullable and once non-nullableKT-36001"IllegalStateException: Error type encountered" with elvis in generic functionKT-36002KotlinFrontEndException: Exception while analyzing expressionKT-36065Type inference failed for generic function invoked on implicitly nullable variable created from JavaKT-36066Type inference problem in compilerKT-36101False positive IMPLICIT_NOTHING_AS_TYPE_PARAMETER with suspend lambdasKT-36146Drop support of language version 1.0/1.1, deprecate language version 1.2KT-36192Redundant smart cast for overloaded functionsKT-36202NI: false positive "NON_APPLICABLE_CALL_FOR_BUILDER_INFERENCE" with elvis operator in lambdaKT-36220NI: false positive NON_APPLICABLE_CALL_FOR_BUILDER_INFERENCE if one use cannot resolveKT-36221NI: UnsupportedOperationException: "no descriptor for type constructor" with vararg parameter whensetorgetmethods of element passed as function referenceKT-36264NI: unstable smart cast changes results of call resolutionKT-36279OI: Type inference fails when omitting explicit name of the lambda parameterKT-36298Failure to resolve return type of extension property on function literalKT-36317TYPE_MISMATCH diagnostic error duplication for not Boolean condition in do-while-loop-statementKT-36338Forbid IR backend usage with unsupported language / API versionKT-36371Incorrect null check with NI and builder inference in generic contextKT-36644Stop discrimination of prerelease compiler version in Kotlin pluginKT-36745NI: "Expected some types" with unresolved class referenceKT-36776Treat special constructions (if, when, try) as a usual calls when there is expected typeKT-36818NI: the lack of smartcast from Nothing returning "when" branchKT-37123Cycling lambda signature errors in Observable.combineLatestKT-37146Type inference can't resolve plus operatorKT-37189Wrong type inferred with class with two types as argumentKT-37295NI: Passing function with wrong returning type by reference is not shown as errorKT-37345Wrong non-null type assertion when using Sequence and yieldKT-37429Type inference failed: Not enough information to infer parameter with java streamsKT-37480"None of the following candidates can be called" when compiling but no error in IDEA
IDE
KT-33573IDE runs platform-specific checkers on common code even if the project doesn't target the corresponding platformKT-35823IDE settings: deprecated values of language / API version look like regular onesKT-35871NPE in LightMethodBuilderKT-36034Kotlin 1.3.70 creates filekotlinCodeInsightSettings.xmlwith user-level settings under .ideaKT-36084"Join lines" should remove trailing commaKT-36460IDE highlighting: Undo on inspection breaks analysis inside top-level property initializerKT-36712Use new annotation highlighting APIKT-36917Caret has incorrect position after pressing enter on line with named argument
IDE. Code Style, Formatting
KT-36387Formatter: "Chained Function Calls" formats property chainsKT-36393Incorrect trailing comma insertion for boolean operator expressionKT-36466Formatter: "Chained Function Calls" with "Wrap first call" wrap single method call
IDE. Completion
KT-16531Error type displayed in completion for the result of buildSequenceKT-32178Autocompletion of 'suspend' should not add the 'fun' keyword when writing a function typeKT-34582Remove kotlin.coroutines.experimental from autocompletionKT-35258Completion problems with enabledMixedNamedArgumentsInTheirOwnPositionfeature
IDE. Debugger
KT-12016Step over inside inline function lambda argument steps into inline function bodyKT-14296Can't step over inlined functions of iteratorKT-14869Debugger: always steps into inlined lambda after returning from functionKT-15652Step over inline function call stops at Thread.dispatchUncaughtException() in case of exceptionsKT-34905Debugger: "Step over" steps into inline function body if lambda call splitted on several linesKT-35354ClassCastException in evaluate window
IDE. Gradle. Script
KT-36703.gradle.kts: Change text for out of project scripts
IDE. Hints
KT-37537IDE is missing or swallowing keystrokes when hint popups are displayed
IDE. Hints. Parameter Info
KT-14523Weird parameter info tooltip for map.getValue type arguments
IDE. Inspections and Intentions
New Features
KT-33384Intention to switch between single-line/multi-line lambdaKT-34690Support intentionConvert lambda to referencefor qualified referencesKT-35639False negative inspection "redundant internal modifier" inside private classKT-36256Implement migration for WarningOnMainUnusedParameterKT-36257Implement migration for ProhibitRepeatedUseSiteTargetAnnotationsKT-36258Implement migration for ProhibitUseSiteTargetAnnotationsOnSuperTypesKT-36260Implement migration for ProhibitJvmOverloadsOnConstructorsOfAnnotationClassesKT-36261Implement migration for ProhibitTypeParametersForLocalVariablesKT-36262Implement migration for RestrictReturnStatementTarget
Fixes
KT-14001"Convert lambda to reference" results in failed type inferenceKT-14781Import of aliased type is inserted when deprecation replacement contains typealiasKT-16907"Convert to lambda reference" intention is erroneously shown for suspending lambda parameters, producing bad codeKT-24869False positive inspection "Redundant 'suspend' modifier"KT-24987Implicit (unsafe) cast from dynamic to DONT_CAREKT-27511"Remove explicit type arguments" suggestion creates incorrect codeKT-28415False positive inspection "Remove explicit type arguments" with a callable referenceKT-30831False positiveRemove explicit type argumentswith generic type constructor with init blockKT-31050False positive "Boolean literal argument without parameter name" inspection using expect classKT-31559Type inference failed: Not enough information to infer parameter KKT-32093NI: IDE suggests to use property access syntax instead of getter methodKT-33098False positive "Remove explicit type arguments" with "Enable NI for IDE" and Java generic class constructor invocation with nullable argumentKT-33685ReplaceWith does not add type parameter for function taking generic lambda with receiverKT-34511kotlin.KotlinNullPointerException after using intention Replace Java Map.forEach with Kotlin's forEach for Map with Pairs as keysKT-34686False positive "Constructor parameter is never used as a property" if property is used as a referenceKT-35451Type inference fails after applying false positive inspection "Remove explicit type arguments "KT-35475Applying intention "Redundant curly braces in string template" for label references change semanticKT-35528IntentionReplace 'when' with 'if'produces wrong code if expression subject is a variable declarationKT-35588Applying "Lift assignment out of 'if'" for if statement that has lambda plus assignment and 'return' leads to type mismatchKT-35604Too long quickfix message for "modifier 'open' is not applicable to 'companion object'"KT-35648False negative intention "Remove argument name" on named positional argumentsKT-36160False positive "Constructor has non-null self reference parameter" with vararg parameter of classKT-36171intention "Replace 'get' call with indexing operator" works incorrectly with spread operatorKT-36255Implement migration tool for 1.4KT-36357"Lift assignment out of 'if'" breaks code for oneliner functionKT-36360OI: False positive "remove explicit type arguments" for SequenceScope leads to compiler failure with "Type inference failed"KT-36369"To raw string literal" intention is not available if string content starts with newline symbol \n
IDE. Multiplatform
KT-36978Infinite "org.jetbrains.kotlin.idea.caches.resolve.KotlinIdeaResolutionException: Kotlin resolution encountered a problem while analyzing KtFile" exceptions in hierarchical multiplatform projects
IDE. Navigation
KT-30628Navigation from Java sources to calls on Kotlin function annotated with @JvmOverloads that have optional arguments omitted leads to decompiled code
IDE. Refactorings
New Features
KT-26999Inspection for unused main parameter in Kotlin 1.3KT-33339Refactor / Move is disabled for Kotlin class selected together with Kotlin file
Fixes
KT-22131"Extract method" refactoring treats smart casted variables as non-localKT-24615"Extract property" generates useless extension propertyKT-26047Refactor -> Rename: Overridden method renaming in generic class doesn't rename base methodKT-26248"Refactor -> Inline variable" breaks callable referencesKT-31401Refactor / Inlining function reference in Java method with Runnable argument produces compile errorKT-33709Inline variable: NONE_APPLICABLE with overloaded generic Java method with SAM conversionKT-34190Inline Function: False positive error "not at the end of the body" with anonymous objectKT-35235Unable to move multiple class files to a different packageKT-35463ClassCastException during moving .kt file with one single class to the other folder in Android StudioKT-36312Refactor Move refactoring to get it ready for MPP-related fixes
IDE. Run Configurations
KT-34503"Nothing here" is shown as a drop-down list for "Run test" gutter icon for a multiplatform test with expect/actual parts in platform-agnostic codeKT-36093Running Gradle java tests are broken for Gradle older than 4.0 (Could not set unknown property 'testClassesDirs' for task ':nonJvmTestIdeSupport')
JavaScript
KT-23284Reified type arguments aren't substituted when invoking inline val value
Libraries
KT-26654Remove deprecated 'mod' operatorsKT-27856Add contracts to Timing.kt lambdasKT-28356Fail fast in Regex.findAll on an invalid startIndexKT-29748Declare kotlin.reflect.KType in kotlin-stdlib-commonKT-30360Deprecate conversions of floating point types to integral types lesser than IntKT-32855KTypeParameter is available in common code, but not available in NativeKT-35216<T : AutoCloseable?, R> T.use and <T : Closeable?, R> T.use should have contractsKT-36082JS Regex.find does not throw IndexOutOfBoundsException on invalid start indexKT-36083Extract kotlin.coroutines.experimental.* packages to a separate compatibility artifact
Reflection
KT-30071Implement KTypeProjection.toStringKT-35991Embed Proguard/R8 rules in kotlin-reflect artifact jar
Tools. CLI
KT-28475java.sql module not available in kotlinc scripts on Java 9+ due to use of Bootstrap Classloader
Tools. Gradle. JS
KT-34989NodeJs is not re-downloaded if the node binary gets accidentally deletedKT-35465Gradle, JS: Gradle tooling for IR compilerKT-36472Kotlin/JS Gradle plugin iterates over all Gradle tasks, triggering their lazy configurationKT-36488Gradle, JS, IR: Publishing from JS plugin
Tools. Gradle. Multiplatform
KT-37264In intermediate common source sets, internals are not visible from their dependsOn source sets during Gradle build
Tools. Gradle. Native
KT-36804In a project with Kotlin/Native targets and kotlinx.serialization, IDE import fails: Could not create task '...'. / Cannot change dependencies of configuration after it has been resolved.
Tools. J2K
KT-20120J2K: Java 9forRemovalandsincemethods ofDeprecatedare not processed
Tools. Scripts
KT-35414Switch for-Xexpressionto-expression/-ecli argument syntax for JVM cli compiler in 1.4