Releases: JetBrains/kotlin
Releases · JetBrains/kotlin
Kotlin 1.5.10
How to update to a new release
Changelog
Compiler
Fixes
KT-41078Incorrect type substitution in contracts with type parametersKT-44770JVM / IR: "IllegalArgumentException: Unrecognized Type: [null]" Jackson doesn't recognize typeKT-45084JVM IR: "NoSuchElementException: Sequence contains no element matching the predicate" when inline class is passed to lambda with >22 parametersKT-45779JVM / IR: java.lang.NoSuchMethodError: 'int java.lang.Integer.plus(int)' caused by function referenceKT-45941JVM IR: local functions use generic type parameters of the outer class in the bytecode, which breaks Bytebuddy and MockKKT-46149Generate synthetic classes for SAM adapters with erased instead of generic supertypeKT-46189JVM IR: tailrec function with capturing lambda in default parameter value leads to NoSuchMethodError at runtimeKT-46214JVM / IR: "IllegalStateException: No mapping for symbol: VALUE_PARAMETER INSTANCE_RECEIVER" on a suspend function in an inner classKT-46238JVM IR: BootstrapMethodError in JDK 11+ on intersection type passed in arguments of SAM adapter where SAM interface's type parameter has a non-trivial upper boundKT-46259JVM IR: local function for adapted function reference is not declared as ACC_SYNTHETICKT-46284JVM IR: "Unbound private symbol IrClassSymbol" on class reference to script classKT-46402IllegalAccessError: "CapturedLambdaInterpreter (in unnamed module @0x71b06418) cannot access class jdk.internal.org.objectweb.asm.Type" caused by inline function with a suspend parameter in Maven projectKT-46408JVM IR: BootstrapMethodError due to missing bridge for subclass of generic Java interfaceKT-46426JVM IR: Corrupted .class file when passing Array constructor reference as (inline) lambdaKT-46455OOM on parsing invalid code with string interpolationKT-46503JVM IR: "AssertionError: Unexpected variance in super type argument: out @1"KT-46505JVM IR: NullPointerException caused by a callable reference with nullable inline value class parameterKT-46512JVM / IR: NoSuchMethodError on SAM conversion of a function referenceKT-46515IndexOutOfBoundsException: "Empty list doesn't contain element at index 0." on bad variable name in 1.5.0KT-46516JVM IR: "AnalyzerException: Expected I, but found R" on subclassing AbstractMutableListKT-46524Cannot use unsigned literals with api-version < 1.5 even with opt-inKT-46537JVM / IR: "IllegalStateException: No noarg super constructor for CLASS" caused by "No-arg" plugin with annotation on child classKT-46540JVM / IR: AnalyzerException: Expected an object reference, but found J caused by java.function.SupplierKT-46554JVM IR: "IllegalStateException: No mapping for symbol: VAR IR_TEMPORARY_VARIABLE" with value class constructor delegation callKT-46555JVM IR: IllegalAccessError when using Java method referenceKT-46562Kotlin 1.5.0 generates non-serializable lambdas when they should be serializableKT-46568JVM IR: "AssertionError: IrCall expected inside JvmStatic wrapper" on compiling protected static function with return type Nothing inside companion object of abstract classKT-46574JVM / IR: ClassCastException caused by runBlocking awaiting call while returning Kotlin.Result type.KT-46579JVM IR: "IllegalArgumentException: Sequence contains more than one matching element" for Java enum with overloaded values() static methodKT-46584JVM IR: Intrinsics.needClassReification (UnsupportedOperationException thrown). Property delegate provider crossinline lambda inlining/reification issueKT-46751JVM / IR:"ClassCastException: java.lang.String cannot be cast to java.lang.Void" in extension function in Kotlin 1.5
IDE
KT-45981failed to analyze: java.lang.AssertionError: diagnostic callback has been already registered: Code analysis get stuck in AS 2020.3.1.14 & Kotlin v1.5.0-M2KT-4662260+ second freezes with Kotlin plugin 1.5.0: GetModuleInfoKt.findJvmStdlibAcrossDependencies
IDE. Gradle Integration
KT-46417[UNRESOLVED_REFERENCE] For project to project dependencies of native platform test source sets
Libraries
KT-46280JvmRecord annotation missing constructor in common
Middle-end. IR
KT-44013NPE: When calling constructor of a function type while inheriting from it, despite it's an interface
Tools. Android Extensions
KT-46590Kotlin Android Extensions 1.5.0 generates bad writeToParcel() method for nullable Array types
Tools. Gradle
KT-41142Kotlin version conflict when using Kotlin Gradle plugins in pre-compiled script pluginKT-46353Optimizations disabled in Gradle 7 for KAPT when generating sourcesKT-46368Memory leak with 1.5.0-RC when building with GradleKT-46689Track -Xuse-old-backend flag usage
Tools. Gradle. JS
KT-46006KJS \ Gradle: Task without declaring an explicit or implicit dependency onjsGenerateExternalsIntegratedin Gradle 7KT-46162KJS: Exported items unavailable on dev serverKT-46331KJS: Withkotlin.js.webpack.major.version=4browserXRun tasks fail
Tools. Parcelize
KT-46567Kotlin 1.5.0 parcelize compilation fails in new backend when using TypeParceller with nested generics
Tools. kapt
KT-45532Do not create Kapt stubs directory during configuration time
Checksums
| File | Sha256 |
|---|---|
| kotlin-compiler-1.5.10.zip | 2f8de1d73b816354055ff6a4b974b711c11ad55a68b948ed30b38155706b3c4e |
| kotlin-native-linux-1.5.10.tar.gz | 0463222fb84e0f997e3c71af89ed1d1c4b3b9894cafffe5fc0ba1f125cf362ea |
| kotlin-native-macos-1.5.10.tar.gz | bc227baad4a4c8b5cdf0b1a08fa3fb59132043f2ea88e2343c5f25584f5de3cd |
| kotlin-native-windows-1.5.10.zip | e0816d91da9c4c38b3ef8891033185cb183f4a901054c9f17a9c72295ed40324 |
Kotlin 1.5.0
Changelog
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 interfac...
Kotlin 1.5.0-RC
Changelog
Compiler
New Features
KT-28791Kotlin serialization with inline classesKT-43920Support loading binary Java annotations on fields
Performance Improvements
KT-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-35224It's possible to pass non-spread arrays after arguments with SAM-conversionKT-36853IR: UninitializedPropertyAccessException on tailrec with object expression in default argumentKT-41056Increase stub version due to new "contract" keywordKT-43887Problem with FunctionReferenceLowering$FunctionReferenceBuilder in kotlin nativeKT-44210KJS / IR: "AssertionError: Undefined parameter referenced: defined" caused by plus assign operators in build blocksKT-44947Sealed interfaces: Sealed fun interface leads to "NoWhenBranchMatchedException"KT-44993JVM IR: VerifyError on getfield with Kotlin generic field and elvis operatorKT-45139Inline class: AssertionError: Expected top level inline classKT-45195JVM IR: annotation methods are generated as default interface methods ifallopenis usedKT-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-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-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 variables
IDE. Inspections and Intentions
KT-38155Lift assignment out of 'if' produces type mismatch without manually adding a semicolon
JavaScript
KT-44796KJS / IR: default parameter of function with @JsName leads to "RangeError: Maximum call stack size exceeded"
Libraries
KT-39177Make CharCategory available in common multiplatform codeKT-43772Kotlin/Native unfinished workers detected.
Tools. Gradle
KT-43605Kotlin Gradle Plugin 1.4.20 undeclared system property reads cause problems with Gradle configuration cache enabledKT-44462Kotlin Gradle plugin createscompileconfiguration with Gradle 7.0KT-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. Multiplatform
KT-44900Support gradle configuration cache with kotlin.multiplatform plugin
Tools. kapt
KT-43686KaptWithoutKotlincTask should use@CompileClasspathforkotlinStdlibClasspathfor cache relocateability.KT-44130KAPT changes field order in 1.4.30-M1
Checksums
| File | Sha256 |
|---|---|
| kotlin-compiler-1.5.0-RC.zip | 91a82ea9ff1b49ef1c342d52b3fe54fed92aa79201ee0d452fe9b72e698ea98b |
| kotlin-native-linux-1.5.0-RC.tar.gz | 6336cf1d360bd62adfffb4442a31e06150721cc767c76eca2830e9e45eed9bbc |
| kotlin-native-macos-1.5.0-RC.tar.gz | 2d868b738b77ca290ea4c714669e31ed29f3befbb71aa0d0b4b0ad1ebddf1a9d |
| kotlin-native-windows-1.5.0-RC.zip | dd3c6bec6aa1b50e1764484406d450d4ae491169a47add5e2174e82de73e567d |
Kotlin 1.5.0-M2
Changelog
Compiler
New Features
KT-30222Support JVM target version selection in Kotlin bytecode tool windowKT-41884Support 'file' target for JvmSynthetic annotationKT-44278Generate SAM-converted lambdas and function references using 'invokedynamic' on JDK 1.8+
Performance Improvements
KT-26060Support a compiler mode to compile lambda expressions usinginvokedynamicinstructionKT-42621Kotlin binary size considerably larger for code extensively using stream API
Fixes
KT-20306Make 'when' over an 'expect' enum class non-exhaustiveKT-20869kotlin.jvm.internal.DefaultConstructorMarker should be publicKT-26592Do not generate private suspend functions as synthetic package-privateKT-38100Support local delegated properties (not inlined) in new JVM default modesKT-40392Deprecate JvmDefault annotation and old -Xjvm-default modesKT-41758Deprecate kotlin.Metadata.bytecodeVersion and avoid using it in the compilerKT-42092JVM / IR: "AnalyzerException: Argument 1: expected R, but found J" when trying to add to ArrayList the result of a function applied to intKT-42321JVM IR: do not cast integer value based on the type of a literal receiver of an operator callKT-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-43167JVM IR, serialization: "No mapping for symbol: VALUE_PARAMETER INSTANCE_RECEIVER" with data class containing property defined in bodyKT-43303NI: False negative TYPE_INFERENCE_UPPER_BOUND_VIOLATED when inferred type argument is not a subtype of type parameter upper boundKT-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-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-44550KotlinBinaryClassCache leaks Kotlin plugin classloader on plugin unloadKT-44546NI: changed variable fixation order (that can lead to changed resolution)KT-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-44703JVM / IR: "IllegalStateException: Unhandled special name in mangledNameFor" caused by a reference to inline class inside interface's companion with lazy initializationKT-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-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-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-44974LambdaConversionException in case of SAM-converted captuing extension lambdaKT-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-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-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 annotation
IDE
KT-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 opening
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 enabled
IDE. Misc
KT-44675Incorrect reference to resource into 202 plugin
IDE. Refactorings
KT-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-44433KJS IR: support function interfaces with suspend memberKT-45059KJS / IR: Add possibility for runtime diagnostics of DCE result
Libraries
KT-12109Add stdlib method that combines mapNotNull() and first/firstOrNull()KT-26234Floored division and remainder function for numeric typesKT-32996kotlin.test: add assertContentEquals for comparing content of arrays, iterables, sequences- [
KT-42071](https://youtrack.jetbrains.com/issue/...
Kotlin 1.4.32
Changelog
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()
Checksums
| File | Sha256 |
|---|---|
| kotlin-compiler-1.4.32.zip | dfef23bb86bd5f36166d4ec1267c8de53b3827c446d54e82322c6b6daad3594c |
| kotlin-native-linux-1.4.32.tar.gz | 3712fab4c60484fd8b5538dd018a0023033cb3ea38d2a3023c79b342e4e8b24d |
| kotlin-native-macos-1.4.32.tar.gz | a55eb3c60bb9810360c5a992dca34328d806fe13f3bfc3120b49345f569fd3cc |
| kotlin-native-windows-1.4.32.zip | 3bd6f1b9293897a45d0b33ee14ca51b33b57d0413b774458c6e4aee393e1b772 |
Kotlin 1.5.0-M1
You could find information about EAP program and setup instructions here
Changelog
Backend. Native
Compiler
New Features
KT-42522Enable string concatenation via invokedynamic by default for JVM target 9 and aboveKT-43677Support for Java recordsKT-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-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 continuation
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-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-27449NoSuchMethodError for local suspend function with suspend lambda parameter with default value
...
Kotlin 1.4.31
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)
Checksums
| File | Sha256 |
|---|---|
| kotlin-compiler-1.4.31.zip | b50e7016febf7510325d685ae69cc62f49a7ca7f670cb4e0888112e3ec09c6ec * |
| kotlin-native-linux-1.4.31.tar.gz | 87fc40385ffbd44eebde6487d15e1c5c67c218870b332b525e122f014b7de3e3 |
| kotlin-native-macos-1.4.31.tar.gz | 0e351756b382096204d61456f855480ce6b65ac53897c4bfa78a287895f37e32 |
| kotlin-native-windows-1.4.31.zip | a60aec97fd21294ab11e57acdd33d37d79db11b22656fa435b791e9a709727b4 |
* Sorry, Sha256 sum was initially published incorrectly. Now it is fixed.
Kotlin 1.4.30
CHANGELOG
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 dele...
Kotlin 1.4.30-RC
CHANGELOG
1.4.30-RC
Info about particular features
- JVM IR backend reaches Beta
- Inline classes improvements
- JVM records preview with -language-version 1.5 and -Xjvm-enable-preview
- Sealed interfaces preview with -language-version 1.5
New Features
KT-41265Support noarg compiler plugin for JVM IRKT-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
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-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-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-36399Gradually support TYPE_USE nullability annotations read from class-filesKT-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-41911JVM IR: nested big-arity function calls are not loweredKT-42001Cannot resolve symbol: AssertionError: Module <sdk 1.8> is not contained in his own dependenciesKT-42036IR: "AssertionError: TypeAliasDescriptor expected: deserialized class Nothing" when referencing typealias with @UnsafeVarianceKT-42530"AssertionError: No type for resolved lambda argument" on attempting to assign a Pair to a couple of values in a scratch fileKT-42622NI: IllegalStateException for if expression with method reference inside flowKT-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-43225Confusing message of warning NULLABLE_TYPE_PARAMETER_AGAINST_NOT_NULL_TYPE_PARAMETERKT-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-43536JVM IR: IllegalStateException is not caught by runCatching under Deferred.await() with kotlinx.coroutinesKT-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-42194OOME: Java heap space from incremental compilationKT-44116Add language version 1.5 to the compiler configuration preferences
IDE. Android
IDE. Completion
KT-44016Code completion: support for "sealed interface"
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-44017Sealed interfaces: Java side Inspection "implementation of Kotlin sealed interface is forbidden"KT-43941Sealed interfaces: intention to extend class/interface
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 reference
IDE. Script
KT-44117IDE / Scripts: custom kotlin script definitions aren't loaded
JavaScript
Fixes
KT-41076KJS / IR: "AssertionError: Assertion failed" caused by overridden extensiion function in child classKT-42357KotlinJS - external class constructor with vararg does not correctly handle spread operator.KT-43212JS IR: supportinitblocks inside inline classesKT-43901Call to enum values() method from enum companion object leads to non-initialized enum instances
Libraries
KT-41278map.entries.contains can return false if the argument is not MutableEntry
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
KT-44271[Kotlin/Native] Incorrect linking when targeting linux_x64 from mingw_x64 hostKT-442191.4.30-M1: Non-reified type parameters with recursive bounds are not supported yet
Nativ...
Kotlin 1.4.21-2
This release contains the fix for the kotlinx.serialization plugin working together with Jetpack Compose plugin.
Please use the 1.4.21 version for your usual production work and use this version only if you want to experiment on kotlinx.serialization and Jetpack Compose together.