Skip to content

Releases: JetBrains/kotlin

Kotlin 1.8.0-Beta

15 Nov 12:03

Choose a tag to compare

Kotlin 1.8.0-Beta Pre-release
Pre-release

1.8.0-Beta

Android

  • KT-53013 Increase AGP compile version in KGP to 4.1.3
  • KT-53709 MPP, Android SSL2: Conflicting warnings for androidTest/kotlin source set folder

Backend. Native. Debug

  • KT-53561 Invalid LLVM module: "inlinable function call in a function with debug info must have a !dbg location"

Compiler

New Features

  • KT-53916 Support Xcode 14 and new Objective-C frameworks in Kotlin/Native compiler
  • KT-54460 Implementation of non-local break and continue
  • KT-32208 Generate method annotations into bytecode for suspend lambdas (on invokeSuspend)
  • KT-53438 Introduce a way to get SourceDebugExtension attribute value via JVMTI for profiler and coverage

Performance Improvements

  • KT-53347 Get rid of excess allocations in parser
  • KT-53689 JVM: Optimize equality on class literals

Fixes

  • KT-52974 "IllegalStateException: Symbol with IrSimpleFunctionSymbolImpl is unbound" compiling native targets of MPP project
  • KT-48678 Coroutine debugger: disable "was optimised out" compiler feature
  • KT-54745 Restore KtToken constructors without tokenId parameter to preserve back compatibility
  • KT-54650 Binary incompatible ABI change in Kotlin 1.7.20
  • KT-52786 Frontend / K2: IndexOutOfBoundsException when opting in to K2
  • KT-54004 Builder type inference does not work correctly with variable assignment and breaks run-time
  • KT-54581 JVM: "VerifyError: Bad type on operand stack" with generic inline function and when inside try-catch block
  • KT-52913 JVM / IR: "IllegalArgumentException: Inline class types should have the same representation" when trying to down cast cast a value class
  • KT-54600 NPE on passing nullable Kotlin lambda as Java's generic SAM interface with super type bound
  • KT-54463 Delegating to a field with a platform type causes java.lang.NoSuchFieldError: value$delegate
  • KT-54509 Ir Interpreter: unable to evaluate string concatenation with "this" as argument
  • KT-54393 Change in behavior from 1.7.10 to 1.7.20 for java field override.
  • KT-54615 JVM: Internal error in file lowering: java.lang.AssertionError: Error occurred while optimizing an expression
  • KT-53146 JVM IR: unnecessary checkcast of null leads to NoClassDefFoundError if the type isn't available at runtime
  • KT-51868 JVM / IR: Inconsistent behaviour between lambda expression and SAM interface conversion for the same interface
  • KT-53947 IllegalStateException: No mapping for symbol: VALUE_PARAMETER INSTANCE_RECEIVER
  • KT-53712 Add mode to prevent generating JVM 1.8+ annotation targets (TYPE_USE, TYPE_PARAMETER)
  • KT-48532 Remove old JVM backend
  • KT-35187 NullPointerException on compiling suspend inline fun with typealias to suspend function type
  • KT-54275 K2: "IllegalArgumentException: KtParameter is not a subtype of class KtAnnotationEntry for factory REPEATED_ANNOTATION"
  • KT-47475 "IncompatibleClassChangeError: disagree on InnerClasses attribute": cross-module inlined WhenMappings has mismatched InnerClasses
  • KT-53197 K2: 'init' hides member of supertype 'UIComponent' and needs 'override' modifier
  • KT-53867 K2: @JvmRecord does not compile to a java record
  • KT-53964 K2 is unable to work with Java records
  • KT-53349 K2: TYPE_MISMATCH caused by non-local return
  • KT-54100 "Type variable TypeVariable(P) should not be fixed" crash in code with errors
  • KT-49017 Forbid usages of super or super if in fact it accesses an abstract member
  • KT-54192 Warn about unsupported feature on generic inline class parameters
  • KT-53723 Friend modules aren't getting passed to cache build during box tests
  • KT-53873 K2: Duplicated diagnostics reported from user type ref checkers
  • KT-50909 "VerifyError: Bad type on operand stack" caused by smartcasting for nullable inline class property in class
  • KT-48031 "IllegalStateException: Type variable TypeVariable(T) should not be fixed!"
  • KT-54115 Restore Psi2IrTranslator constructor from 1.7.20
  • KT-53908 K2: Self-referencing generics in Java class causes New Inference Error (IE: class Foo<T extends Foo>)
  • KT-53193 K2: compile error on project that compiles fine with normal 1.7.10
  • KT-53953 Forbid usages of super or super if in fact it accesses an abstract member
  • KT-47473 NI: Missed UPPER_BOUND_VIOLATED diagnostics if use type aliases with type parameters
  • KT-54049 K2: false positive MANY_IMPL_MEMBER_NOT_IMPLEMENTED
  • KT-30054 Wrong approximation if nullable anonymous object with implemented interface is used
  • KT-53751 Postpone IgnoreNullabilityForErasedValueParameters feature
  • KT-53324 Implement Enum.entries lowering on K/N
  • KT-44441 K2: report redeclaration error if there is a Java class with the same name as the Kotlin class
  • KT-53493 K2: val on function parameter counts as just warning
  • KT-53435 K2: "IllegalArgumentException: class KtValueArgument is not a subtype of class KtExpression for factory ANNOTATION_ARGUMENT_MUST_BE_CONST" if string in nested annotation is concatenated
  • KT-52927 AssertionError: LambdaKotlinCallArgumentImpl
  • KT-53922 Make Enum.entries unstable feature to poison binaries
  • KT-53783 Exception during psi2ir when declaring expect data object
  • KT-41670 JVM IR: AbstractMethodError when using inheritance for fun interfaces
  • KT-53178 K2: implement diagnostics for serialization plugin
  • KT-53465 Unnecessary checkcast to array of reified type is not optimized since Kotlin 1.6.20
  • KT-52970 Default value constant in companion object works on JVM and JS, but fails on native
  • KT-27936 Write InnerClasses attribute for all class names used in a class file
  • KT-53007 JVM: "Bad invokespecial instruction: current class isn't assignable to reference class" when call superclass of outer class method from inner class
  • KT-53261 Evaluate effect from inline for primitive types
  • KT-39492 Kotlin.Metadata's packageName field cannot be an empty string
  • KT-53664 Ir Interpreter: unable to evaluate name of function reference marked with JvmStatic from another module
  • KT-52478 [Native] Partial linkage: Building native binary from cached KLIBs fails if one library depends on removed nested callable member from another one
  • KT-53667 Compiler crashes on attempt to alloc a string on the stack in new MM
  • KT-48822 CompilationException: Back-end (JVM) Internal error: Failed to generate expression: KtProperty - ConcurrentModificationException
  • KT-50281 IllegalStateException: unsupported c...
Read more

Kotlin 1.7.21

09 Nov 07:51

Choose a tag to compare

Changelog

Compiler

  • KT-54463 Delegating to a field with a platform type causes java.lang.NoSuchFieldError: value$delegate
  • KT-54509 Ir Interpreter: unable to evaluate string concatenation with "this" as argument
  • KT-54004 Builder type inference does not work correctly with variable assignment and breaks run-time
  • KT-54393 Change in behavior from 1.7.10 to 1.7.20 for java field override.
  • KT-54615 JVM: Internal error in file lowering: java.lang.AssertionError: Error occurred while optimizing an expression
  • KT-54581 JVM: "VerifyError: Bad type on operand stack" with generic inline function and when inside try-catch block
  • KT-53146 JVM IR: unnecessary checkcast of null leads to NoClassDefFoundError if the type isn't available at runtime
  • KT-54600 NPE on passing nullable Kotlin lambda as Java's generic SAM interface with super type bound
  • KT-54707 "VerifyError: Bad type on operand stack" in inline call chain on a nullable array value
  • KT-54650 Binary incompatible ABI change in Kotlin 1.7.20
  • KT-54802 "VerifyError: Bad type on operand stack" for inline functions on arrays

Native. Runtime. Memory

  • KT-54498 Deprecation message of 'FreezingIsDeprecated' is not really helpful

Tools. Gradle. Multiplatform

  • KT-54387 Remove MPP alpha stability warning
  • KT-48436 False positive "The Kotlin source set androidAndroidTestRelease was configured but not added to any Kotlin compilation"

Tools. JPS

  • KT-45474 False positive NO_ELSE_IN_WHEN on sealed class with incremental compilation

Checksums

File Sha256
kotlin-compiler-1.7.21.zip 8412b31b808755f0c0d336dbb8c8443fa239bf32ddb3cdb81b305b25f0ad279e
kotlin-native-linux-x86_64-1.7.21.tar.gz 0f9eb04a5ee0665a195c1f1093c778f5696216660feb638b29f923f586093dd0
kotlin-native-macos-x86_64-1.7.21.tar.gz 9530cadcf05cfd6111ef35725115009283b1a0292427261b78d43853c35ccd44
kotlin-native-macos-aarch64-1.7.21.tar.gz f75e1a68e193b0cd9df56f15166fb4e721641b408065531b620cf204d78922e5
kotlin-native-windows-x86_64-1.7.21.zip 5e76301f6c386ea83dc668e171887244908c18da636f7237d5371b56d8fec8da

Kotlin 1.7.20

29 Sep 13:22

Choose a tag to compare

1.7.20

Analysis API

  • KT-52667 FIR IDE: fun interfaces (SAM interfaces) are not properly resolved
  • KT-52136 FIR: Implicit type declaration from the other module cannot be used for overloading

Analysis API. FE1.0

  • KT-51962 Analysis API: Finish Analysis API for FE1.0

Analysis API. FIR

  • KT-52779 FIR IDE: Import Optimizer cannot handle generic type qualifiers
  • KT-50236 Fix OOB modification trackers for non-Kotlin code
  • KT-51240 Analysis API: KtAnalysisSession for a specific module cannot create a symbol for PSI that cannot be seen from that module.
  • KT-50868 Analysis API: decompiled type aliases are not resolved

Compiler

  • KT-53739 Builder inference, extension hides members
  • KT-53733 Kotlin/Native: update source documentation for the new default memory manager
  • KT-53667 Compiler crashes on attempt to alloc a string on the stack in new MM
  • KT-53480 Internal error in file lowering: java.lang.ClassNotFoundException: com.android.systemui.R$string
  • KT-52843 Compose: NPE at Parameters.getParameterByDeclarationSlot if inline function with default arguments takes a lambda which captures value class represented by Long
  • KT-53475 Kotlin/Native for iOS: "IllegalArgumentException: Sequence has more than one element"

New Features

  • KT-52495 Support until operator in back-ends
  • KT-52420 Implement resolve of until operator
  • KT-52419 Implement until operator in the parser
  • KT-33755 Kotlin/Native: Provide a way to customize a bundle Identifier of a generated framework
  • KT-51665 FIR: implement label resolve for "typed this" case
  • KT-52361 Report warning on potentially empty intersection types

Performance Improvements

  • KT-47816 Disable script discovery for non-script environments
  • KT-48635 JVM IR: Double/Float values are boxed when comparing for equality in equals method of data/value classes
  • KT-23397 Optimize out field for property delegate when it's safe (JVM)

Fixes

  • KT-53272 Backend Internal error: Exception during IR lowering / No such value argument slot: 2
  • KT-53124 Receiver type mismatch when combining extension properties, type projections, Java sources, and F-bounded type-variables
  • KT-51868 JVM / IR: Inconsistent behaviour between lambda expression and SAM interface conversion for the same interface
  • KT-36770 Prohibit unsafe calls with expected @NotNull T and given Kotlin generic parameter with nullable bound
  • KT-52974 "IllegalStateException: Symbol with IrSimpleFunctionSymbolImpl is unbound" compiling native targets of MPP project
  • KT-53007 JVM: "Bad invokespecial instruction: current class isn't assignable to reference class" when call superclass of outer class method from inner class
  • KT-53019 K2: cannot cast callable reference to Function1 in runtime
  • KT-53031 K2 compiler crashes with IllegalStateException: No type in ProtoBuf.ValueParameter
  • KT-29168 Prohibit upper bounds violation with generic typealias using not all type parameters as arguments for underlying type in supertypes
  • KT-52432 Using the IDE compiled with K2 (useFir) throws VerifyError exception
  • KT-52327 False negative: TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM isn't reported
  • KT-49682 Support JVM IR in KAPT stub generation
  • KT-24643 Prohibit using a type parameter declared for an extension property inside delegate
  • KT-51972 FIR, Gradle: "Symbol is invisible" compilation error with enabled Kotlin Lombok compiler plugin
  • KT-52011 [FIR] All-open compiler plugin isn't supported
  • KT-51950 JVM IR: "IndexOutOfBoundsException: Cannot pop operand off an empty stack" with crossinline lambdas and interface delegation
  • KT-52540 Native: kotlin.NotImplementedError with Arrow library
  • KT-48031 "IllegalStateException: Type variable TypeVariable(T) should not be fixed!"
  • KT-47708 RequiresOptIn check does not flag experimental method usage in SAM lambda expressions
  • KT-52913 JVM / IR: "IllegalArgumentException: Inline class types should have the same representation" when trying to down cast cast a value class
  • KT-50771 IR partial linkage: Removed abstract callable members are not supported
  • KT-52994 Enable generic inline classes as experimental feature
  • KT-52742 CYCLE_IN_ANNOTATION_PARAMETER_ERROR false positive on annotations with default values
  • KT-52743 Non-null generic functions throws NPE when assigned to val
  • KT-52745 Frontend / K2: "IncompatibleClassChangeError: class A$B overrides final method A.length()I" caused by delegation in a sealed class
  • KT-52832 Tree-generator's method FirExpression::isFirType returns true and false for different field names; it should always be true
  • KT-52403 IncompatibleClassChangeError when inlining suspend funs
  • KT-50107 Missed USAGE_IS_NOT_INLINABLE diagnostic: Leaking inline lambda parameter through extension receiver
  • KT-47965 Missed USAGE_IS_NOT_INLINABLE diagnostic on inline lambda parameter usage as receiver of .let call
  • KT-25787 No error on crossinline usage of receiver parameter of functional type in an inline function
  • KT-52762 Frontend / K2: Named arguments for Java classes lead to "Cannot find a parameter with this name"
  • KT-52680 K2: overload resolution ambiguity if this is casted in a different method
  • KT-52676 K2: Unsupported compile-time value IrGetFieldImpl instead of IrConst in AnnotationCodegen for constant from Java
  • KT-50293 False positive: USELESS_CAST on stub types
  • KT-52175 WRONG_ANNOTATION_TARGET for annotation that used inside if
  • KT-52338 "IncompatibleClassChangeError: Expected non-static field" with Kotlin class with same-named companion object property as base Java class field
  • KT-49507 JVM: "IllegalAccessError: class X tried to access private field" with same-named Kotlin property and Java base class field
  • KT-44512 FIR DFA: incorrect smartcast after null assignment inside a lambda
  • KT-49200 FIR/FE 1.0: different behavior with multiple matching star imports
  • KT-52718 declaringClass deprecation message mentions the wrong replacement in 1.7
  • KT-52190 FIR2IR: Unexpected IrErrorTypeImpl type for put method inside buildMap
  • KT-52197 Incorrect inference of var type inside lambda that passed to extension function with type parameters that defined inside this lambda
  • KT-52057 Unsupported compile-time value STRING_CONCATENATION and GET_FIELD in annotation arguments
  • KT-47823 JVM IR: "IllegalArgumentException: Inline class types should have the same representation" with break usage in the loop range
  • KT-51883 Kotlin 1.6.20 generates "-" in type names around ...
Read more

Kotlin 1.7.20-RC

08 Sep 06:16

Choose a tag to compare

Kotlin 1.7.20-RC Pre-release
Pre-release

Changelog

Compiler

  • KT-53739 Builder inference, extension hides members
  • KT-53733 Kotlin/Native: update source documentation for the new default memory manager
  • KT-53667 Compiler crashes on attempt to alloc a string on the stack in new MM
  • KT-53480 Internal error in file lowering: java.lang.ClassNotFoundException: com.android.systemui.R$string
  • KT-52843 Compose: NPE at Parameters.getParameterByDeclarationSlot if inline function with default arguments takes a lambda which captures value class represented by Long
  • KT-51868 JVM / IR: Inconsistent behaviour between lambda expression and SAM interface conversion for the same interface
  • KT-53475 Kotlin/Native for iOS: "IllegalArgumentException: Sequence has more than one element"

Libraries

  • KT-52910 Provide visit extension functions for java.nio.file.Path
  • KT-52909 Implement a walk extension function for java.nio.file.Path

Native

  • KT-53346 MPP project with kotlinx-serialization-json:1.4.0-RC is not built

Native. C and ObjC Import

  • KT-53373 Native: @ExportObjCClass doesn't work with the new memory manager

Native. Runtime

  • KT-53534 Kotlin/Native: -Xruntime-logs=gc=info flag doesn't work with compiler caches in 1.7.20-beta

Tools. Gradle

  • KT-53670 Gradle: Cyclic dependency between kotlin-gradle-plugin-idea-1.7.20-Beta and kotlin-gradle-plugin-idea-proto-1.7.20-Beta
  • KT-53615 Gradle: Fix deprecation warnings in CleanableStoreImpl
  • KT-53118 Fully up-to-date builds are slower with Kotlin 1.7.0

Tools. Gradle. Cocoapods

  • KT-53337 Add warning about future changing default linking type of framework provided via cocoapods plugin

Tools. Incremental Compile

  • KT-53266 Increment Compilation: "IllegalStateException: The following LookupSymbols are not yet converted to ProgramSymbols" when changing companion object constant field
  • KT-53231 New IC reports build failures for missing classpath snapshots

Tools. Kapt

  • KT-52761 Kotlin 1.7.0 breaks kapt processing for protobuf generated java sources

Checksums

File Sha256
kotlin-compiler-1.7.20-RC.zip da9a362df57da5d6bfa99cad0513489837891afb70efd365abd0a572efd26772
kotlin-native-linux-x86_64-1.7.20-RC.tar.gz 1d0a2b5b6f580688a92141cd87adf102104ee7a945eab7e0b17185bd2d985485
kotlin-native-macos-x86_64-1.7.20-RC.tar.gz 4c107f1256e8078b5132d22ae5421c80b52653a66ce8689e627da9a9e1eab2b7
kotlin-native-macos-aarch64-1.7.20-RC.tar.gz 4d1b68fb205d2e41a9f2fc80a584b1c045805983971d3dc0d5a6522fe73cba35
kotlin-native-windows-x86_64-1.7.20-RC.zip 280586dc3491616923e7dd19edce1636e77be00cde084bdea9a1d7090d30f7aa

Kotlin 1.7.20-Beta

01 Aug 08:24

Choose a tag to compare

Kotlin 1.7.20-Beta Pre-release
Pre-release

Changelog

Analysis API

  • KT-52667 FIR IDE: fun interfaces (SAM interfaces) are not properly resolved
  • KT-52136 FIR: Implicit type declaration from the other module cannot be used for overloading

Analysis API. FE1.0

  • KT-51962 Analysis API: Finish Analysis API for FE1.0

Analysis API. FIR

  • KT-52779 FIR IDE: Import Optimizer cannot handle generic type qualifiers
  • KT-50236 Fix OOB modification trackers for non-Kotlin code
  • KT-51240 Analysis API: KtAnalysisSession for a specific module cannot create a symbol for PSI that cannot be seen from that module.
  • KT-50868 Analysis API: decompiled type aliases are not resolved

Compiler

New Features

  • KT-33755 Kotlin/Native: Provide a way to customize a bundle Identifier of a generated framework
  • KT-51665 FIR: implement label resolve for "typed this" case
  • KT-52361 Report warning on potentially empty intersection types

Performance Improvements

  • KT-47816 Disable script discovery for non-script environments
  • KT-48635 JVM IR: Double/Float values are boxed when comparing for equality in equals method of data/value classes
  • KT-23397 Optimize out field for property delegate when it's safe (JVM)

Fixes

  • KT-53272 Backend Internal error: Exception during IR lowering / No such value argument slot: 2
  • KT-53124 Receiver type mismatch when combining extension properties, type projections, Java sources, and F-bounded type-variables
  • KT-51868 JVM / IR: Inconsistent behaviour between lambda expression and SAM interface conversion for the same interface
  • KT-36770 Prohibit unsafe calls with expected @NotNull T and given Kotlin generic parameter with nullable bound
  • KT-52974 "IllegalStateException: Symbol with IrSimpleFunctionSymbolImpl is unbound" compiling native targets of MPP project
  • KT-53007 JVM: "Bad invokespecial instruction: current class isn't assignable to reference class" when call superclass of outer class method from inner class
  • KT-53019 K2: cannot cast callable reference to Function1 in runtime
  • KT-53031 K2 compiler crashes with IllegalStateException: No type in ProtoBuf.ValueParameter
  • KT-29168 Prohibit upper bounds violation with generic typealias using not all type parameters as arguments for underlying type in supertypes
  • KT-52432 Using the IDE compiled with K2 (useFir) throws VerifyError exception
  • KT-52327 False negative: TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM isn't reported
  • KT-49682 Support JVM IR in KAPT stub generation
  • KT-24643 Prohibit using a type parameter declared for an extension property inside delegate
  • KT-51972 FIR, Gradle: "Symbol is invisible" compilation error with enabled Kotlin Lombok compiler plugin
  • KT-52011 [FIR] All-open compiler plugin isn't supported
  • KT-51950 JVM IR: "IndexOutOfBoundsException: Cannot pop operand off an empty stack" with crossinline lambdas and interface delegation
  • KT-52540 Native: kotlin.NotImplementedError with Arrow library
  • KT-48031 "IllegalStateException: Type variable TypeVariable(T) should not be fixed!"
  • KT-47708 RequiresOptIn check does not flag experimental method usage in SAM lambda expressions
  • KT-52913 JVM / IR: "IllegalArgumentException: Inline class types should have the same representation" when trying to down cast cast a value class
  • KT-50771 IR partial linkage: Removed abstract callable members are not supported
  • KT-52994 Enable generic inline classes as experimental feature
  • KT-52742 CYCLE_IN_ANNOTATION_PARAMETER_ERROR false positive on annotations with default values
  • KT-52743 Non-null generic functions throws NPE when assigned to val
  • KT-52745 Frontend / K2: "IncompatibleClassChangeError: class A$B overrides final method A.length()I" caused by delegation in a sealed class
  • KT-52832 Tree-generator's method FirExpression::isFirType returns true and false for different field names; it should always be true
  • KT-52403 IncompatibleClassChangeError when inlining suspend funs
  • KT-50107 Missed USAGE_IS_NOT_INLINABLE diagnostic: Leaking inline lambda parameter through extension receiver
  • KT-47965 Missed USAGE_IS_NOT_INLINABLE diagnostic on inline lambda parameter usage as receiver of .let call
  • KT-25787 No error on crossinline usage of receiver parameter of functional type in an inline function
  • KT-52762 Frontend / K2: Named arguments for Java classes lead to "Cannot find a parameter with this name"
  • KT-52680 K2: overload resolution ambiguity if this is casted in a different method
  • KT-52676 K2: Unsupported compile-time value IrGetFieldImpl instead of IrConst in AnnotationCodegen for constant from Java
  • KT-50293 False positive: USELESS_CAST on stub types
  • KT-52175 WRONG_ANNOTATION_TARGET for annotation that used inside if
  • KT-52338 "IncompatibleClassChangeError: Expected non-static field" with Kotlin class with same-named companion object property as base Java class field
  • KT-49507 JVM: "IllegalAccessError: class X tried to access private field" with same-named Kotlin property and Java base class field
  • KT-44512 FIR DFA: incorrect smartcast after null assignment inside a lambda
  • KT-49200 FIR/FE 1.0: different behavior with multiple matching star imports
  • KT-52718 declaringClass deprecation message mentions the wrong replacement in 1.7
  • KT-52190 FIR2IR: Unexpected IrErrorTypeImpl type for put method inside buildMap
  • KT-52197 Incorrect inference of var type inside lambda that passed to extension function with type parameters that defined inside this lambda
  • KT-52057 Unsupported compile-time value STRING_CONCATENATION and GET_FIELD in annotation arguments
  • KT-47823 JVM IR: "IllegalArgumentException: Inline class types should have the same representation" with break usage in the loop range
  • KT-51883 Kotlin 1.6.20 generates "-" in type names around lambdas and inline extension function with reified type which breaks Apache Beam
  • KT-52684 Syntax error regression on complicated combination of LT and GTEQ
  • KT-52417 Reflection: Can't reflect on type parameters captured by SAM converted lambda
  • KT-46797 JVM IR: suspendImpl has no generic signature, breaking reified types in anonymous object supertypes when using the type token pattern
  • KT-51464 FIR: Unable to infer type in coroutines flow code
  • KT-52163 JVM IR: Double.compareTo(Int) compiled to integer comparison
  • KT-41980 FIR: erroneous scope during annotation resolve
  • KT-47159 KtPsiUtils.areParenthesesUseless() is returning a false positive on expressions for interface delegation
  • KT-51418 Substitute anonymous type's supertypes
  • [KT-35544](https://youtrack.jetbrains...
Read more

Kotlin 1.7.10

08 Jul 07:32

Choose a tag to compare

Changelog

Compiler

  • KT-52702 Invalid locals information when compiling kotlinx.collections.immutable with Kotlin 1.7.0-RC2
  • KT-52892 Disappeared specific builder inference resolution ambiguity errors
  • KT-52782 Appeared receiver type mismatch error due to ProperTypeInferenceConstraintsProcessing compiler feature
  • KT-52718 declaringClass deprecation message mentions the wrong replacement in 1.7

IDE. Configuration

  • KTIJ-21982 Cannot run/build anything with Kotlin plugin since last update

Tools. Gradle

  • KT-52777 'org.jetbrains.kotlinx:atomicfu:1.7.0' Gradle 7.0+ plugin variant was published with missing classes

Tools. Gradle. JS

  • KT-52856 Kotlin/JS: Upgrade NPM dependencies

Tools. Gradle. Multiplatform

  • KT-52955 SourceSetMetadataStorageForIde: Broken 'cleanupStaleEntries' with enabled configuration caching or isolated ClassLoaders
  • KT-52694 Kotlin 1.7.0 breaks Configuration Caching in Android projects

Tools. Incremental Compile

  • KT-52669 Full rebuild in IC exception recovery leaves corrupt IC data

Checksums

File Sha256
kotlin-compiler-1.7.10.zip 7683f5451ef308eb773a686ee7779a76a95ed8b143c69ac247937619d7ca3a09
kotlin-native-linux-x86_64-1.7.10.tar.gz b874373e87381b94c6a385178ea9594a5b4cfeb2fbae2bd89d3cb84c96bc3b96
kotlin-native-macos-x86_64-1.7.10.tar.gz 4e9470c25e0c6b3b79e86a59c7eca4d79c5a28ca515e80db93504535b2332a00
kotlin-native-macos-aarch64-1.7.10.tar.gz c02be577f541a5c73e1af75534006eea6e09cf67b3a886f323dae6f0406bcb3e
kotlin-native-windows-x86_64-1.7.10.zip 52c64c754a23da3d554d89beb9cdc322ffcb19b8d6f1e812e849e597d282b99d

Kotlin 1.7.0

09 Jun 12:59

Choose a tag to compare

Changelog

Analysis API. FIR

  • KT-50864 Analysis API: ISE: "KtCallElement should always resolve to a KtCallInfo" is thrown on call resolution inside plusAssign target
  • KT-50252 Analysis API: Implement FirModuleResolveStates for libraries
  • KT-50862 Analsysis API: do not create use site subsitution override symbols

Analysis API. FIR Low Level API

  • KT-50729 Type bound is not fully resolved
  • KT-50728 Lazy resolve of extension function from 'kotlin' package breaks over unresolved type
  • KT-50271 Analysis API: get rid of using FirRefWithValidityCheck

Backend. Native. Debug

  • KT-50558 K/N Debugger. Error is not displayed in variables view for catch block

Compiler

New Features

  • KT-26245 Add ability to specify generic type parameters as not-null
  • KT-45165 Remove JVM target version 1.6
  • KT-27435 Allow implementation by delegation to inlined value of inline class
  • KT-47939 Support method references to functional interface constructors
  • KT-50775 Support IR partial linkage in Kotlin/Native (disabled by default)
  • KT-51737 Kotlin/Native: Remove unnecessary safepoints on watchosArm32 and iosArm32 targets
  • KT-44249 NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER with type usage in higher order function

Performance Improvements

  • KT-48233 Switching to JVM IR backend increases compilation time by more than 15%
  • KT-51699 Kotlin/Native: runtime has no LTO in debug binaries
  • KT-34466 Use optimized switch over enum only when all entries are constant enum entry expressions
  • KT-50861 FIR: Combination of array set convention and plusAssign works exponentially
  • KT-47171 For loop doesn't avoid boxing with value class iterators (JVM)
  • KT-29199 'next' calls for iterators of merged primitive progressive values are not specialized
  • KT-50585 JVM IR: Array constructor loop should use IINC
  • KT-22429 Optimize 'for' loop code generation for reversed arrays
  • KT-50074 Performance regression in String-based 'when' with single equality clause
  • KT-22334 Compiler backend could generate smaller code for loops using range such as integer..array.size -1
  • KT-35272 Unnecessary null check on unsafe cast after not-null assertion operator
  • KT-27427 Optimize nullable check introduced with 'as' cast

Fixes

  • KT-46762 Finalize support for jspecify
  • KT-51499 @file:OptIn doesn't cover override methods
  • KT-52037 FIR: add error in 1.7.0 branch if run with non-compatible plugins
  • KT-46756 Release the K2/JVM compiler in Alpha
  • KT-49715 IR: "IllegalStateException: Function has no body: FUN name:toString" during IR lowering with shadowed extension inside interface
  • KT-45508 False negative ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED on a fake override with an abstract super class member
  • KT-28078 Report error "Public property exposes its private type" for primary constructor properties instead of warning
  • KT-49017 Forbid usages of super or super if in fact it accesses an abstract member
  • KT-38078 Prohibit calling methods from Any with "super" qualifier once they are overridden as abstract in superclass
  • KT-52363 Evaluate impact of qualified this behavior change warnings
  • KT-52561 JVM: Coroutine state machine loses value after a check-induced smart cast
  • KT-52311 java.lang.VerifyError: Bad type on operand stack
  • KT-41124 Inconsistency of exceptions at init block for an enum entry with and without a qualifier name
  • KT-46860 Make safe calls always nullable
  • KT-52503 New green code appeared at the callable reference resolution
  • KT-51925 Native: "IllegalStateException: Symbol for kotlinx.cinterop/CStructVar|null[0] is unbound" caused by inline function
  • KT-49317 "IllegalStateException: Parent of this declaration is not a class: FUN LOCAL_FUNCTION_FOR_LAMBDA" with parameter of suspend type with the default parameter
  • KT-51844 New errors in overload resolution involving vararg extension methods
  • KT-52006 "java.lang.Throwable: Unbalanced tree Exception" on indexing kotlin project
  • KT-51223 Report warning about conflicting inherited members from deserialized dependencies
  • KT-51439 FE 1.0: implement type variance conflict deprecation on qualifier type arguments
  • KT-51433 FE 1.0: implement warnings about label resolve changes
  • KT-51317 Regression in resolution of lambdas where expected type has an extension receiver parameter
  • KT-45935 JVM IR: Add not-null assertion for explicit definitely not-null parameters
  • KT-51818 "ClassCastException: class CoroutineSingletons cannot be cast to class" with suspendCoroutineUninterceptedOrReturn and coroutines
  • KT-51718 JVM / IR: "VerifyError: Bad type on operand stack" caused by nullable variable inside suspend function
  • KT-51927 Native: The symbol of unexpected type encountered during IR deserialization error when multiple libraries have non-conflicting declarations with the same name
  • KT-52394 JVM: Missing annotation on method with value class return type when a subclass is present in the same file in Kotlin 1.7.0-Beta
  • KT-51640 FIR: remove warning about "far from being production ready"
  • KT-45553 FIR: support hiding declaration from star import by as import
  • KT-52404 Prolong deprecation cycle for errors at contravariant usages of star projected argument from Java
  • KT-50734 TYPE_MISMATCH: NonNull parameter with a type of Nullable type argument causes compiler warning
  • KT-51235 JVM / IR: "AbstractMethodError: Receiver class does not define or inherit an implementation of the resolved method" when property with inline class type is overridden to return Nothing?
  • KT-48935 NI: Multiple generic parameter type constraints are not applied as expected when the parameter is of function type
  • KT-49661 NI: No TYPE_INFERENCE_UPPER_BOUND_VIOLATED when argument is inferred by return type
  • KT-50877 Inconsistent flexible type
  • KT-51988 "NPE: getContainingDeclaration…lDeclarationType.REGULAR) must not be null" when using @BuilderInference with multiple type arguments
  • KT-48890 Revert Opt-In restriction "Overriding methods can only have opt-in annotations that are present on their basic declarations."
  • KT-52035 FIR: add error in 1.7.0 branch if run on JS / Native configuration
  • KT-45461 NI: False negative TYPE_INFERENCE_UPPER_BOUND_VIOLATED when passing an argument to a function with generic constraints
  • KT-52146 JVM IR: "AssertionError: Primitive array expected" on vararg of SAM types with self-type and star projection
  • KT-50730 Implement error for a super clas...
Read more

Kotlin 1.7.0-RC2

01 Jun 13:54

Choose a tag to compare

Kotlin 1.7.0-RC2 Pre-release
Pre-release

Changelog

Compiler

  • KT-52311 java.lang.VerifyError: Bad type on operand stack
  • KT-52503 New green code appeared at the callable reference resolution

JavaScript

  • KT-52518 Kotlin/JS IR: project with 1.6.21 fails to consume library built with 1.7.0-RC: ISE "Unexpected IrType kind: KIND_NOT_SET" at IrDeclarationDeserializer.deserializeIrTypeData()

Tools. CLI

  • KT-52409 Report error when use-k2 with Multiplatform

Tools. Gradle

  • KT-52509 Main variant published to Gradle plugin portal uses unshadowed artifact
  • KT-52392 Gradle: 1.7.0 does not support custom gradle build configuration on Windows OS

Tools. Kapt

  • KT-52284 FIR: add error in 1.7.0 branch if run with Kapt

Checksums

File Sha256
kotlin-compiler-1.7.0-RC2.zip 264b86c9d91d15a6eba0b720d759861adaab886ce37ae2dc8081af634eefba71
kotlin-native-linux-x86_64-1.7.0-RC2.tar.gz 650812727f1ce1c585d109e9435872ffa89316714ecde472cdf0927d5efc4a1c
kotlin-native-macos-x86_64-1.7.0-RC2.tar.gz c4bfc7332ccd2ea952a201f489d1ff57fa0b2ae93dccac5a2459c545e5655cf3
kotlin-native-macos-aarch64-1.7.0-RC2.tar.gz 753e0ea090bc190eb63f6caf4bacf69817253aaa0d2f4eb6e7e79267a3041cb6
kotlin-native-windows-x86_64-1.7.0-RC2.zip 58c824f3e0fdbd358584b87745d918518513ab83b5e0c67ca072f5402477946e

Kotlin 1.7.0-RC

20 May 08:44

Choose a tag to compare

Kotlin 1.7.0-RC Pre-release
Pre-release

Changelog

Compiler

  • KT-51640 FIR: remove warning about "far from being production ready"
  • KT-52404 Prolong deprecation cycle for errors at contravariant usages of star projected argument from Java
  • KT-51844 New errors in overload resolution involving vararg extension methods
  • KT-50877 Inconsistent flexible type
  • KT-51988 "NPE: getContainingDeclaration…lDeclarationType.REGULAR) must not be null" when using @BuilderInference with multiple type arguments
  • KT-51925 Native: "IllegalStateException: Symbol for kotlinx.cinterop/CStructVar|null[0] is unbound" caused by inline function
  • KT-52035 FIR: add error in 1.7.0 branch if run on JS / Native configuration
  • KT-52037 FIR: add error in 1.7.0 branch if run with non-compatible plugins

JavaScript

  • KT-52144 KJS / IR: Missing property definitions for interfaced defined properties
  • KT-51973 KJS / IR overridden properties of inherited interface missing

Native. Platforms

  • KT-52232 Kotlin/Native: simplify toolchain dependency override for MinGW

Native. Runtime

  • KT-52365 Kotlin/Native fails to compile projects for 32-bit targets when new memory manager is enabled

Tools. Commonizer

  • KT-51224 MPP: For optimistically commonized numbers missed kotlinx.cinterop.UnsafeNumber
  • KT-51215 MPP: Update Kdoc description for kotlinx.cinterop.UnsafeNumber

Tools. Gradle

  • KT-52187 New IC can not be enabled in an Android project using kapt
  • KT-51898 Upgrading Kotlin/Kotlin Gradle plugin to 1.5.3 and above breaks 'com.android.asset-pack' plugin
  • KT-51913 Gradle plugin should not add attributes to the legacy configurations
  • KT-52313 No recompilation in Gradle after adding or removing function parameters, removing functions (and maybe more) in dependent modules
  • KT-52141 Optimize Java class snapshotting for the kotlin.incremental.useClasspathSnapshot feature
  • KT-51978 Optimize classpath snapshot cache for the kotlin.incremental.useClasspathSnapshot feature
  • KT-51415 Confusing build failure reason is displayed in case kapt is used and different JDKs are used for compileKotlin and compileJava tasks

Tools. Gradle. Cocoapods

  • KT-51861 Custom binary name in CocoaPods plugin isn't respected by fatFramework task

Tools. Gradle. JS

  • KT-51895 K/JS: Redundant technical messages during JS tests

Tools. Gradle. Multiplatform

  • KT-51947 Mark HMPP tasks as notCompatibleWithConfigurationCache for Gradle 7.4 using Reflection

Tools. Kapt

  • KT-51463 KAPT: Incremental compilation not working when rerunning unit tests

Tools. Scripts

  • KT-49173 Add support for nullable types in provided properties and other configuration-defined declarations
  • KT-51213 Kotlin JSR223 crashes with "ScriptException: ERROR java.lang.NullPointerException:" if bindings contain one or more null values
  • KT-48812 Script: "IllegalStateException: unknown classifier kind SCRIPT" when passing a function reference to a Flow
  • KT-50902 Scripts loaded from the compilation cache ignore the loadDependencies eval configuration property

Checksums

File Sha256
kotlin-compiler-1.7.0-RC.zip d972048a5f36902a4a6fdaaa177c49369a0e7041795a5c7930d22677c274fa76
kotlin-native-linux-x86_64-1.7.0-RC.tar.gz 070810e586d7211aedcc0194b9cdd9260e07d794caec6c6d37ba6ce91706908e
kotlin-native-macos-x86_64-1.7.0-RC.tar.gz ac62923ed577c5c7f777490f486b8b03979c41cb0964b05883e878d56d0cc6c6
kotlin-native-macos-aarch64-1.7.0-RC.tar.gz caba10128994de0da58c670429960b5882d1d13756ef2e6254a6886bd5b6a0c7
kotlin-native-windows-x86_64-1.7.0-RC.zip 3d23ffe9b9d5d61e7592e003e7a16de97e4e4fcf37ffb06280db2d9f8522ef58

Kotlin 1.7.0-Beta

05 May 12:32
01a24fd

Choose a tag to compare

Kotlin 1.7.0-Beta Pre-release
Pre-release

Changelog

Analysis API. FIR

  • KT-50864 Analysis API: ISE: "KtCallElement should always resolve to a KtCallInfo" is thrown on call resolution inside plusAssign target
  • KT-50252 Analysis API: Implement FirModuleResolveStates for libraries
  • KT-50862 Analsysis API: do not create use site subsitution override symbols

Analysis API. FIR Low Level API

  • KT-50729 Type bound is not fully resolved
  • KT-50728 Lazy resolve of extension function from 'kotlin' package breaks over unresolved type
  • KT-50271 Analysis API: get rid of using FirRefWithValidityCheck

Backend. Native. Debug

  • KT-50558 K/N Debugger. Error is not displayed in variables view for catch block

Compiler

New Features

  • KT-45165 Remove JVM target version 1.6
  • KT-51737 Kotlin/Native: Remove unnecessary safepoints on watchosArm32 and iosArm32 targets

Performance Improvements

  • KT-51699 Kotlin/Native: runtime has no LTO in debug binaries
  • KT-34466 Use optimized switch over enum only when all entries are constant enum entry expressions
  • KT-50861 FIR: Combination of array set convention and plusAssign works exponentially
  • KT-47171 For loop doesn't avoid boxing with value class iterators (JVM)
  • KT-29199 'next' calls for iterators of merged primitive progressive values are not specialized
  • KT-50585 JVM IR: Array constructor loop should use IINC
  • KT-22429 Optimize 'for' loop code generation for reversed arrays
  • KT-50074 Performance regression in String-based 'when' with single equality clause
  • KT-22334 Compiler backend could generate smaller code for loops using range such as integer..array.size -1
  • KT-35272 Unnecessary null check on unsafe cast after not-null assertion operator
  • KT-27427 Optimize nullable check introduced with 'as' cast

Fixes

  • KT-51433 FE 1.0: implement warnings about label resolve changes
  • KT-52146 JVM IR: "AssertionError: Primitive array expected" on vararg of SAM types with self-type and star projection
  • KT-51818 "ClassCastException: class CoroutineSingletons cannot be cast to class" with suspendCoroutineUninterceptedOrReturn and coroutines
  • KT-50730 Implement error for a super class constructor call on a function interface in supertypes list
  • KT-52040 JVM: ClassFormatError Illegal method name "expectFailure$__proxy-0"
  • KT-51927 Native: The symbol of unexpected type encountered during IR deserialization error when multiple libraries have non-conflicting declarations with the same name
  • KT-50845 Postpone rxjava errors reporting in the strict mode till 1.8 due to found broken cases
  • KT-48890 Revert Opt-In restriction "Overriding methods can only have opt-in annotations that are present on their basic declarations."
  • KT-51979 "AssertionError: No modifier list, but modifier has been found by the analyzer" exception on incorrect Java interface override
  • KT-50378 Unresolved reference for method in Jsoup library in a kts script file
  • KT-34919 "Visibility is unknown yet" when named parameter in a function type used in a typealias implemented by an abstract class
  • KT-51893 Duplicated [OVERRIDE_DEPRECATION] on overridden properties
  • KT-41034 K2: Change evaluation semantics for combination of safe calls and convention operators
  • KT-51843 Functional interface constructor references are incorrectly allowed in 1.6.20 without any compiler flags
  • KT-51914 False positive RETURN_TYPE_MISMATCH in intellij ultimate
  • KT-51711 Compiler warning is displayed in case there is 'if' else branch used with elvis
  • KT-49317 "IllegalStateException: Parent of this declaration is not a class: FUN LOCAL_FUNCTION_FOR_LAMBDA" with parameter of suspend type with the default parameter
  • KT-33517 Kotlin ScriptEngine does not respect async code when using bindings
  • KT-44705 Deprecate using non-exhaustive if's and when's in rhs of elvis
  • KT-44510 FIR DFA: smartcast after elvis with escaping lambda
  • KT-44879 FIR DFA: Track inc and dec operator calls in preliminary loop visitor
  • KT-51624 FIR: false-positive INAPPLICABLE_LATEINIT_MODIFIER for lateinit properties with unresolved types
  • KT-51204 FIR IC: Incremental compilation fails on nested crossinline
  • KT-51798 Fix ISE from IR backend when data class inherits equals/hashCode/toString with incompatible signature
  • KT-51499 @file:OptIn doesn't cover override methods
  • KT-46187 FIR: OVERLOAD_RESOLUTION_AMBIGUITY on SAM-converted callable reference to List::plus
  • KT-49778 Support cast to DefinitelyNotNull type in Native
  • KT-51718 JVM / IR: "VerifyError: Bad type on operand stack" caused by nullable variable inside suspend function
  • KT-34515 NI: "AssertionError: Base expression was not processed: POSTFIX_EXPRESSION" with double not-null assertion to brackets
  • KT-48546 PSI2IR: "org.jetbrains.kotlin.psi2ir.generators.ErrorExpressionException: null: KtCallExpression" with recursive property access in lazy block
  • KT-28109 "AssertionError: No setter call" for incrementing parenthesized result of indexed access convention operator
  • KT-46136 Unsubstituted return type inferred for a function returning anonymous object upcast to supertype
  • KT-51621 FIR: visible VS invisible qualifier conflict
  • KT-50468 FIR compilers fails with CCE when meets top-level destruction
  • KT-51557 Inline stack frame is not shown for default inline lambda
  • KT-51358 OptIn: show default warning/error message in case of empty message argument
  • KT-44152 FIR2IR fails on declarations from java stdlib if java classes are loaded from PSI instead of binaries
  • KT-50949 PSI2IR: NSEE from ArgumentsGenerationUtilsKt.createFunctionForSuspendConversion with providing lambda as argument with suspend type
  • KT-51439 FE 1.0: implement type variance conflict deprecation on qualifier type arguments
  • KT-39256 ArrayStoreException with list of anonymous objects with inferred types created in reified extension function
  • KT-39883 Deprecate computing constant values of complex boolean expressions in when condition branches and conditions of loops
  • KT-36952 Exception during codegen: cannot pop operand off an empty stack (reference equality, implicit boxing, type check)
  • KT-51233 AssertionError in JavaLikeCounterLoopBuilder with Compose
  • KT-51254 Verify Error on passing null to type parameter extending inline class
  • KT-50996 [FIR] Support Int -> Long conversion for property initializers
  • KT-51000 [FIR] Support Int -> Long? conversion
  • KT-51003 [FIR] Consider Int -> Long conversion if expected type is type variable
  • [KT-51018](https://youtrack.j...
Read more