Releases: JetBrains/kotlin
Releases · JetBrains/kotlin
Kotlin 1.3.40 EAP 2
CHANGELOG
1.3.40
Android
Fixes
KT-12402Android DataBinding work correctly but the IDE show it as errorKT-31432Remove obsolete code introduced in KT-12402
Compiler
New Features
Performance Improvements
KT-17755Optimize trimIndent and trimMargin on constant stringsKT-30603Compiler performance issue: VariableLivenessKt.useVar performance
Fixes
KT-19227Load built-ins from dependencies by default in the compiler, support erroneous "fallback" built-insKT-23426Actual typealias to Java enum does not match expected enum because of modalityKT-23854Inference for common type of two captured typesKT-25105False-positive warning "Remove final upper bound" on generic overrideKT-25302New inference: "Type mismatch" between star projection andAny?type argument in specific caseKT-25433Wrong order of fixing type variables for callable referencesKT-26386Front-end recursion problem while analyzing contract function with call expression of self in impliesKT-26412Wrong LVT generated if decomposed parameter of suspend lambda is not the first parameter.KT-27097JvmMultifileClass + JvmName causes NoSuchMethodError on sealed class hierarchy for top-level membersKT-28534Local variable entries are missing in LVT for suspend lambda parametersKT-28535Renameresultto$resultin coroutines' LVTKT-29184Implement inference for coroutines according to the @BuilderInference contract in NIKT-29772Contracts don't work ifcontractfunction is fully qualified (FQN)KT-29790Incorrect version requirement in metadata of anonymous class for suspend lambdaKT-29948NI: incorrect DSLMarker behaviour with generic star projectionKT-30021+NewInference on Kotlin Native :: java.lang.StackOverflowErrorKT-30242Statements are not coerced to Unit in last expressions of lambdaKT-30243Include FIR modules into compilerKT-30250Rewrite at slice exception for callable reference argument inside delegated expressionKT-30292Reference to function is unresolved when LHS is a star-projected typeKT-30293Wrong intersection type for common supertype from String and integer typeKT-30370Call is completed too early when there is "Nothing" constraintKT-30405Support expected type from cast in new inferenceKT-30406Fix testIfOrWhenSpecialCall test for new inferenceKT-30590Report diagnostic about not enough information for inference in NIKT-30620Exception from the compiler when coroutine-inference is involved even with the explicitly specified typesKT-30656Exception is occurred when functions with implicit return-stub types are involved in builder-inferenceKT-30658Exception from the compiler when getting callable reference to a suspend functionKT-30661Disable SAM conversions to Kotlin functions in new-inference by defaultKT-30676Overload resolution ambiguity when there is a callable reference argument and candidates with different functional return typesKT-30694No debug metadata is generated for suspend lambdas which capture crossinlineKT-30724False positive error about missing equals when one of the operands is incorrectly inferred to NothingKT-30734No smartcast inside lambda literal in then/else "if" branchKT-30737Try analysing callable reference preemptivelyKT-30780Compiler crashes on 'private inline' function accessing private constant in 'inline class' (regression)KT-30808NI: False negative SPREAD_OF_NULLABLE with USELESS_ELVIS_RIGHT_IS_NULLKT-30816BasicJvmScriptEvaluator passes constructor parameters in incorrect orderKT-30826There isn't report about unsafe call in the new inference (by invalidating smartcast), NPEKT-30843Duplicate JVM class name for expect/actual classes in JvmMultifileClass-annotated fileKT-30853Compiler crashes with NewInference and Kotlinx.Coroutines FlowKT-30927Data flow info isn't used for 'this' which is returned from lambda using labeled returnKT-31081Implement ArgumentMatch abstraction in new inferenceKT-31113Fix failing tests from SlicerTestGeneratedKT-31199Unresolved callable references with typealiasKT-31339Inliner does not remove redundant continuation classes, leading to CNFE in JMH bytecode processingKT-31346Fix diagnostic DSL_SCOPE_VIOLATION for new inferenceKT-31356False-positive error about violating dsl scope for new-inferenceKT-31360NI: inconsistently prohibits member usage without explicit receiver specification with star projection and DSL markerKT-18563Do not generate inline reified functions as private in bytecodeKT-20849Inference results in Nothing type argument in case of passing 'out T' to 'in T1'KT-25290New inference: KNPE at ResolutionPartsKt.getExpectedTypeWithSAMConversion() on out projection of Java classKT-26418Back-end (JVM) Internal error when compiling decorated suspend inline functionsKT-26925Decorated suspend inline function continuation resumes in wrong spotKT-28999Prohibit type parameters for anonymous objectsKT-29307New inference: false negative CONSTANT_EXPECTED_TYPE_MISMATCH with a MapKT-29475IllegalArgumentException at getAbstractTypeFromDescriptor with deeply nested expression inside function named with a right parenthesisKT-29996Properly report errors on attempt to inline bytecode from class files compiled to 1.8 to one compiling to 1.6KT-30289Don't generate annotations on synthetic methods for methods with default values for parametersKT-30410[NI] Front-end recursion problem while analyzing contract function with call expression of self in impliesKT-30411Fold recursive types to star-projected ones when inferring type variablesKT-30706Passing noinline lambda as (cross)inline parameter result in wrong state-machineKT-30707Java interop of coroutines inside inline functions is brokenKT-30983ClassCastException: DeserializedTypeAliasDescriptor cannot be cast to PackageViewDescriptor on star-import of expect enum class actualized with typealiasKT-31242"Can't find enclosing method" proguard compilation exception with inline and crossinlineKT-31347"IndexOutOfBoundsExcept...
Kotlin 1.3.40 EAP 1
CHANGELOG
1.3.40
Compiler
New Features
KT-29915ImplementtypeOfon JVM
Performance Improvements
KT-17755Optimize trimIndent and trimMargin on constant stringsKT-30603Compiler performance issue: VariableLivenessKt.useVar performance
Fixes
KT-19227Load built-ins from dependencies by default in the compiler, support erroneous "fallback" built-insKT-23426Actual typealias to Java enum does not match expected enum because of modalityKT-23854Inference for common type of two captured typesKT-25105False-positive warning "Remove final upper bound" on generic overrideKT-25302New inference: "Type mismatch" between star projection andAny?type argument in specific caseKT-25433Wrong order of fixing type variables for callable referencesKT-26386Front-end recursion problem while analyzing contract function with call expression of self in impliesKT-26412Wrong LVT generated if decomposed parameter of suspend lambda is not the first parameter.KT-27097JvmMultifileClass + JvmName causes NoSuchMethodError on sealed class hierarchy for top-level membersKT-28534Local variable entries are missing in LVT for suspend lambda parametersKT-28535Renameresultto$resultin coroutines' LVTKT-29184Implement inference for coroutines according to the @BuilderInference contract in NIKT-29772Contracts don't work ifcontractfunction is fully qualified (FQN)KT-29790Incorrect version requirement in metadata of anonymous class for suspend lambdaKT-29948NI: incorrect DSLMarker behaviour with generic star projectionKT-30021+NewInference on Kotlin Native :: java.lang.StackOverflowErrorKT-30242Statements are not coerced to Unit in last expressions of lambdaKT-30243Include FIR modules into compilerKT-30250Rewrite at slice exception for callable reference argument inside delegated expressionKT-30292Reference to function is unresolved when LHS is a star-projected typeKT-30293Wrong intersection type for common supertype from String and integer typeKT-30370Call is completed too early when there is "Nothing" constraintKT-30405Support expected type from cast in new inferenceKT-30406Fix testIfOrWhenSpecialCall test for new inferenceKT-30590Report diagnostic about not enough information for inference in NIKT-30620Exception from the compiler when coroutine-inference is involved even with the explicitly specified typesKT-30656Exception is occurred when functions with implicit return-stub types are involved in builder-inferenceKT-30658Exception from the compiler when getting callable reference to a suspend functionKT-30661Disable SAM conversions to Kotlin functions in new-inference by defaultKT-30676Overload resolution ambiguity when there is a callable reference argument and candidates with different functional return typesKT-30694No debug metadata is generated for suspend lambdas which capture crossinlineKT-30724False positive error about missing equals when one of the operands is incorrectly inferred to NothingKT-30734No smartcast inside lambda literal in then/else "if" branchKT-30737Try analysing callable reference preemptivelyKT-30780Compiler crashes on 'private inline' function accessing private constant in 'inline class' (regression)KT-30808NI: False negative SPREAD_OF_NULLABLE with USELESS_ELVIS_RIGHT_IS_NULLKT-30816BasicJvmScriptEvaluator passes constructor parameters in incorrect orderKT-30826There isn't report about unsafe call in the new inference (by invalidating smartcast), NPEKT-30843Duplicate JVM class name for expect/actual classes in JvmMultifileClass-annotated fileKT-30853Compiler crashes with NewInference and Kotlinx.Coroutines FlowKT-30927Data flow info isn't used for 'this' which is returned from lambda using labeled returnKT-31081Implement ArgumentMatch abstraction in new inferenceKT-31113Fix failing tests from SlicerTestGeneratedKT-31199Unresolved callable references with typealiasKT-31339Inliner does not remove redundant continuation classes, leading to CNFE in JMH bytecode processingKT-31346Fix diagnostic DSL_SCOPE_VIOLATION for new inferenceKT-31356False-positive error about violating dsl scope for new-inferenceKT-31360NI: inconsistently prohibits member usage without explicit receiver specification with star projection and DSL marker
IDE
New Features
KT-11242Action to copy project diagnostic information to clipboardKT-24292Support external nullability annotationsKT-30453Add plugin option (registry?) to enable new inference only in IDE
Performance Improvements
KT-13841Classes and functions should be lazy-parseableKT-27106Performance issue with optimize importsKT-30442Several second lag on project open in KotlinNonJvmSourceRootConverterProviderKT-30644ConfigureKotlinInProjectUtilsKt freezes UI
Fixes
KT-7380Imports insertion on paste does not work correctly when there were alias imports in the source fileKT-10512Do not delete imports with unresolved parts when optimizingKT-13048"Strip trailing spaces on Save" should not strip trailing spaces inside multiline strings in KotlinKT-17375Optimize Imports does not remove unused import aliasKT-27385Uast: property references should resolve to getters/settersKT-28627Invalid detection of Kotlin jvmTarget inside Idea/gradle buildKT-29267Enable ultra-light classes by defaultKT-29892A lot of threads are waiting in KotlinConfigurationCheckerComponentKT-30356Kotlin facet: all JVM 9+ target platforms are shown as "Target Platform = JVM 9" in Project Structure dialogKT-30514Auto-import with "Add unambiguous imports on the fly" imports enum members from another packageKT-30583Kotlin light elements should beisEquivalentToto it's originsKT-30688Memory leak in the PerModulePackageCacheService.onTooComplexChange methodKT-30949Optimize Imports removes used import aliasKT-30957Kotlin UAST: USimpleNameReferenceExpression in "imports" for class' member resolves incorrectly to class, not to the memberKT-31090java.lan...
1.3.31
1.3.31
Compiler
KT-26418Back-end (JVM) Internal error when compiling decorated suspend inline functionsKT-26925Decorated suspend inline function continuation resumes in wrong spotKT-30706Passing noinline lambda as (cross)inline parameter result in wrong state-machineKT-30707Java interop of coroutines inside inline functions is brokenKT-30997Crash with suspend crossinline
IDE. Inspections and Intentions
KT-30879False positive "Redundant qualifier name"KT-31112"Remove redundant qualifier name" inspection false positive for property with irrelevant import
JavaScript
KT-31007Kotlin/JS 1.3.30 - private method in an interface in the external library causes ReferenceError
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)
Tools. kapt
KT-30979Issue with Dagger2 providers MissingBinding with 1.3.30
Previous releases
This release also includes the fixes and improvements from the previous releases.
1.3.30
Content
The release contains the JVM version of Kotlin compiler and also one native system dependent version for every major platform (Linux, macOS, and Windows). Those binaries are built with Excelsior JET AOT compiler (https://www.excelsiorjet.com/) and have faster startup time which is suitable for building small files or scripts.
CHANGELOG
1.3.30
Compiler
New Features
KT-19664Allow more permissive visibility for non-virtual actual declarationsKT-29586Add support for Android platform annotationsKT-29604Do not implicitly propagate deprecations originated in Java
Performance Improvements
KT-24876Emit calls to java.lang.Long.divideUnsigned for unsigned types when target version is 1.8KT-25974'when' by unsigned integers is not translated to tableswitch/lookupswitchKT-28015Coroutine state-machine shall use Result.throwOnFailureKT-29229Intrinsify 'in' operator for unsigned integer rangesKT-29230Specialize 'next' method call for unsigned integer range and progression iterators
Fixes
KT-7185Parse import directives in the middle of the file, report a diagnostic insteadKT-7237Parser recovery (angle bracket mismatch)KT-11656Could not generate LightClass because of ISE from bridge generation on invalid codeKT-13497Better recovery in comma-separated lists in case of missing commaKT-13703Restore parser better whenclassis missing fromenumdeclarationKT-13731Recover parser on value parameter without a typeKT-14227Incorrect code is generated when using MutableMap.set with plusAssign operatorKT-19389Couldn't inline method call 'with'KT-20065"Cannot serialize error type: [ERROR : Unknown type parameter 0]" with generic typealiasKT-20322Debug: member value returned from suspending function is not updated immediatelyKT-20780"Cannot serialize error type: [ERROR : Unknown type parameter 0]" with parameterized inner type aliasKT-21405Throwable “Rewrite at slice LEXICAL_SCOPE key: VALUE_PARAMETER_LIST” on editing string literal in kotlin-js moduleKT-21775"Cannot serialize error type: [ERROR : Unknown type parameter 0]" with typealias used from a different moduleKT-22818"UnsupportedOperationException: Don't know how to generate outer expression" on using non-trivial expression in default argument ofexpectfunctionKT-23117Local delegate + local object = NoSuchMethodErrorKT-23701Report error when -Xmultifile-parts-inherit is used and relevant JvmMultifileClass parts have any stateKT-23992Target prefixes for annotations on supertype list elements are not checkedKT-24490Wrong type is inferred when last expression in lambda has functional typeKT-24871Optimize iteration and contains for UIntRange/ULongRangeKT-24964"Cannot serialize error type: [ERROR : Unknown type parameter 0]" withValidatedtypealias from ArrowKT-25383Named function as last statement in lambda doesn't coerce to UnitKT-25431Type mismatch when trying to bind mutable property with complex common systemKT-25435Try/catch as the last expression of lambda cause type mismatchKT-25437Type variable fixation of postponed arguments and type variables with Nothing constraintKT-25446Empty labeled return doesn't force coercion to UnitKT-26069NoSuchMethodError on calling remove/getOrDefault on a Kotlin subclass of Java subclass of MapKT-26638Check for repeatablilty of annotations doesn't take into account annotations with use-site targetKT-26816Lambdas to Nothing is inferred if multilevel collections is used (listOf, mapOf, etc)KT-27190State machine elimination after inlining stopped working (regression)KT-27241Contracts: smartcasts don't work correctly if type checking for contract function is usedKT-27565Lack of fallback resolution for SAM conversions for Kotlin functions in new inferenceKT-27799Prohibit references to reified type parameters in annotation arguments in local classes / anonymous objectsKT-28182Kotlin Bytecode tool window shows incorrect output on annotated property with backing fieldKT-28236"Cannot serialize error type: [ERROR : Unknown type parameter 2]" with inferred type arguments in generic extension function from ArrowKT-28309Do not generate LVT entries with different types pointing to the same slot, but have different typesKT-28317Strange behavior in testJvmAssertInlineFunctionAssertionsEnabled on Jdk 6 and exception on JDK 8KT-28453Mark anonymous classes for callable references as syntheticKT-28598Type is inferred incorrectly to Any on a deep generic type with out projectionKT-28654No report about type mismatch inside a lambda in generic functions with a type parameter as a return typeKT-28670Not null smartcasts on an intersection of nullable types don't workKT-28718progressive mode plus new inference result in different floating-point number comparisonsKT-28810Suspend function's continuation parameter is missing from LVTKT-28855NoSuchMethodError with vararg of unsigned Int in generic class constructorKT-28984Exception when subtype of kotlin.Function is used as an expected one for lambda or callable referenceKT-28993Incorrect behavior when two lambdas are passed outside a parenthesized argument listKT-29144Interface with companion object generates invalid bytecode in progressive modeKT-29228Intrinsify 'for' loop for unsigned integer ranges and progressionsKT-29324Warnings indexing jdk 11 classesKT-29367New inference doesn't wrap annotated type from java to TypeWithEnhancementKT-29507@field-targeted annotation on property with both getter and setter is absent from bytecodeKT-29705'Rewrite at slice CONSTRUCTOR` of JS class while editing another JVM-classKT-29792UnsupportedOperationException: Unsupported annotation argument type when using Java annotation with infinity or NaN as a default valueKT-29891Kotlin doesn't allow to use local class literals as annotation argumentsKT-29912Crossinline nonsuspend lambda leads to KNPE during inliningKT-29965Don't generate annotation on $default methodKT-30030Extensive 'Rewrite at slice'-exception with contracts in JS module of multiplatform projectKT-22043Report an error when comparing enum (==/!=/when) to any other incompatible type since 1.4KT-26150KotlinFrontendException is thrown when callsInPlace called twice with different InvocationKind in functions with contractsKT-26153Contra...
Kotlin 1.3.30 EAP 4
CHANGELOG
1.3.30
Compiler
New Features
KT-19664Allow more permissive visibility for non-virtual actual declarationsKT-29586Add support for Android platform annotationsKT-29604Do not implicitly propagate deprecations originated in Java
Performance Improvements
KT-24876Emit calls to java.lang.Long.divideUnsigned for unsigned types when target version is 1.8KT-25974'when' by unsigned integers is not translated to tableswitch/lookupswitchKT-28015Coroutine state-machine shall use Result.throwOnFailureKT-29229Intrinsify 'in' operator for unsigned integer rangesKT-29230Specialize 'next' method call for unsigned integer range and progression iterators
Fixes
KT-7185Parse import directives in the middle of the file, report a diagnostic insteadKT-7237Parser recovery (angle bracket mismatch)KT-11656Could not generate LightClass because of ISE from bridge generation on invalid codeKT-13497Better recovery in comma-separated lists in case of missing commaKT-13703Restore parser better whenclassis missing fromenumdeclarationKT-13731Recover parser on value parameter without a typeKT-14227Incorrect code is generated when using MutableMap.set with plusAssign operatorKT-19389Couldn't inline method call 'with'KT-20065"Cannot serialize error type: [ERROR : Unknown type parameter 0]" with generic typealiasKT-20322Debug: member value returned from suspending function is not updated immediatelyKT-20780"Cannot serialize error type: [ERROR : Unknown type parameter 0]" with parameterized inner type aliasKT-21405Throwable “Rewrite at slice LEXICAL_SCOPE key: VALUE_PARAMETER_LIST” on editing string literal in kotlin-js moduleKT-21775"Cannot serialize error type: [ERROR : Unknown type parameter 0]" with typealias used from a different moduleKT-22818"UnsupportedOperationException: Don't know how to generate outer expression" on using non-trivial expression in default argument ofexpectfunctionKT-23117Local delegate + local object = NoSuchMethodErrorKT-23701Report error when -Xmultifile-parts-inherit is used and relevant JvmMultifileClass parts have any stateKT-23992Target prefixes for annotations on supertype list elements are not checkedKT-24490Wrong type is inferred when last expression in lambda has functional typeKT-24871Optimize iteration and contains for UIntRange/ULongRangeKT-24964"Cannot serialize error type: [ERROR : Unknown type parameter 0]" withValidatedtypealias from ArrowKT-25383Named function as last statement in lambda doesn't coerce to UnitKT-25431Type mismatch when trying to bind mutable property with complex common systemKT-25435Try/catch as the last expression of lambda cause type mismatchKT-25437Type variable fixation of postponed arguments and type variables with Nothing constraintKT-25446Empty labeled return doesn't force coercion to UnitKT-26069NoSuchMethodError on calling remove/getOrDefault on a Kotlin subclass of Java subclass of MapKT-26638Check for repeatablilty of annotations doesn't take into account annotations with use-site targetKT-26816Lambdas to Nothing is inferred if multilevel collections is used (listOf, mapOf, etc)KT-27190State machine elimination after inlining stopped working (regression)KT-27241Contracts: smartcasts don't work correctly if type checking for contract function is usedKT-27565Lack of fallback resolution for SAM conversions for Kotlin functions in new inferenceKT-27799Prohibit references to reified type parameters in annotation arguments in local classes / anonymous objectsKT-28182Kotlin Bytecode tool window shows incorrect output on annotated property with backing fieldKT-28236"Cannot serialize error type: [ERROR : Unknown type parameter 2]" with inferred type arguments in generic extension function from ArrowKT-28309Do not generate LVT entries with different types pointing to the same slot, but have different typesKT-28317Strange behavior in testJvmAssertInlineFunctionAssertionsEnabled on Jdk 6 and exception on JDK 8KT-28453Mark anonymous classes for callable references as syntheticKT-28598Type is inferred incorrectly to Any on a deep generic type with out projectionKT-28654No report about type mismatch inside a lambda in generic functions with a type parameter as a return typeKT-28670Not null smartcasts on an intersection of nullable types don't workKT-28718progressive mode plus new inference result in different floating-point number comparisonsKT-28810Suspend function's continuation parameter is missing from LVTKT-28855NoSuchMethodError with vararg of unsigned Int in generic class constructorKT-28984Exception when subtype of kotlin.Function is used as an expected one for lambda or callable referenceKT-28993Incorrect behavior when two lambdas are passed outside a parenthesized argument listKT-29144Interface with companion object generates invalid bytecode in progressive modeKT-29228Intrinsify 'for' loop for unsigned integer ranges and progressionsKT-29324Warnings indexing jdk 11 classesKT-29367New inference doesn't wrap annotated type from java to TypeWithEnhancementKT-29507@field-targeted annotation on property with both getter and setter is absent from bytecodeKT-29705'Rewrite at slice CONSTRUCTOR` of JS class while editing another JVM-classKT-29792UnsupportedOperationException: Unsupported annotation argument type when using Java annotation with infinity or NaN as a default valueKT-29891Kotlin doesn't allow to use local class literals as annotation argumentsKT-29912Crossinline nonsuspend lambda leads to KNPE during inliningKT-29965Don't generate annotation on $default methodKT-30030Extensive 'Rewrite at slice'-exception with contracts in JS module of multiplatform projectKT-22043Report an error when comparing enum (==/!=/when) to any other incompatible type since 1.4KT-26150KotlinFrontendException is thrown when callsInPlace called twice with different InvocationKind in functions with contractsKT-26153Contract is allowed when it's at the beginning in control flow terms, but not in tokens order terms (contract doesn't work)KT-26191Contract may not be the first statement if it's part of the expressionKT-29178Prohibit arrays of reified ...
Kotlin 1.3.30 EAP 3
CHANGELOG
1.3.30
Compiler
New Features
KT-19664Allow more permissive visibility for non-virtual actual declarationsKT-29586Add support for Android platform annotationsKT-29604Do not implicitly propagate deprecations originated in Java
Performance Improvements
KT-24876Emit calls to java.lang.Long.divideUnsigned for unsigned types when target version is 1.8KT-25974'when' by unsigned integers is not translated to tableswitch/lookupswitchKT-28015Coroutine state-machine shall use Result.throwOnFailureKT-29229Intrinsify 'in' operator for unsigned integer rangesKT-29230Specialize 'next' method call for unsigned integer range and progression iterators
Fixes
KT-7185Parse import directives in the middle of the file, report a diagnostic insteadKT-7237Parser recovery (angle bracket mismatch)KT-11656Could not generate LightClass because of ISE from bridge generation on invalid codeKT-13497Better recovery in comma-separated lists in case of missing commaKT-13703Restore parser better whenclassis missing fromenumdeclarationKT-13731Recover parser on value parameter without a typeKT-14227Incorrect code is generated when using MutableMap.set with plusAssign operatorKT-19389Couldn't inline method call 'with'KT-20065"Cannot serialize error type: [ERROR : Unknown type parameter 0]" with generic typealiasKT-20322Debug: member value returned from suspending function is not updated immediatelyKT-20780"Cannot serialize error type: [ERROR : Unknown type parameter 0]" with parameterized inner type aliasKT-21405Throwable “Rewrite at slice LEXICAL_SCOPE key: VALUE_PARAMETER_LIST” on editing string literal in kotlin-js moduleKT-21775"Cannot serialize error type: [ERROR : Unknown type parameter 0]" with typealias used from a different moduleKT-22818"UnsupportedOperationException: Don't know how to generate outer expression" on using non-trivial expression in default argument ofexpectfunctionKT-23117Local delegate + local object = NoSuchMethodErrorKT-23701Report error when -Xmultifile-parts-inherit is used and relevant JvmMultifileClass parts have any stateKT-23992Target prefixes for annotations on supertype list elements are not checkedKT-24490Wrong type is inferred when last expression in lambda has functional typeKT-24871Optimize iteration and contains for UIntRange/ULongRangeKT-24964"Cannot serialize error type: [ERROR : Unknown type parameter 0]" withValidatedtypealias from ArrowKT-25383Named function as last statement in lambda doesn't coerce to UnitKT-25431Type mismatch when trying to bind mutable property with complex common systemKT-25435Try/catch as the last expression of lambda cause type mismatchKT-25437Type variable fixation of postponed arguments and type variables with Nothing constraintKT-25446Empty labeled return doesn't force coercion to UnitKT-26069NoSuchMethodError on calling remove/getOrDefault on a Kotlin subclass of Java subclass of MapKT-26638Check for repeatablilty of annotations doesn't take into account annotations with use-site targetKT-26816Lambdas to Nothing is inferred if multilevel collections is used (listOf, mapOf, etc)KT-27190State machine elimination after inlining stopped working (regression)KT-27241Contracts: smartcasts don't work correctly if type checking for contract function is usedKT-27565Lack of fallback resolution for SAM conversions for Kotlin functions in new inferenceKT-27799Prohibit references to reified type parameters in annotation arguments in local classes / anonymous objectsKT-28182Kotlin Bytecode tool window shows incorrect output on annotated property with backing fieldKT-28236"Cannot serialize error type: [ERROR : Unknown type parameter 2]" with inferred type arguments in generic extension function from ArrowKT-28309Do not generate LVT entries with different types pointing to the same slot, but have different typesKT-28317Strange behavior in testJvmAssertInlineFunctionAssertionsEnabled on Jdk 6 and exception on JDK 8KT-28453Mark anonymous classes for callable references as syntheticKT-28598Type is inferred incorrectly to Any on a deep generic type with out projectionKT-28654No report about type mismatch inside a lambda in generic functions with a type parameter as a return typeKT-28670Not null smartcasts on an intersection of nullable types don't workKT-28718progressive mode plus new inference result in different floating-point number comparisonsKT-28810Suspend function's continuation parameter is missing from LVTKT-28855NoSuchMethodError with vararg of unsigned Int in generic class constructorKT-28984Exception when subtype of kotlin.Function is used as an expected one for lambda or callable referenceKT-28993Incorrect behavior when two lambdas are passed outside a parenthesized argument listKT-29144Interface with companion object generates invalid bytecode in progressive modeKT-29228Intrinsify 'for' loop for unsigned integer ranges and progressionsKT-29324Warnings indexing jdk 11 classesKT-29367New inference doesn't wrap annotated type from java to TypeWithEnhancementKT-29507@field-targeted annotation on property with both getter and setter is absent from bytecodeKT-29705'Rewrite at slice CONSTRUCTOR` of JS class while editing another JVM-classKT-29792UnsupportedOperationException: Unsupported annotation argument type when using Java annotation with infinity or NaN as a default valueKT-29891Kotlin doesn't allow to use local class literals as annotation argumentsKT-29912Crossinline nonsuspend lambda leads to KNPE during inliningKT-29965Don't generate annotation on $default methodKT-30030Extensive 'Rewrite at slice'-exception with contracts in JS module of multiplatform projectKT-22043Report an error when comparing enum (==/!=/when) to any other incompatible type since 1.4KT-26150KotlinFrontendException is thrown when callsInPlace called twice with different InvocationKind in functions with contractsKT-26153Contract is allowed when it's at the beginning in control flow terms, but not in tokens order terms (contract doesn't work)KT-26191Contract may not be the first statement if it's part of the expressionKT-29178Prohibit arrays of reified ...
Kotlin 1.3.30 EAP 2
1.3.30
Compiler
New Features
KT-19664Allow more permissive visibility for non-virtual actual declarationsKT-29586Add support for Android platform annotationsKT-29604Do not implicitly propagate deprecations originated in Java
Performance Improvements
KT-24876Emit calls to java.lang.Long.divideUnsigned for unsigned types when target version is 1.8KT-25974'when' by unsigned integers is not translated to tableswitch/lookupswitchKT-28015Coroutine state-machine shall use Result.throwOnFailureKT-29229Intrinsify 'in' operator for unsigned integer rangesKT-29230Specialize 'next' method call for unsigned integer range and progression iterators
Fixes
KT-7185Parse import directives in the middle of the file, report a diagnostic insteadKT-7237Parser recovery (angle bracket mismatch)KT-11656Could not generate LightClass because of ISE from bridge generation on invalid codeKT-13497Better recovery in comma-separated lists in case of missing commaKT-13703Restore parser better whenclassis missing fromenumdeclarationKT-13731Recover parser on value parameter without a typeKT-14227Incorrect code is generated when using MutableMap.set with plusAssign operatorKT-19389Couldn't inline method call 'with'KT-20065"Cannot serialize error type: [ERROR : Unknown type parameter 0]" with generic typealiasKT-20322Debug: member value returned from suspending function is not updated immediatelyKT-20780"Cannot serialize error type: [ERROR : Unknown type parameter 0]" with parameterized inner type aliasKT-21405Throwable “Rewrite at slice LEXICAL_SCOPE key: VALUE_PARAMETER_LIST” on editing string literal in kotlin-js moduleKT-21775"Cannot serialize error type: [ERROR : Unknown type parameter 0]" with typealias used from a different moduleKT-22818"UnsupportedOperationException: Don't know how to generate outer expression" on using non-trivial expression in default argument ofexpectfunctionKT-23117Local delegate + local object = NoSuchMethodErrorKT-23701Report error when -Xmultifile-parts-inherit is used and relevant JvmMultifileClass parts have any stateKT-23992Target prefixes for annotations on supertype list elements are not checkedKT-24490Wrong type is inferred when last expression in lambda has functional typeKT-24871Optimize iteration and contains for UIntRange/ULongRangeKT-24964"Cannot serialize error type: [ERROR : Unknown type parameter 0]" withValidatedtypealias from ArrowKT-25383Named function as last statement in lambda doesn't coerce to UnitKT-25431Type mismatch when trying to bind mutable property with complex common systemKT-25435Try/catch as the last expression of lambda cause type mismatchKT-25437Type variable fixation of postponed arguments and type variables with Nothing constraintKT-25446Empty labeled return doesn't force coercion to UnitKT-26069NoSuchMethodError on calling remove/getOrDefault on a Kotlin subclass of Java subclass of MapKT-26638Check for repeatablilty of annotations doesn't take into account annotations with use-site targetKT-26816Lambdas to Nothing is inferred if multilevel collections is used (listOf, mapOf, etc)KT-27190State machine elimination after inlining stopped working (regression)KT-27241Contracts: smartcasts don't work correctly if type checking for contract function is usedKT-27565Lack of fallback resolution for SAM conversions for Kotlin functions in new inferenceKT-27799Prohibit references to reified type parameters in annotation arguments in local classes / anonymous objectsKT-28182Kotlin Bytecode tool window shows incorrect output on annotated property with backing fieldKT-28236"Cannot serialize error type: [ERROR : Unknown type parameter 2]" with inferred type arguments in generic extension function from ArrowKT-28309Do not generate LVT entries with different types pointing to the same slot, but have different typesKT-28317Strange behavior in testJvmAssertInlineFunctionAssertionsEnabled on Jdk 6 and exception on JDK 8KT-28453Mark anonymous classes for callable references as syntheticKT-28598Type is inferred incorrectly to Any on a deep generic type with out projectionKT-28654No report about type mismatch inside a lambda in generic functions with a type parameter as a return typeKT-28670Not null smartcasts on an intersection of nullable types don't workKT-28718progressive mode plus new inference result in different floating-point number comparisonsKT-28810Suspend function's continuation parameter is missing from LVTKT-28855NoSuchMethodError with vararg of unsigned Int in generic class constructorKT-28984Exception when subtype of kotlin.Function is used as an expected one for lambda or callable referenceKT-28993Incorrect behavior when two lambdas are passed outside a parenthesized argument listKT-29144Interface with companion object generates invalid bytecode in progressive modeKT-29228Intrinsify 'for' loop for unsigned integer ranges and progressionsKT-29324Warnings indexing jdk 11 classesKT-29367New inference doesn't wrap annotated type from java to TypeWithEnhancementKT-29507@field-targeted annotation on property with both getter and setter is absent from bytecodeKT-29705'Rewrite at slice CONSTRUCTOR` of JS class while editing another JVM-classKT-29792UnsupportedOperationException: Unsupported annotation argument type when using Java annotation with infinity or NaN as a default valueKT-29891Kotlin doesn't allow to use local class literals as annotation argumentsKT-29912Crossinline nonsuspend lambda leads to KNPE during inliningKT-29965Don't generate annotation on $default methodKT-30030Extensive 'Rewrite at slice'-exception with contracts in JS module of multiplatform projectKT-22043Report an error when comparing enum (==/!=/when) to any other incompatible type since 1.4KT-26150KotlinFrontendException is thrown when callsInPlace called twice with different InvocationKind in functions with contractsKT-26153Contract is allowed when it's at the beginning in control flow terms, but not in tokens order terms (contract doesn't work)KT-26191Contract may not be the first statement if it's part of the expressionKT-29178Prohibit arrays of reified type parameters...
Kotlin 1.3.30 EAP 1
1.3.30
Compiler
New Features
KT-19664Allow more permissive visibility for non-virtual actual declarationsKT-29586Add support for Android platform annotationsKT-29604Do not implicitly propagate deprecations originated in Java
Performance Improvements
KT-24876Emit calls to java.lang.Long.divideUnsigned for unsigned types when target version is 1.8KT-25974'when' by unsigned integers is not translated to tableswitch/lookupswitchKT-28015Coroutine state-machine shall use Result.throwOnFailureKT-29229Intrinsify 'in' operator for unsigned integer rangesKT-29230Specialize 'next' method call for unsigned integer range and progression iterators
Fixes
KT-7185Parse import directives in the middle of the file, report a diagnostic insteadKT-7237Parser recovery (angle bracket mismatch)KT-11656Could not generate LightClass because of ISE from bridge generation on invalid codeKT-13497Better recovery in comma-separated lists in case of missing commaKT-13703Restore parser better whenclassis missing fromenumdeclarationKT-13731Recover parser on value parameter without a typeKT-14227Incorrect code is generated when using MutableMap.set with plusAssign operatorKT-19389Couldn't inline method call 'with'KT-20065"Cannot serialize error type: [ERROR : Unknown type parameter 0]" with generic typealiasKT-20322Debug: member value returned from suspending function is not updated immediatelyKT-20780"Cannot serialize error type: [ERROR : Unknown type parameter 0]" with parameterized inner type aliasKT-21405Throwable “Rewrite at slice LEXICAL_SCOPE key: VALUE_PARAMETER_LIST” on editing string literal in kotlin-js moduleKT-21775"Cannot serialize error type: [ERROR : Unknown type parameter 0]" with typealias used from a different moduleKT-22818"UnsupportedOperationException: Don't know how to generate outer expression" on using non-trivial expression in default argument ofexpectfunctionKT-23117Local delegate + local object = NoSuchMethodErrorKT-23701Report error when -Xmultifile-parts-inherit is used and relevant JvmMultifileClass parts have any stateKT-23992Target prefixes for annotations on supertype list elements are not checkedKT-24490Wrong type is inferred when last expression in lambda has functional typeKT-24871Optimize iteration and contains for UIntRange/ULongRangeKT-24964"Cannot serialize error type: [ERROR : Unknown type parameter 0]" withValidatedtypealias from ArrowKT-25383Named function as last statement in lambda doesn't coerce to UnitKT-25431Type mismatch when trying to bind mutable property with complex common systemKT-25435Try/catch as the last expression of lambda cause type mismatchKT-25437Type variable fixation of postponed arguments and type variables with Nothing constraintKT-25446Empty labeled return doesn't force coercion to UnitKT-26069NoSuchMethodError on calling remove/getOrDefault on a Kotlin subclass of Java subclass of MapKT-26638Check for repeatablilty of annotations doesn't take into account annotations with use-site targetKT-26816Lambdas to Nothing is inferred if multilevel collections is used (listOf, mapOf, etc)KT-27190State machine elimination after inlining stopped working (regression)KT-27241Contracts: smartcasts don't work correctly if type checking for contract function is usedKT-27565Lack of fallback resolution for SAM conversions for Kotlin functions in new inferenceKT-27799Prohibit references to reified type parameters in annotation arguments in local classes / anonymous objectsKT-28182Kotlin Bytecode tool window shows incorrect output on annotated property with backing fieldKT-28236"Cannot serialize error type: [ERROR : Unknown type parameter 2]" with inferred type arguments in generic extension function from ArrowKT-28309Do not generate LVT entries with different types pointing to the same slot, but have different typesKT-28317Strange behavior in testJvmAssertInlineFunctionAssertionsEnabled on Jdk 6 and exception on JDK 8KT-28453Mark anonymous classes for callable references as syntheticKT-28598Type is inferred incorrectly to Any on a deep generic type with out projectionKT-28654No report about type mismatch inside a lambda in generic functions with a type parameter as a return typeKT-28670Not null smartcasts on an intersection of nullable types don't workKT-28718progressive mode plus new inference result in different floating-point number comparisonsKT-28810Suspend function's continuation parameter is missing from LVTKT-28855NoSuchMethodError with vararg of unsigned Int in generic class constructorKT-28984Exception when subtype of kotlin.Function is used as an expected one for lambda or callable referenceKT-28993Incorrect behavior when two lambdas are passed outside a parenthesized argument listKT-29144Interface with companion object generates invalid bytecode in progressive modeKT-29228Intrinsify 'for' loop for unsigned integer ranges and progressionsKT-29324Warnings indexing jdk 11 classesKT-29367New inference doesn't wrap annotated type from java to TypeWithEnhancementKT-29507@field-targeted annotation on property with both getter and setter is absent from bytecodeKT-29705'Rewrite at slice CONSTRUCTOR` of JS class while editing another JVM-classKT-29792UnsupportedOperationException: Unsupported annotation argument type when using Java annotation with infinity or NaN as a default valueKT-29891Kotlin doesn't allow to use local class literals as annotation argumentsKT-29912Crossinline nonsuspend lambda leads to KNPE during inliningKT-29965Don't generate annotation on $default methodKT-30030Extensive 'Rewrite at slice'-exception with contracts in JS module of multiplatform project
IDE
New Features
KT-26950Support Multiline TODO commentsKT-29034Make JvmDeclarationSearch find private fields in kotlin classes
Performance Improvements
KT-29457FindImplicitNothingAction#update freezes UI for 30 secsKT-29551CreateKotlinSdkActivity runs on UI thread
Fixes
Kotlin 1.3.21
1.3.21
Compiler
Fixes
KT-29475IllegalArgumentException at getAbstractTypeFromDescriptor with deeply nested expression inside function named with a right parenthesisKT-29479WARN: Could not read file on Java classes from JDK 11+KT-29360Kotlin 1.3.20-eap-100: This marker function should never been called. Looks like compiler did not eliminate it properly. Please, report an issue if you caught this exception.
IDE
Fixes
KT-29486Throwable: "Could not find correct module information" through IdeaKotlinUastResolveProviderService.getBindingContext() and ReplaceWithAnnotationAnalyzer.analyzeOriginal()KT-29394Kotlin 1.3.20 EAP: Excess log messages withkotlin.parallel.tasks.in.project=trueKT-29474Regression in 1.3.20: Kotlin IDE plugin parses all *.gradle.kts files when any class in buildSrc is openedKT-29290Warning "function returning deferred with a name that does not end with async" should not be displayed for let/also/apply...KT-29494Don't report BooleanLiteralArgumentInspection in batch (offline) mode with INFORMATION severityKT-29525turning on parallel tasks causes java.lang.NoClassDefFoundError: Could not initialize class kotlin.Unit sometimesKT-27769Change the DSL marker iconKT-29118Log polluted with multiple "Kotlin does not support alternative resolve" reports
IDE. Multiplatform
KT-28128MPP Kotlin/Native re-downloads POM files on IDE Gradle refresh
IDE. REPL
KT-29400IDE REPL in Gradle project: "IllegalStateException: consoleView must not be null" on module build
Libraries
Fixes
KT-29612jlink refuses to consume stdlib containing non-public package kotlin.native
Tools. CLI
KT-29596"AssertionError: Cannot load extensions/common.xml from kotlin-compiler.jar" on IBM JDK 8
Tools. Gradle
KT-294761.3.20 MPP Android publishing common api configuration with runtime scopeKT-29725MPP Gradle 5.2: NoSuchMethodError in WrapUtilKT-29485In MPP with Gradle module metadata, POM rewriting does not replace the root module publication with a platform one if the former has a custom artifact ID
Tools. Scripts
KT-29490Regression in 1.3.20: Kotlin Jsr223 script engine cannot handle functional return types
Tools. Kapt
1.3.20
Content
The release contains the JVM version of Kotlin compiler and also one native system dependent version for every major platform (Linux, macOS, and Windows). Those binaries are built with Excelsior JET AOT compiler (https://www.excelsiorjet.com/) and have faster startup time which is suitable for building small files or scripts.
Changelog
1.3.20
Android
KT-22571Android: Configure Kotlin should add implementation dependency instead of compile
Compiler
New Features
KT-14416Support of @PolymorphicSignature in Kotlin compilerKT-22704Allow expect annotations with actual typealias to Java to have default argument values both in expected and in actualKT-26165Support VarHandle in JVM codegenKT-26999Inspection for unused main parameter in Kotlin 1.3
Performance Improvements
KT-16867Proguard can't unbox Kotlin enums to integersKT-23466kotlin compiler opens-reads-closes .class files many times overKT-25613Optimise boxing of inline class values inside string templates
Fixes
KT-2680JVM backend should generate synthetic constructors for enum entries (as javac does).KT-6574Enum entry classes should be compiled to package private classesKT-8341Local variable cannot have type parametersKT-14529JS: annotations on property accessors are not serializedKT-15453Annotations are ignored on accessors of private propertiesKT-18053Unexpected behavior with "in" infix operator and ConcurrentHashMapKT-18592Compiler cannot resolve trait-based superclass of Groovy dependencyKT-19613"Public property exposes its private type" not reported for primary constructor propertiesKT-20344Unused private setter created for propertyKT-21862java.lang.NoSuchFieldError when calling isInitialized on a lateinit "field" of a companion objectKT-21946Compilation error during default lambda inlining when it returns anonymous objectKT-22154Warning: Stripped invalid locals information from 1 method when compiling with D8KT-23369Internal compiler error in SMAPParser.parseKT-23543Back-end (JVM) Internal error: Couldn't inline methodKT-23739CompilationException: Back-end (JVM) Internal error: Couldn't inline method call: Unmapped line number in inlined functionKT-24156For-loop optimization should not be applied in case of custom iteratorKT-24672JVM BE: Wrong range is generated in LVT for variables with "late" assignmentKT-24780Recursive suspend local functions: "Expected an object reference, but found ."KT-24937Exception from parser (EA-76217)KT-25058Fix deprecated API usage in RemappingClassBuilderKT-25288SOE when inline class is recursive through type parameter upper boundKT-25295“Couldn't transform method node” error on compiling inline class with inherited interface method callKT-25424No coercion to Unit when type argument specified explicitlyKT-25702@jvmoverloads should not be allowed on constructors of annotation classesKT-25893crossinline suspend function leads to IllegalStateException: call to 'resume' before 'invoke' with coroutine or compile errorKT-25907"Backend Internal error" for a nullable loop variable with explicitly declared type in a for-loop over StringKT-25922Back-end Internal error : Couldn't inline method : Lambda inlining : invoke(Continuation) : Trying to access skipped parameterKT-26126Front-end doesn't check that fun with contract andcallsInPlaceeffect is an inline function; compiler crashes on val initializationKT-26366UseExperimental with full qualified reference to marker annotation class is reported as errorKT-26384Compiler crash with nested multi-catch try, finally block and inline functionKT-26505Improve error message on missing script base class kotlin.script.templates.standard.ScriptTemplateWithArgsKT-26506Incorrect bytecode generated for inner class inside inline class referencing outer 'this'KT-26508Incorrect accessor generated for private inline class method call from lambdaKT-26509Internal compiler error on generating inline class private method call from companion objectKT-26554VerifyError: Bad type on operand stack for inline class with default parameter of underlying typeKT-26582Array literal of a primitive wrapper class is loaded as a primitive array literalKT-26608Couldn't inline method call. RuntimeException: Trying to access skipped parameter: Ljava/lang/Object;KT-26658Trying to access skipped parameter exception in code with crossinline suspend lambda with suspend function with default parameter callKT-26715NullPointerException for an inline class constructor referenceKT-26848Incorrect line in coroutine debug metadata for first suspension pointKT-26908Inline classes can't have a parameter with a default value (Platform declaration clash)KT-26931NSME “InlineClass.foo-impl(LIFace;)I” on calling inherited method from inline class instanceKT-26932CCE “Foo cannot be cast to java.lang.String” when accessing underlying value of inline class through reflectionKT-26998Default extension fun call in generic Kotlin interface with inline class substituted type of extension receiver fails with internal compiler errorKT-27025Inline class access to private companion object fun fails with VerifyErrorKT-27070Delegated property with inline class type delegate fails with internal error in codegenKT-27078Inline class instance captured in closure fails with internal error (incorrect bytecode generated)KT-27107JvmStatic in inline class companion doesn't generate static method in the classKT-27113Inline class'stoStringis not called when it is used in string extrapolationKT-27140Couldn't inline method call 'ByteArray' with inline classKT-27162Incorrect container is generated to callable reference classes for references to inline class membersKT-27259"Internal error: wrong code generated" for nullable inline class with an inline class underlying typeKT-27318Interface implementation by delegation to inline class type delegate fails with internal error in codegenKT-27358Boxed inline class type default parameter values fail with CCE at run-timeKT-27416"IllegalStateException: Backend Internal error" for inline class with a function with default argument valueKT-27429"-java-parameters" compiler argument fails in constructor when there is an inline class parameter presentKT-27513Backend Internal Error when using inline method inside inline classKT-27560Executing...