CHANGELOG
1.5.32
Tools. Gradle. Multiplatform
KT-49798 [MPP] [Android] AGP 7.1.0+ android target publications leak ‘AgpVersionAttr’ attribute
1.5.31
Compiler
Fixes
KT-48659 JVM / IR: Referential equality returns true for different instancesKT-48613 Kotlin/Native fails to compile debug binaries for watchosArm64 targetKT-48316 “No value passed for parameter” regression with Java annotation default values with JSR-305KT-48343 Mistake in an error message for uninferred type variable without unrestricted builder inferenceKT-48543 Native compiler crashes because of bridges for $default stubsKT-48349 OptIn markers are forbidden on local variable / value parameter / property getter only in presence of explicit Target annotationKT-48295 JVM / IR: VerifyError: Bad access to protected data in getfieldKT-48551 JVM / IR: “IllegalStateException: Inline class has no primary constructor” caused by inline class from one module and fun interface from anotherKT-47917 JVM: “UTF8 string too large” caused by a big stringKT-48440 JVM IR: Missing checkcast in generated bytecode causes VerifyError in Kotlin 1.5.30KT-48361 INTEGER_OPERATOR_RESOLVE_WILL_CHANGE is not reported in some positionsKT-48267 JVM IR: CCE on callable reference to Array constructor passed to inline function
IDE
KTIJ-15744 Reopening build.gradle.kts-based project reports MISSING_SCRIPT_BASE_CLASS KotlinBuildScript until re-importKTIJ-19005 JDK 17: “PermittedSubclasses requires ASM9” exception multiple times per second during analysisKTIJ-19504 IDE highlighting: Kotlin plugin 1.5.30 started showing some valid classes from multiplatform libraries as not existing
Native
KT-48591 Kotlin/Native: Char.isHighSurrogate and Char.isLowSurrogate return wrong result for macosArm64 and iosArm64 with compiler cache enabledKT-48491 CInterop broke in Kotlin 1.5.30
1.5.30
Backend. Native. Debug
KT-47405 Incorrect path from inlined method in stacktrace on iOS-simulator ARM64KT-47408 Incorrect line number of inlined method on iOS-simulator ARM64
Compiler
New Features
KT-44261 Support RxJava 3 nullability annotationsKT-32443 Experimental declarations should be contagious even when they are not explicitly usedKT-45844 Forbid using experimental markers on override declarationsKT-45845 Forbid using experimental markers on getterKT-46644 Resolve overrides for IrProperty on deserializationKT-46967 Support class type parameters annotations in FIRKT-47402 Native: optimize access to object declarations that have only const vals and no init blocksKT-47709 Make when statements with enum, sealed, and Boolean subjects exhaustive by defaultKT-47699 Support programmatic creation of class annotations and corresponding feature flag on JVM
Performance Improvements
KT-45103 Direct invoke optimizationKT-47785 Compilation time increased when trying to compile AssertJ DB expression in 1.5.21
Fixes
KT-48361 INTEGER_OPERATOR_RESOLVE_WILL_CHANGE is not reported in some positionsKT-48180 JVM / IR: AssertionError: “Lambda with offset already exists” caused by calling inline function with default lambda parameterKT-47328 JVM / IR: NoSuchFieldError with missing CHECKCASTKT-48172 “IllegalStateException: Cannot serialize error type: [ERROR : ]” in 1.5.21 with java kotlin interopKT-48230 JVM IR: CCE for multiple receivers caseKT-48262 “Inconsistent type” with JSpecify @NullMarkedKT-48167 JVM / IR: If Map#entrySet is implemented in an interface, Kotlin compiler generates incorrect code for its implementationKT-47988 JVM / IR: “VerifyError: Bad type on operand stack” when invoking apply with a local method referenceKT-48163 JVM / IR: “VerifyError: Bad type on operand stack” when throwing result of smartcastKT-47833 False positive "Type argument is not within its bounds " with upcasting in 1.5.30-M1KT-47830 Some code doesn't compile with unrestricted builder inferenceKT-39883 Deprecate computing constant values if complex boolean expressions in when condition branches and conditions of loopsKT-47037 Eliminate builder inference restrictionsKT-46726 IR + BuilderInference: AssertionError: Unbound private symbol on usage of this in a BuilderInference lambdaKT-43855 Support gradual introduction of new nullability annotationsKT-43142 FIR: Check UPPER_BOUND_VIOLATED for type alias constructors properlyKT-45228 Leaking builder inference type variables though callable referencesKT-42270 NI: NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER for BuilderInference with extension functionsKT-46029 JVM / IR: “Unbound private symbol: ” when trying to save SequenceScope in propertyKT-45258 Wrong CST between types which contain stub typeKT-45224 Type safety problem through leaking of the builder inference scopeKT-22852 Report diagnostics on implicit usages of experimental APIKT-22941 Experimental marker annotation with SOURCE retention is compiled without errorKT-24993 Inference for buildSequence/yield doesn't work for labeled lambdasKT-31728 Incorrect EXPERIMENTAL_OVERRIDE_ERROR for override of experimental function in anonymous objectKT-33364 Kotlin/Native debugger: execution stops only at next line for breakpoint at when expression without parameterKT-42139 NI: NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER for emptyList / listOf (with no arguments) / emptyMap / mapOf (with no arguments) inside if block inside sequence blockKT-44241 NI: BuilderInference regressionKT-44372 FIR: KClass::java cannot be resolved as callable referenceKT-44547 Native: wrong RTTI when overriding functions with equal signatures but different type argumentsKT-44571 Segfault on unnecessary int unboxingKT-45083 Problem with property reference in builder inferenceKT-45315 Deprecate (V)::a reference resolution to companion in FE 1.0KT-46393 AE: “1 trailing arguments were found in Any type” for private function with implicit anonymous return type inside generic classKT-46661 FIR: Investigate inference issue with self-types and star projectionKT-46775 [Native] [IR] Support multiple suspend lambdas as class supertypesKT-46836 Error: Invalid LLVM module on inlineClasses external testsKT-46838 NullPointerException: Parameter specified as non-null is null in CollectionsKt.joinToString()KT-46896 Native IR: NPE when using irBuiltIns.suspendFunctionKT-46996 FIR: INFERENCE_NO_INFORMATION_FOR_PARAMETER on type aliases with non-trivial expansionsKT-47034 KtValueArgument.getArgumentExpression could lead to StubBasedPsiElementBase.notBoundInExistingAstKT-47052 BuilderInference case with flatMapTo doesn't work properlyKT-47082 Stub type variable is leaked (reproduces with K/N during deserialization)KT-47143 ClassicTypeSystemContext couldn't handle: Captured(*) in Kotlin 1.5.0KT-47148 Type mismatch: inferred type is Any? but T? was expectedKT-47180 Forbid using OptIn markers on local variable, value parameter or fieldKT-47181 Forbid using OptIn markers on types or type parametersKT-47183 Segfault on int unboxingKT-47208 Backend Internal error: Exception during IR lowering: assert at IrOverridingUtilKt.buildFakeOverrideMemberKT-47276 Nullability annotations without target are ignored if type enhancement improvements are enabledKT-47450 StackOverflowException in psi2ir with many chained binary expressionsKT-47462 K/N: AssertionError: Unbound private symbol org.jetbrains.kotlin.ir.symbols.impl.IrClassSymbolImpl@6cb748db (NON-PUBLIC API): deserialized class CompanionKT-47941 “IllegalStateException: Expected some types” on a call with several excepted type constraintsKT-47854 “IllegalArgumentException: Type is inconsistent” with Android's @Nullable annotation starting in Kotlin 1.5.20KT-47899 “AssertionError: Intersection type should not be marked nullable” with 1.5.21KT-47846 Stack overflow when handling enhanced recursive type parameterKT-47747 Introduce specific error for calls which could be resolved only with unrestricted builder inferenceKT-47739 JVM / IR: NoSuchFieldError with generic sealed classesKT-47422 -Xjspecify-annotations: If a class has a @Nullable type-parameter bound, Kotlin should still treat some users' type arguments as platform typesKT-47437 Type inference failure with raw types under -Xjspecify-annotations=strictKT-47396 <?> in @NullMarked code should permit nullable typesKT-47729 False positive INTEGER_OPERATOR_RESOLVE_WILL_CHANGE warning: “expression will be resolved to Int in future releases”KT-47333 Xcode 13: Compilation for iOS simulator failsKT-47772 False negative WRONG_ANNOTATION_TARGET on type argument to function callKT-47467 JVM / IR: “AssertionError: Annotation class expected: deserialized class Array” caused by java annotation as a parameter of another annotationKT-47744 UninitializedPropertyAccessException compiler exception on nested builder inference callsKT-47724 Type inference: False positive “Returning type parameter has been inferred to Nothing implicitly”KT-47660 JVM / IR: Mockito verification fails when named parameters are ordered differentlyKT-47589 Using RequiresOptIn annotation on constructor property results in error even if the annotation has no VALUE_PARAMETER target
Docs & Examples
KT-47649 Important note about KJS IR compiler and stdlib compatibility in 1.5.30
IDE
KT-44643 ISE: Could not generate LightClass for some declared in on initialisation by lazy in a JVM module of a multiplatform projectKT-47947 Add language version 1.6 to the compiler configuration preferences
IDE. Gradle Integration
KT-47163 KJS / Gradle: Could not resolve <artifact> despite being resolvable & project buildable
IDE. JS
KT-46548 KJS: Create an IDE plugin to help with migration to and keeping compatibility with JS IR BEKT-47557 KJS: With NPM dependency IDEA import fails when performed before Gradle build
JavaScript
KT-46204 KJS / IR: Support SuspendFunctionN as super typeKT-38363 JS IR BE: support IC for loweringsKT-41651 JS IR BE: DCE removes render method from react components passed to the kotlinx.reactKT-46520 KJS / IR: ISE “Can't find name for declaration FUN name:CharArray_init_$Create$” on callable reference to Array constructorKT-45738 KJS / IR: Wrong generated code for when statementKT-46551 KJS / IR: Add a basic sourcemap generation
Libraries
KT-47477 Could not resolve kotlin-test during project import in case of multiplatform with only JVM target platformKT-47675 Converting Double to Duration may expose inexactnessKT-47419 Remove method of the MapBuilder iterator throws IOOBE instead of IllegalStateExceptionKT-47211 Kotlin Native - AbstractMutableList.addAll (with index) does not throw IndexOutOfBoundsException if elements is emptyKT-23351 Regex.splitToSequence, CharSequence.splitToSequence(Regex)KT-42851 kotlin.time.Duration toString() shows wrong result for secondsKT-45325 Parsing Duration from StringKT-34021 Regex.matchAt / matchesAt
Native
KT-35001 warning: linking module flags ‘SDK Version’: IDs have conflicting values (‘[2 x i32] [i32 13, i32 2]’KT-43475 Kotlin/Native compiler: Including a static C library increased cross-compilation time from 3.5minutes to 1 hour 40 minutesKT-44148 Escape analysis failure: Heap space out of memory
Native. C and ObjC Import
KT-46711 platform.windows._LARGE_INTEGER cannot be passed by value
Native. ObjC Export
KT-43780 Improve Swift/Obj-C ergonomics for object and companion objectKT-46431 KMP accessing a property of an anonymous inner class that inherits from an abstract class causes a ‘NSGenericException’, reason: ‘[Shared_kobjcc0 ] is abstract’ exception.KT-47042 Kotlin/Native: Concurrency Interoperability with Objective-C (Swift 5.5)
Native. Stdlib
KT-47915 Kotlin/Native: Provide access to test cases generated by the compiler
Native. Platforms
KT-44321 Support Apple Silicon without Rosetta 2
Reflection
KT-18277 InvalidProtocolBufferException: Stream closed on multithreaded access to built-ins data in reflectionKT-44977 Reflection: ClassCastException caused by annotations with “AnnotationTarget.TYPE” usage on array attributes accessKT-47650 KClass::nestedClasses throws ClassCastException for script classes with type aliases
Tools. CLI
KT-47623 Deprecate -Xuse-experimentalKT-30778 kotlin-compiler.jar contains shaded but not relocated kotlinx.coroutinesKT-40979 CLI: Executing “kotlinc.bat” at a root path, errors are not reported with a correct filepathKT-40994 CLI: Add documentation for -J argument in kotlinc -helpKT-46764 CLI: Java record defined in a single file root is not resolved
Tools. Commonizer
KT-47433 [Commonizer] Commonize functions/properties with TA/Class types in signatureKT-47691 [Commonizer] Commonize var and val propertiesKT-47434 [Commonizer] Commonize parameterized (type-alias + class) typesKT-47432 [Commonizer] Commonize (type-alias + class) types used in functionsKT-45992 [Commonizer] Allow commonization of TypeAlias and Class with same nameKT-46716 [Commonizer] Analyze leaf source sets with original platform librariesKT-46957 [Commonizer] Unresolved classifier: platform/posix/ptrdiff_t for linuxMips32KT-47133 Forbid cinterop commonization with hierarchical commonization turned offKT-47301 [Commonizer] Associative commonization
Tools. Compiler Plugins
KT-46723 Kotlin Lombok: JPS: config file is searched in directory relative to compiler daemonKT-46739 @SerialInfo NPE with default parameter
Tools. Daemon
KT-47152 Incremental Compilation with Kotlin compile daemon and JDK 17 fails with IllegalAccessException
Tools. Gradle
New Features
KT-45757 Add an easier way to explicitly set Kotlin daemon jvm arguments
Fixes
KT-47940 Kotlin JVM toolchain breaks configuration cacheKT-46626 kotlin-android plugin with kotlin-dsl: Extension with name ‘android’ does not exist. Currently registered extension names: [ext, kotlin, kotlinTestRegistry]KT-47754 “‘compileDebugUnitTestJavaWithJavac’ task (current target is 1.8)” during build android project without specified target and with jvmToolchain = JDK 11KT-47520 Kotlin and Java target compatibility check produces false positive on using Gradle toolchainsKT-46978 Duplicate resource errors on gradle 7 with multi-module multiplatform project with withJavaKT-27687 Empty directories in source set causes gradle cache miss for KotlinCompile taskKT-47635 Kotlin version conflict on using ‘noarg’ Gradle pluginKT-47636 Kotlin version conflict on using ‘sam-with-receiver’ Gradle pluginKT-47354 Kotlin version conflict on using ‘allopen’ Gradle pluginKT-45202 Kapt crashes with java.io.UTFDataFormatExceptionKT-13258 Kotlin compiler doesn‘t respect Gradle’s “sourceCompatibility” and “targetCompatibility”KT-43095 Add support for Java Toolchain to the Gradle pluginKT-45611 KGP should declare JDK version as inputKT-47185 Migrate Gradle Integration tests to use cache redirectorKT-48226 Kotlin toolchain does not set ‘jvmTarget’ for Kotlin tasks on configuration cache reuseKT-44279 Kotlin-Android Gradle Plugin (KGP) should react to application of AGP rather than assume it was applied firstKT-44041 PersistentEnumeratorBase$CorruptedException: PersistentEnumerator storage corrupted
Tools. Gradle. JS
KT-47436 KJS / IR: Compiler plugins not provided to link taskKT-46693 KJS: Update node.js version used inside gradle to latest 14.xKT-47559 KJS / Gradle: Run task created using eager API and breaks task configuration avoidanceKT-47176 KJS: Actualize NPM dependenciesKT-47154 KJS / Gradle: Compile task reads dependencies metadata from filesystem too long on large projectsKT-47114 KJS / IR: Could not resolve coroutines-core-jsKT-43379 KJS / Gradle: On windows, an invalid regex is generated for Webpack ProgressPlugin
Tools. Gradle. Multiplatform
KT-47210 [Commonizer] Avoid commonization of test source set hierarchy if possibleKT-46279 [Commonizer] Gradle 7.0 will emit warning for metadata compilation in multimodule buildsKT-47126 ios() target shortcuts should not include Apple Silicon by defaultKT-38111 Gradle DSL: rename useExperimentalAnnotation functionKT-47126 ios() target shortcuts should not include Apple Silicon by defaultKT-47612 Task :buildKotlinToolingMetadata is incompatible with Gradle configuration cacheKT-47611 Task :generateMetadataFileForKotlinMultiplatformPublication is incompatible with Gradle configuration cache
Tools. Gradle. Native
KT-42023 Kotlin Native Cocoapods plugin fails when Xcode project has custom CONFIGURATION namesKT-47653 Support multi arch build via embedAndSign taskKT-47078 Support Apple Silicon in cocoapods gradle pluginKT-47077 Support Apple Silicon in embedAndSign task
Tools. Incremental Compile
KT-27660 JS Incremental compilation fails with java.io.IOException: java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0KT-36865 IC: “ArrayIndexOutOfBoundsException: Array index out of range: 0”KT-35532 Incremental compilation often fails on @JVMMultifileClassKT-19806 IncrementalPackagePartProvider cache corruption causes frontend exception
Tools. JPS
KT-47753 JPS: “IndexOutOfBoundsException: Index 0 out of bounds for length 0”: Rebuild triggered due to IOOBE in kotlin.incremental.LookupStorage.<init>KT-46804 Slow Kotlin incremental build: LookupStorage operationsKT-45763 Failing tests in KotlinIDE
Tools. Maven
KT-45689 JDK-16: kotlin-maven-plugin fails with IllegalAccessError: class com.intellij.util.io.FileChannelUtil when using incremental compilation
Tools. Scripts
KT-43917 Gradle dependency conflict with resolutionStrategy failOnVersionConflict and kotlin 1.4KT-46646 Scripts: ArrayIndexOutOfBoundsException on an empty script running
Tools. REPL
KT-47783 REPL: Keywords completion appears after numeric and string literals
Tools. kapt
KT-47583 KaptJavaLog fails on Java 17 due to removed constructor in com.sun.tools.javac.util.LogKT-47347 KAPT: Stub generation in Gradle cache is not consistently relocatableKT-46651 KAPT: “Source file or directory not found” - kaptGenerateStubsDebugKotlin task does not track source files properly with configuration cache enabled
1.5.30-RC
Backend. Native. Debug
KT-47405 Incorrect path from inlined method in stacktrace on iOS-simulator ARM64KT-47408 Incorrect line number of inlined method on iOS-simulator ARM64
Compiler
New Features
KT-47709 Make when statements with enum, sealed, and Boolean subjects exhaustive by defaultKT-47699 Support programmatic creation of class annotations and corresponding feature flag on JVM
Performance Improvements
KT-47785 Compilation time increased when trying to compile AssertJ DB expression in 1.5.21
Fixes
KT-47941 “IllegalStateException: Expected some types” on a call with several excepted type constraintsKT-47854 “IllegalArgumentException: Type is inconsistent” with Android's @Nullable annotation starting in Kotlin 1.5.20KT-47899 “AssertionError: Intersection type should not be marked nullable” with 1.5.21KT-47846 Stack overflow when handling enhanced recursive type parameterKT-47747 Introduce specific error for calls which could be resolved only with unrestricted builder inferenceKT-47739 JVM / IR: NoSuchFieldError with generic sealed classesKT-47422 -Xjspecify-annotations: If a class has a @Nullable type-parameter bound, Kotlin should still treat some users' type arguments as platform typesKT-47437 Type inference failure with raw types under -Xjspecify-annotations=strictKT-47396 <?> in @NullMarked code should permit nullable typesKT-47729 False positive INTEGER_OPERATOR_RESOLVE_WILL_CHANGE warning: “expression will be resolved to Int in future releases”KT-47333 Xcode 13: Compilation for iOS simulator failsKT-47772 False negative WRONG_ANNOTATION_TARGET on type argument to function callKT-47467 JVM / IR: “AssertionError: Annotation class expected: deserialized class Array” caused by java annotation as a parameter of another annotationKT-47744 UninitializedPropertyAccessException compiler exception on nested builder inference callsKT-47724 Type inference: False positive “Returning type parameter has been inferred to Nothing implicitly”KT-47660 JVM / IR: Mockito verification fails when named parameters are ordered differentlyKT-47589 Using RequiresOptIn annotation on constructor property results in error even if the annotation has no VALUE_PARAMETER target
IDE
KT-47947 Add language version 1.6 to the compiler configuration preferences
Libraries
KT-23351 Regex.splitToSequence, CharSequence.splitToSequence(Regex)KT-42851 kotlin.time.Duration toString() shows wrong result for secondsKT-45325 Parsing Duration from StringKT-34021 Regex.matchAt / matchesAt
Native. Stdlib
KT-47915 Kotlin/Native: Provide access to test cases generated by the compiler
Reflection
KT-47650 KClass::nestedClasses throws ClassCastException for script classes with type aliases
Tools. CLI
KT-47623 Deprecate -Xuse-experimentalKT-30778 kotlin-compiler.jar contains shaded but not relocated kotlinx.coroutines
Tools. Commonizer
KT-47433 [Commonizer] Commonize functions/properties with TA/Class types in signatureKT-47691 [Commonizer] Commonize var and val propertiesKT-47434 [Commonizer] Commonize parameterized (type-alias + class) typesKT-47432 [Commonizer] Commonize (type-alias + class) types used in functions
Tools. Daemon
KT-47152 Incremental Compilation with Kotlin compile daemon and JDK 17 fails with IllegalAccessException
Tools. Gradle
New Features
KT-45757 Add an easier way to explicitly set Kotlin daemon jvm arguments
Fixes
KT-47940 Kotlin JVM toolchain breaks configuration cacheKT-46626 kotlin-android plugin with kotlin-dsl: Extension with name ‘android’ does not exist. Currently registered extension names: [ext, kotlin, kotlinTestRegistry]KT-47754 “‘compileDebugUnitTestJavaWithJavac’ task (current target is 1.8)” during build android project without specified target and with jvmToolchain = JDK 11KT-47520 Kotlin and Java target compatibility check produces false positive on using Gradle toolchainsKT-46978 Duplicate resource errors on gradle 7 with multi-module multiplatform project with withJavaKT-27687 Empty directories in source set causes gradle cache miss for KotlinCompile taskKT-47635 Kotlin version conflict on using ‘noarg’ Gradle pluginKT-47636 Kotlin version conflict on using ‘sam-with-receiver’ Gradle pluginKT-47354 Kotlin version conflict on using ‘allopen’ Gradle pluginKT-45202 Kapt crashes with java.io.UTFDataFormatException
Tools. Gradle. JS
KT-47559 KJS / Gradle: Run task created using eager API and breaks task configuration avoidance
Tools. Gradle. Multiplatform
KT-38111 Gradle DSL: rename useExperimentalAnnotation functionKT-47612 Task :buildKotlinToolingMetadata is incompatible with Gradle configuration cacheKT-47611 Task :generateMetadataFileForKotlinMultiplatformPublication is incompatible with Gradle configuration cache
Tools. Gradle. Native
KT-47653 Support multi arch build via embedAndSign taskKT-47078 Support Apple Silicon in cocoapods gradle pluginKT-47077 Support Apple Silicon in embedAndSign task
Tools. Maven
KT-45689 JDK-16: kotlin-maven-plugin fails with IllegalAccessError: class com.intellij.util.io.FileChannelUtil when using incremental compilation
Tools. Scripts
KT-43917 Gradle dependency conflict with resolutionStrategy failOnVersionConflict and kotlin 1.4
1.5.30-M1
Compiler
New Features
KT-32443 Experimental declarations should be contagious even when they are not explicitly usedKT-45844 Forbid using experimental markers on override declarationsKT-45845 Forbid using experimental markers on getterKT-46644 Resolve overrides for IrProperty on deserializationKT-46967 Support class type parameters annotations in FIRKT-47402 Native: optimize access to object declarations that have only const vals and no init blocks
Fixes
KT-22852 Report diagnostics on implicit usages of experimental APIKT-22941 Experimental marker annotation with SOURCE retention is compiled without errorKT-24993 Inference for buildSequence/yield doesn't work for labeled lambdasKT-31728 Incorrect EXPERIMENTAL_OVERRIDE_ERROR for override of experimental function in anonymous objectKT-33364 Kotlin/Native debugger: execution stops only at next line for breakpoint at when expression without parameterKT-42139 NI: NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER for emptyList / listOf (with no arguments) / emptyMap / mapOf (with no arguments) inside if block inside sequence blockKT-44241 NI: BuilderInference regressionKT-44372 FIR: KClass::java cannot be resolved as callable referenceKT-44547 Native: wrong RTTI when overriding functions with equal signatures but different type argumentsKT-44571 Segfault on unnecessary int unboxingKT-45083 Problem with property reference in builder inferenceKT-45315 Deprecate (V)::a reference resolution to companion in FE 1.0KT-46393 AE: “1 trailing arguments were found in Any type” for private function with implicit anonymous return type inside generic classKT-46661 FIR: Investigate inference issue with self-types and star projectionKT-46775 [Native] [IR] Support multiple suspend lambdas as class supertypesKT-46836 Error: Invalid LLVM module on inlineClasses external testsKT-46838 NullPointerException: Parameter specified as non-null is null in CollectionsKt.joinToString()KT-46896 Native IR: NPE when using irBuiltIns.suspendFunctionKT-46996 FIR: INFERENCE_NO_INFORMATION_FOR_PARAMETER on type aliases with non-trivial expansionsKT-47034 KtValueArgument.getArgumentExpression could lead to StubBasedPsiElementBase.notBoundInExistingAstKT-47052 BuilderInference case with flatMapTo doesn't work properlyKT-47082 Stub type variable is leaked (reproduces with K/N during deserialization)KT-47143 ClassicTypeSystemContext couldn't handle: Captured(*) in Kotlin 1.5.0KT-47148 Type mismatch: inferred type is Any? but T? was expectedKT-47180 Forbid using OptIn markers on local variable, value parameter or fieldKT-47181 Forbid using OptIn markers on types or type parametersKT-47183 Segfault on int unboxingKT-47208 Backend Internal error: Exception during IR lowering: assert at IrOverridingUtilKt.buildFakeOverrideMemberKT-47276 Nullability annotations without target are ignored if type enhancement improvements are enabledKT-47450 StackOverflowException in psi2ir with many chained binary expressionsKT-47462 K/N: AssertionError: Unbound private symbol org.jetbrains.kotlin.ir.symbols.impl.IrClassSymbolImpl@6cb748db (NON-PUBLIC API): deserialized class Companion
IDE
KT-44643 ISE: Could not generate LightClass for some declared in on initialisation by lazy in a JVM module of a multiplatform project
IDE. Gradle Integration
KT-47163 KJS / Gradle: Could not resolve <artifact> despite being resolvable & project buildable
IDE. JS
KT-47557 KJS: With NPM dependency IDEA import fails when performed before Gradle build
JavaScript
KT-38363 JS IR BE: support IC for loweringsKT-45738 KJS / IR: Wrong generated code for when statementKT-46520 KJS / IR: ISE “Can't find name for declaration FUN name:CharArray_init_$Create$” on callable reference to Array constructorKT-46551 KJS / IR: Add a basic sourcemap generation
Libraries
KT-47477 Could not resolve kotlin-test during project import in case of multiplatform with only JVM target platform
Native
KT-35001 warning: linking module flags ‘SDK Version’: IDs have conflicting values (‘[2 x i32] [i32 13, i32 2]’KT-43475 Kotlin/Native compiler: Including a static C library increased cross-compilation time from 3.5minutes to 1 hour 40 minutesKT-44148 Escape analysis failure: Heap space out of memory
Native. C and ObjC Import
KT-46711 platform.windows._LARGE_INTEGER cannot be passed by value
Native. ObjC Export
KT-43780 Improve Swift/Obj-C ergonomics for object and companion objectKT-46431 KMP accessing a property of an anonymous inner class that inherits from an abstract class causes a ‘NSGenericException’, reason: ‘[Shared_kobjcc0 ] is abstract’ exception.KT-47042 Kotlin/Native: Concurrency Interoperability with Objective-C (Swift 5.5)
Native. Platforms
KT-44321 Support Apple Silicon without Rosetta 2
Reflection
KT-18277 InvalidProtocolBufferException: Stream closed on multithreaded access to built-ins data in reflectionKT-44977 Reflection: ClassCastException caused by annotations with “AnnotationTarget.TYPE” usage on array attributes access
Tools. CLI
KT-40979 CLI: Executing “kotlinc.bat” at a root path, errors are not reported with a correct filepathKT-40994 CLI: Add documentation for -J argument in kotlinc -helpKT-46764 CLI: Java record defined in a single file root is not resolved
Tools. Commonizer
KT-45992 [Commonizer] Allow commonization of TypeAlias and Class with same nameKT-46716 [Commonizer] Analyze leaf source sets with original platform librariesKT-46957 [Commonizer] Unresolved classifier: platform/posix/ptrdiff_t for linuxMips32KT-47133 Forbid cinterop commonization with hierarchical commonization turned offKT-47301 [Commonizer] Associative commonization
Tools. Compiler Plugins
KT-46723 Kotlin Lombok: JPS: config file is searched in directory relative to compiler daemonKT-46739 @SerialInfo NPE with default parameter
Tools. Gradle
KT-13258 Kotlin compiler doesn‘t respect Gradle’s “sourceCompatibility” and “targetCompatibility”KT-43095 Add support for Java Toolchain to the Gradle pluginKT-45611 KGP should declare JDK version as inputKT-47185 Migrate Gradle Integration tests to use cache redirector
Tools. Gradle. JS
KT-47176 KJS: Actualize NPM dependenciesKT-47154 KJS / Gradle: Compile task reads dependencies metadata from filesystem too long on large projectsKT-47114 KJS / IR: Could not resolve coroutines-core-jsKT-43379 KJS / Gradle: On windows, an invalid regex is generated for Webpack ProgressPlugin
Tools. Gradle. Multiplatform
KT-47126 ios() target shortcuts should not include Apple Silicon by default
Tools. Gradle. Native
KT-42023 Kotlin Native Cocoapods plugin fails when Xcode project has custom CONFIGURATION names
Tools. Incremental Compile
KT-27660 JS Incremental compilation fails with java.io.IOException: java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0
Tools. JPS
Tools. Scripts
KT-46646 Scripts: ArrayIndexOutOfBoundsException on an empty script running
1.5.21
Compiler
KT-47320 “StringConcatException: Mismatched number of concat arguments” String concatenation fails when template contains special characterKT-47445 “definitely not null type parameters is only available since language version 1.6” error in cast expressionKT-47446 Improve warning message INTEGER_OPERATOR_RESOLVE_WILL_CHANGEKT-47447 False positive INTEGER_OPERATOR_RESOLVE_WILL_CHANGE warning: “expression will be resolved to Int in future releases”KT-47449 JVM / IR: ClassCastException IrStarProjectionImpl cannot be cast to IrTypeProjectionKT-47459 “IndexOutOfBoundsException: Index 0 out of bounds for length 0” caused by MarkertManager dependencyKT-47480 StackOverflowError: Recursion on erasion of raw type with interdependent type parameters
Tools. Compiler Plugins
KT-47161 Serializable class can‘t be inherited from serializable class in other module with: e: org.jetbrains.kotlin.codegen.CompilationException: Back-end (JVM) Internal error: Couldn’t transform method node: write$SelfKT-47455 Kotlin lombok plugin NullPointerExceptionKT-47513 Lombok compiler plugin failed with ‘Recursion detected in a lazy value under LockBasedStorageManager@1c21db60 (TopDownAnalyzer for JVM)’
Tools. Gradle
KT-47444 Gradle Plugin: Publishing project with “maven-publish” fails when dependency versions are omitted (NPE in MppDependencyRewritingUtilsKt.associateDependenciesWithActualModuleDependencies)
Tools. kapt
KT-47416 Kapt Gradle DSL ignores javaCompilerOptions in 1.5.20
1.5.20
Compiler
New Features
KT-43262 No error for Java generic class @NotNull type parameter used in Kotlin with nullable type argumentKT-44373 FIR: support error / warning suppressionKT-45189 Support nullability annotations at module levelKT-45284 Emit warnings based on jspecify annotationsKT-45525 Allow to omit JvmInline annotation for expect value classesKT-46545 Emit annotations on function type parameters into bytecode for -jvm-target 1.8 and above
Performance Improvements
KT-36646 Don't box primitive values in equality comparison with objects in JVM_IR
Fixes
KT-8325 Unresolved annotation should be an errorKT-19455 Type annotation unresolved on a type parameter of a supertype in anonymous object expressionKT-24643 Prohibit using a type parameter declared for an extension property inside delegateKT-25876 Annotations on return types and supertypes are not analyzedKT-28449 Annotation target is not analyzed in several cases for type annotationsKT-36770 Prohibit unsafe calls with expected @NotNull T and given Kotlin generic parameter with nullable boundKT-36880 K/N IR: Reference to expect property in actual declaration is not remappedKT-38325 IllegalStateException: No parameter with index 0-0 when iterating Scala 2.12.11 ListKT-38342 FIR: Consider renaming diagnostic from AMBIGUITY to OVERLOAD_RESOLUTION_AMBIGUITYKT-38476 [FIR] Forgotten type approximationKT-38540 Kotlin/Native Set.contains fails with specific enum setupKT-40425 IrGenerationExtension. Support simple reporting to compiler output (for development/debug)KT-41620 ClassCastException: Class cannot be cast to java.lang.VoidKT-41679 NI: TYPE_MISMATCH wrong type inference of collection with type Any and integer literalKT-41818 NI: False positive IMPLICIT_NOTHING_TYPE_ARGUMENT_IN_RETURN_POSITION leads to NothingValueException on delegated propertiesKT-42239 IR: Report compilation error instead of throwing an exception (effectively crash compiler) when some declaration wasn't found while deserializationKT-42631 ArrayIndexOutOfBoundsException was thrown during IR loweringKT-43258 NI: False positive “Suspend function ‘invoke’ should be called only from a coroutine or another suspend function” when calling suspend operator fun on object property from last expression of a crossinlined suspend lambdaKT-44036 Enum initialization orderKT-44511 FIR DFA: smartcast after if (nullable ?: boolean)KT-44554 RAW FIR: NPE in RawFirBuilderKT-44682 raw FIR: incorrect source for qualified accessKT-44695 *_TYPE_MISMATCH_ON_OVERRIDE checkers do not work for anonymous objectsKT-44699 FIR: incorrect lambda return type (led to a false alarm: PROPERTY_TYPE_MISMATCH_ON_OVERRIDE)KT-44802 FIR bootstrap: trying to access package private classKT-44813 FIR bootstrap: various errors in collection-like classesKT-44814 FIR bootstrap: incorrect cast in when branchKT-44942 [FIR] ClassCastException in boostrap testsKT-44995 FIR: false positive for ANNOTATION_ARGUMENT_MUST_BE_CONSTKT-45010 FIR: lambda arguments of inapplicable call is not resolvedKT-45048 FIR bootstrap: VerifyError on KtUltraLightClassKT-45052 FIR bootstrap: inapplicable candidate in GenerateSpecTests.ktKT-45121 FIR IDE: redundant vararg parameter type transformationKT-45136 Native: dividing Int.MIN_VALUE by -1 crashes or hangsKT-45236 JVM / IR: “IllegalStateException: Symbol with IrTypeParameterSymbolImpl is unbound” caused by contracts and sealed classKT-45308 Psi2ir: “AssertionError: TypeAliasDescriptor expected” caused by using typealias from one module as a type in another module without a transitive dependencyKT-45316 [FIR] Ambiguity between two implicit invokes with receiverKT-45344 FIR: Wrong inferred type for nullable type parameterKT-45385 FIR: false positive MUST_BE_INITIALIZED_OR_BE_ABSTRACT after rethrowKT-45475 [FIR] No smartcast after throw in if inside try blockKT-45508 False negative ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED on a fake override with an abstract super class memberKT-45578 REPL: Unresolved imports are cached for the subsequent compilationsKT-45685 JVM IR: capturing a variable into crossinline suspend lambda makes the function inside inline function no longer unbox ResultKT-45584 [FIR] Fix overriding property and java function in java classKT-45697 JVM IR: ISE “Function has no body” on getter of private field in a class present both in sources and dependenciesKT-45842 Compiler doesn't allow a shared class to inherit a platform-specific sealed classKT-45848 False negative [SEALED_INHERITOR_IN_DIFFERENT_MODULE] error in compiler for a platform-specific inheritor of a shared sealed classKT-45931 There is no warning based on nullability java annotationKT-45998 JVM IR: AE when an accessor to a protected companion object member is being generated in child classKT-46048 Enum entries init order in companion objectKT-46074 FIR: private-in-file fun interface is considered invisible in this fileKT-46173 No error reporting on annotations on target type of as expression in returnKT-46235 JVM IR: Stack overflow error on large expressionsKT-46270 [FIR] Support @PublishedAPI in inline checkerKT-46539 Generate annotations on type parameters bounds in bytecodeKT-46578 JVM IR: IllegalAccessError accessing property delegated to java super class protected field referenceKT-46597 JVM IR: AssertionError: SyntheticAccessorLowering should not attempt to modify other files - crossinline accessorKT-46601 JVM / IR: IllegalStateException: “Can't find method 'invokeinvoke`” when default lambda takes inline class parametersKT-46670 StackOverflowError on inheritance from raw type where class has protobuf-like recursive genericsKT-46715 JVM / IR: “AssertionError: Unbound symbols not allowed IrConstructorSymbolImpl” with enum classes with the same name in test and src foldersKT-46759 JVM IR: CCE in LateinitUsageLowering on @JvmStatic lateinit property in objectKT-46777 [Native] [IR] Support suspend function as super typeKT-46802 JVM / IR: “UnsupportedOperationException: Unknown structure of ADAPTER_FOR_CALLABLE_REFERENCE” caused by function reference on @JvmStatic function with unused default parametersKT-46813 JVM / IR: “ClassCastException: Integer cannot be cast to class Result” with Flow and fold methodKT-46822 JVM IR: StackOverflowError on compiling a large data classKT-46837 Backend Internal error: Exception during IR lowering: assert at IrOverridingUtilKt.buildFakeOverrideMemberKT-46921 JVM / IR: “IndexOutOfBoundsException: Cannot pop operand off an empty stack” caused by crossinline parameter and label returnKT-46984 Type parameter bounds aren't used to report corresponding mismatch warningsKT-46985 There aren't warnings by java nullability annotationsKT-46986 There aren't warnings by java nullability annotationsKT-46989 There aren't warnings by java nullability annotationsKT-46990 There aren‘t warnings by java nullability annotations on method’s violated type argumentsKT-47019 K/N: IrProperty.overriddenSymbols can‘t be used in common IR backend modules yet because it doesn’t fully work in Native
Docs & Examples
KT-33783 Document when a range created with rangeTo is empty
IDE
KT-44638 clone() call is unresolved in JVM module of a multiplatform projectKT-45629 [ULC] KtUltraLightFieldForSourceDeclaration.nameIdentifier returns nullKT-44825 Can't open Kotlin compiler settings in newly created projectKT-45908 Reproduciable ‘org.jetbrains.kotlin.idea.caches.resolve.KotlinIdeaResolutionException: Kotlin resolution encountered a problem while analyzing KtNameReferenceExpression’
IDE. FIR
KT-45175 FIR IDE: Exception with local property in init blockKT-45199 FIR IDE: Error while collecting diagnostic on stale element after replacing element in quickfixKT-45312 FIR IDE: FIR plugin throws exception on synthetic function
IDE. Gradle Integration
KT-34401 KotlinGradleModelBuilder builds models for non-kotlin modules and always trigger full task configuration.KT-45277 Wrong jvm target in gradle module in IDEAKT-46488 Import of a multiplatform project with MPP module depending on Kotlin/JVM one fails
IDE. Inspections and Intentions
KT-45075 Inspection: Redundant creation of Json formatKT-45347 Sealed interfaces: quickfix to move to package/module of sealed class/interface should not be shown in case of read-only declarationKT-45348 Sealed interfaces: show error for usage of sealed class/interface from a library in Java source codeKT-46063 In multiplatform code, suggest to generate remaining when branches at least for shared sealed classes
IDE. Refactorings
KT-44431 Quickfix to move class/interface to proper location: it is allowed to choose test source in JPS project while compiler does not allow it
IDE. Native
KT-39320 [Commonizer] Reduce memory consumption
JavaScript
KT-40235 KJS: IR. Broken support for external interface companionKT-40689 KJS / IR: strange and slow code for kotlin.math.max and kotlin.math.min for DoubleKT-44138 KJS / IR: Constant folding works incorrectly with unsigned arithmeticKT-44394 KJS / IR: null companion object for existed stdlib interfaces NodeFilter and SVGUnitTypesKT-44950 KJS / IR: “IllegalStateException: Can't find name for declaration” in case of extending export declared class without @JsExport annotationKT-45057 KJS / IR: “ClassCastException” when using js function in init blockKT-45361 KJS / IR: IrConstructorCall representing annotation always returns UnitKT-46608 KJS: “Could not load content...” for source mapsKT-45655 KJS: “REINTERPRET_CAST” is not copyableKT-45866 Default parameter with generic in expect-actual declarationsKT-46859 Exception during IR lowering: NullPointerException was thrown at: optimizations.FoldConstantLowering.tryFoldingUnaryOps
KMM Plugin
KT-43899 KMM: Fix “stale framework” usage by XCode & AppCode in default build script
Libraries
KT-43701 Stdlib: Expand KDoc of inc() and dec() for operatorsKT-46002 Support all Unicode digit chars in digitToInt (JS and Native)KT-46183 Add default value for ignoreCase in K/N String.replace/replaceFirstKT-46184 Equivalize isLowerCase and isUpperCase behavior in all platforms
Native
KT-33175 IR: String constants with incorrect surrogate pairs aren't preserved during serialization/deserializationKT-44799 Different behavior with functional interfaces in Kotlin/Native on iOS
Native. C Export
KT-42796 [Reverse C Interop] Package with no public methods generate empty struct in the header, leading to an error
Native. ObjC Export
KT-38600 Kotlin MP iOS Target doesn't contain kdoc commentsKT-45127 KMM: hard to pass an error to Kotlin code from implementation of Kotlin method in Swift code
Native. Runtime. Memory
KT-45063 Profiling indicates that a lot of time is spent on updateHeapRef on Apple platforms when running KMP code
Reflection
KT-10838 Provide sensible toString() for property accessors in reflectionKT-13490 Equality doesn't work for KProperty.Accessor implementations
Tools. CLI
KT-14772 ISE (FNFE “Not a directory”) on compilation with destination argument clashing with an existing file which is not a directoryKT-18184 CompileEnvironmentException: Invalid jar path on “-d” with .jar in non-existing directoryKT-40977 Report a readable diagnostic on empty -J argument in CLI
Tools. Commonizer
KT-45497 [Commonizer] c-interop commonization: Dependency commonizationKT-46077 [Commonizer] Add commonizer_target to commonized klib's manifestKT-46107 [Commonizer] CInteropCommonizerTask receives faulty dependencies in multi module projects containing multiple c-interopsKT-46248 MPP: Compile KotlinMetadata fails with Unresolved reference if only one native platform from shared source set is availableKT-46856 [Commonizer] Many targets can fail with ‘filename too long’
Tools. Compiler Plugins
KT-7112 Support calling Lombok-generated methods within same moduleKT-45538 Serialization, JVM IR: “AssertionError: No such type argument slot in IrConstructorCallImpl” with inner classesKT-45541 JVM / IR / Serialization: NullPointerException caused by “Serializable” annotation and local data classKT-46469 Kotlin Lombok: accessors with AccessLevel.MODULE fail to resolveKT-46529 Kotlin Lombok: with @Accessors without explicit prefix the prefix from lombok.config is not taken into accountKT-46531 Kotlin Lombok: lombok.getter.noIsPrefix is processed depending on character caseKT-46920 NullPointerException in CodeGeneratorVisitor when packing for xcode
Tools. Gradle
KT-24533 Kapt should not run when annotation processors are not configuredKT-43988 Enable plugin validation during buildKT-45301 Gradle: Empty build/kotlin dir with custom build directoryKT-45519 loadAndroidPluginVersion() impacts performance negatively and noticeably in multimodule Android buildKT-45744 Create Kotlin Gradle Plugin JUnit5 basic test setupKT-45834 Gradle Plugin read system property related to kotlinCompilerClasspath breaks use of configuration cacheKT-46401 Deprecate ‘kotlin.parallel.tasks.in.project’ build propertyKT-46820 Gradle: kotlinc (1.5.0) race condition causes a NullPointerExceptionKT-47317 Restore ‘kotlinPluginVersion’ property in ‘KotlinBasePluginWrapper’
Tools. Gradle. JS
KT-42911 Support Gradle configuration cache for K/JS tasksKT-45294 KJS / Gradle: Number of modules in project affects JS tasks configuration cache state sizeKT-45754 KJS / IR: Remove adding option of source maps in Gradle pluginKT-46178 KJS / Dukat: Added as a dependency always without conditionKT-46976 KJS: Broken support for dynamically created webpack.config.dKT-47045 [Gradle, JS] Task requirements are added to all compilations with same name
Tools. Gradle. Multiplatform
KT-36679 MPP Gradle plugin: Improve messaging for the commonizerKT-45832 CInteropCommonization: Filter out illegal dependenciesKT-46394 Multiplatform: Gradle 7 supportKT-46517 Add kotlin-project-model as api dependency to kotlin-gradle-plugin-api
Tools. Gradle. Native
KT-27240 MPP Gradle plugin: Provide a framework packing task for Kotlin/NativeKT-39016 Missing stdlib when the downloading process was abortedKT-40907 Xcode error after switching between device and simulator: Building for iOS, but the linked and embedded framework was built for iOS Simulator.KT-44059 iosSimTest tasks are never up-to-dateKT-45801 compileIosMainKotlinMetadata compilation property of gradle task is not initialized and fails with Execution failed for task ':shared:generateProjectStructureMetadata'KT-46680 Register concrete “embedAndSign” tasks instead umbrellaKT-46892 Kotlin Multiplatform Gradle Plugin: EmbedAndSign task always contains a default framework name
Tools. Incremental Compile
KT-44741 Incremental compilation: inspectClassesForKotlinIC doesn't determine changes with imported constant
Tools. JPS
KT-34351 KotlinTargetsIndex creation takes too long even if project doesn't have any kotlinKT-45191 [JPS] Marking method as “default” in Java SAM interface doesn't affect dependenciesKT-46242 Support Lombok kotlin plugin in JPS and maven
Tools. kapt
Performance Improvements
KT-28901 Consider caching annotation processors classloaders
Fixes
KT-27123 kapt: missing space in error log makes location non-clickableKT-29929 [Kapt] Stub generator uses constant value in method annotation instead of constant name 2.KT-31146 kapt: executableElement.getAnnotation(JvmOverloads::class.java) returns nullKT-32202 Gradle task kaptKotlin fails: “module not found” in Java 11 modular applicationKT-34838 Kapt: ‘cannot find symbol’ for a top-level property with anonymous delegateKT-35104 Support @JvmStatic in KAPT stubsKT-35167 Kapt Gradle plugin doesn't handle --module-path javac argumentKT-37586 KAPT: When delegated property use an unknown type (to-be-generated class), correctTypeError will mess up the $delegate field typeKT-39060 Kapt: correctErrorTypes don't retain return type of getter in Java stubKT-39715 KaptGenerateStubsTask resolves annotation processor options too early (before execution time)KT-41581 Kapt doesn't have line breaks between warningsKT-43804 Kapt fails to preserve parameter names in open suspend functionsKT-43686 KaptWithoutKotlincTask should use @CompileClasspath for kotlinStdlibClasspath for cache relocateability.KT-45032 Kapt: NullPointerException: insnList.first must not be nullKT-46176 Kapt: “java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length 3” with delegation and property reference
1.5.10
Compiler
Fixes
KT-41078 Incorrect type substitution in contracts with type parametersKT-44770 JVM / IR: “IllegalArgumentException: Unrecognized Type: [null]” Jackson doesn't recognize typeKT-45084 JVM IR: “NoSuchElementException: Sequence contains no element matching the predicate” when inline class is passed to lambda with >22 parametersKT-45779 JVM / IR: java.lang.NoSuchMethodError: ‘int java.lang.Integer.plus(int)’ caused by function referenceKT-45941 JVM IR: local functions use generic type parameters of the outer class in the bytecode, which breaks Bytebuddy and MockKKT-46149 Generate synthetic classes for SAM adapters with erased instead of generic supertypeKT-46189 JVM IR: tailrec function with capturing lambda in default parameter value leads to NoSuchMethodError at runtimeKT-46214 JVM / IR: “IllegalStateException: No mapping for symbol: VALUE_PARAMETER INSTANCE_RECEIVER” on a suspend function in an inner classKT-46238 JVM 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-46259 JVM IR: local function for adapted function reference is not declared as ACC_SYNTHETICKT-46284 JVM IR: “Unbound private symbol IrClassSymbol” on class reference to script classKT-46402 IllegalAccessError: “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-46408 JVM IR: BootstrapMethodError due to missing bridge for subclass of generic Java interfaceKT-46426 JVM IR: Corrupted .class file when passing Array constructor reference as (inline) lambdaKT-46455 OOM on parsing invalid code with string interpolationKT-46503 JVM IR: “AssertionError: Unexpected variance in super type argument: out @1”KT-46505 JVM IR: NullPointerException caused by a callable reference with nullable inline value class parameterKT-46512 JVM / IR: NoSuchMethodError on SAM conversion of a function referenceKT-46515 IndexOutOfBoundsException: “Empty list doesn't contain element at index 0.” on bad variable name in 1.5.0KT-46516 JVM IR: “AnalyzerException: Expected I, but found R” on subclassing AbstractMutableListKT-46524 Cannot use unsigned literals with api-version < 1.5 even with opt-inKT-46537 JVM / IR: “IllegalStateException: No noarg super constructor for CLASS” caused by “No-arg” plugin with annotation on child classKT-46540 JVM / IR: AnalyzerException: Expected an object reference, but found J caused by java.function.SupplierKT-46554 JVM IR: “IllegalStateException: No mapping for symbol: VAR IR_TEMPORARY_VARIABLE” with value class constructor delegation callKT-46555 JVM IR: IllegalAccessError when using Java method referenceKT-46562 Kotlin 1.5.0 generates non-serializable lambdas when they should be serializableKT-46568 JVM IR: “AssertionError: IrCall expected inside JvmStatic wrapper” on compiling protected static function with return type Nothing inside companion object of abstract classKT-46574 JVM / IR: ClassCastException caused by runBlocking awaiting call while returning Kotlin.Result type.KT-46579 JVM IR: “IllegalArgumentException: Sequence contains more than one matching element” for Java enum with overloaded values() static methodKT-46584 JVM IR: Intrinsics.needClassReification (UnsupportedOperationException thrown). Property delegate provider crossinline lambda inlining/reification issueKT-46751 JVM / IR:“ClassCastException: java.lang.String cannot be cast to java.lang.Void” in extension function in Kotlin 1.5
IDE
KT-45981 failed 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-46622 60+ 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-46280 JvmRecord annotation missing constructor in common
Middle-end. IR
KT-44013 NPE: When calling constructor of a function type while inheriting from it, despite it's an interface
Tools. Android Extensions
KT-46590 Kotlin Android Extensions 1.5.0 generates bad writeToParcel() method for nullable Array types
Tools. Gradle
KT-41142 Kotlin version conflict when using Kotlin Gradle plugins in pre-compiled script pluginKT-46353 Optimizations disabled in Gradle 7 for KAPT when generating sourcesKT-46368 Memory leak with 1.5.0-RC when building with GradleKT-46689 Track -Xuse-old-backend flag usage
Tools. Gradle. JS
KT-46006 KJS \ Gradle: Task without declaring an explicit or implicit dependency on jsGenerateExternalsIntegrated in Gradle 7KT-46162 KJS: Exported items unavailable on dev serverKT-46331 KJS: With kotlin.js.webpack.major.version=4 browserXRun tasks fail
Tools. Parcelize
KT-46567 Kotlin 1.5.0 parcelize compilation fails in new backend when using TypeParceller with nested generics
Tools. kapt
KT-45532 Do not create Kapt stubs directory during configuration time
1.5.0
Backend. Native
KT-42053 Support compiler caches for linux_x64KT-43690 Support compiler caches for ios_arm64
Backend. IR
KT-42684 StackOverflowError on recursive inline arguments in inline fun
Compiler
New Features
KT-28791 Kotlin serialization with inline classesKT-30222 Support JVM target version selection in Kotlin bytecode tool windowKT-41884 Support ‘file’ target for JvmSynthetic annotationKT-43677 Support for Java recordsKT-43920 Support loading binary Java annotations on fieldsKT-44278 Generate SAM-converted lambdas and function references using ‘invokedynamic’ on JDK 1.8+KT-44650 Deprecate JVM target version 1.6KT-44787 Suspend functions in fun interfacesKT-44865 Allow to declare protected constructors in sealed classesKT-44869 Compiling sealed interface with version less than 1.5: error message from future could be provided
Performance Improvements
KT-6336 Optimize generation of local functionsKT-7307 Optimize infix call of String.plusKT-18692 Optimize ‘<optimizable_range> step x’ for-in loopKT-19978 Inefficient bytecode generated for function references undergoing Java SAM conversionKT-23565 OperationsMapGenerated.kt generates unreasonable amount of bytecodeKT-23825 Tail suspend call utilizing elvis operator does not take advantage of suspend tail call optimizationKT-23826 A suspend function on the right side of a returned || condition is not tail call optimizedKT-25348 No compile time unsigned integer conversion when using hex literalKT-26060 Support a compiler mode to compile lambda expressions using invokedynamic instructionKT-26590 Do not generate create method for suspend lambdas if its arity >= 2KT-27427 Optimize nullable check introduced with ‘as’ castKT-28246 Redundant boxing/unboxing isn't eliminated by the compiler in case of inline classes and javaClass intrinsicKT-30605 Constant folding doesn't evaluate inv() functionKT-36845 Generate enum-based TABLESWITCH/LOOKUPSWITCH on a value with smart cast to enum in JVM_IRKT-39585 JVM BE generates redundant accessor calls when accessing static final field lifted from companionKT-40886 Old JVM BE unspills ACONST_NULL from continuationKT-42621 Kotlin binary size considerably larger for code extensively using stream APIKT-44153 NI: Low Memory and IntelliJ hangs when quotes in split() are missedKT-45410 JVM / IR: Extreme performance regression on arithmetic operations inside a loop
Fixes
KT-6007 Support changed return type of inlined generic function when lambda returns anonymous objectKT-6055 Failed invoke plus assign on array element accessed via several args through local get/set convention extensionsKT-6879 CompilationException when local classes hierarchy is placed within other local or inner declarationKT-8120 NoSuchMethodError 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-12790 Don't generate synthetic accessors for private inline function/propertiesKT-13213 IllegalArgumentException 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-14833 JVM internal error: Augment assignment and increment are not supported for local delegated properties and inline propertiesKT-15403 Suspend operator get wrong code generated by BE (NoSuchMethodError)KT-15404 Suspend operator set wrong code generatedKT-16084 Proguard can't find enclosing class of let closure inside apply closureKT-16151 Internal compiler error when using plusAssign operator with mutable mapKT-16221 Support in/!in suspend operatorsKT-16282 “Cannot pop operand off an empty stack” for plusAssign with default parameters in setter operatorKT-16445 java.lang.VerifyError: Bad type on operand stack when delegating an interface through a private reified function inside an objectKT-16520 Invalid bytecode semantics for set call by convention with default parametersKT-16567 Inliner creates redundant objects on source inliningKT-16752 Delegating function interface to function reference does not workKT-17554 Incorrect cast to Unit generated on annotated when-expression with a single-branch if insideKT-17738 Java cannot extend class implementing kotlin.collections.MapKT-17753 Strange behavior of if and return statementsKT-18583 “ISE: Recursive call in a lazy value” for generic sealed class with nested subclass in a when(this) with inferred return typeKT-19861 “IllegalStateException: Label wasn't found during iterating through instructions” for plusAssign with safe callKT-20306 Make ‘when’ over an ‘expect’ enum class non-exhaustiveKT-20869 kotlin.jvm.internal.DefaultConstructorMarker should be publicKT-20996 IllegalStateException: Cannot get FQ name of local class: class in metadata serialization for common codeKT-21014 Incorrect bytecode generated for ‘PrimitiveArray::size’KT-21092 Reference javaClass for generic property: “couldn't transform method node: get()”KT-21778 “IllegalStateException: Couldn't build context” for inline function inside an anonymous objectKT-21900 VerifyError 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-22488 Bad line numbers generated for ‘&&’ expressionKT-22972 A compiler bug(?) in Number class descendantsKT-23619 Transform stateless singleton lambda during inlineKT-23881 Declaration of lambda in inlined apply block holds reference to superfluous references causing leakKT-24135 Calling invoke on crossinline suspend lambda leads to no state-machineKT-24193 NoClassDefFoundError: java/lang/Cloneable$DefaultImpls on inheritance from Cloneable through an interfaceKT-24305 ClassNotFoundException when using Java reflection on local class in an inlined lambdaKT-24564 Custom operator fun set on ByteArray resolves properly but is miscompiledKT-25400 “NoClassDefFoundError: kotlin/KotlinPackage” with Turkish system locale on macOSKT-26130 Incorrect 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-26473 Error on compiling inline class with calls of super methods equals(), hashCode(), toString()KT-26474 VE “Bad type on operand stack” at runtime on calling toString() method of inline class with calls of super methods (toString(), equals(), hashCode()) insideKT-26592 Do not generate private suspend functions as synthetic package-privateKT-27449 NoSuchMethodError for local suspend function with suspend lambda parameter with default valueKT-27469 “Cannot pop operand off an empty stack” for compound assignment (plusAssign) with a vararg operator getKT-27825 Gradually prohibit non-abstract classes containing abstract members invisible from that classes (internal/package-private)KT-27830 “Incompatible stack heights” with suspend inline function in do while loop that executes suspend lambdaKT-28042 “Cannot pop operand off an empty stack” for a bound callable reference of lambda inside inline functionKT-28166 “Argument 1: expected I, but found R” for generic method with generic parameter or receiver with inline class upper boundKT-28331 Consider generating accessors for lateinit properties to avoid assertion on each callKT-28573 Inliner does not update references to transformed objectKT-29331 “AnalyzerException: Argument 1: expected R, but found I” with local generic extension property called on Int receiverKT-29595 NoClassDefFoundError with inline reified function with lambda argument returning anonymous objectKT-29802 Incorrect reification when the same type parameter name is used for different reified typesKT-30041 “AnalyzerException: Expected an object reference, but found .” on nested suspend function calls outer suspend functionKT-30066 Consider adding annotations to ConeKotlinTypeKT-30280 Inline class class literal gets unwrapped in annotation argumentsKT-30402 Constant folding works incorrectly with unsigned arithmeticsKT-30548 “java.lang.IndexOutOfBoundsException: Cannot pop operand off an empty stack” while compiling access to a private lateinit companion fieldKT-30629 java.lang.VerifyError: Bad type on operand stack when using a function reference to a generic propertyKT-30933 Inline function produces IllegalAccessError on property reference from different packageKT-31136 “AnalyzerException: Argument 1: expected R, but found I” on x::javaClass when x is inline class object built around primitive typeKT-31227 Prohibit using array based on non-reified type parameters as reified type arguments on JVMKT-31592 NoSuchMethodException when inlining public function accessing a protected static Java class memberKT-31727 Object expression captures all variables used in constructorKT-32023 “AnalyzerException: Expected I, but found R” with inline suspend function used with callable referenceKT-32115 NPE during initialization of enum class with delegated propertyKT-32153 “AnalyzerException: Expected an object reference, but found .” with recursive suspend local functionKT-32351 ClassNotFoundException for anonymous object implementing interface inside a lambda with data class and inline methodsKT-32384 Safe cast to generic type argument with inline class upper-bound throws NPE instead of ClassCastExceptionKT-32579 java.lang.VerifyError: Bad type on operand stack on calling inner class of inherited class in super class when casting to inherited classKT-32749 “VerifyError: Call to wrong method” with inline function and accessing class field from anonymous objectKT-32793 Generated code crashes by ClassCastException with local suspend function and inline classKT-32812 “AnalyzerException: Argument 1: expected R, but found I” invoking function with default parameter inherited by inline classKT-32821 Missing unboxing of inline class for complex hierarchy of suspend callsKT-33155 ClassNotFoundException for qualified this in anonymous object and as a result of inline function callKT-33173 Internal error: “AnalyzerException: Expected I, but found R” for supercall inside inline lambda from HashSet.remove implementationKT-33577 NoSuchFieldError with nested anonymous objects accessing outer instance propertyKT-33836 Wrong code generated for a local tailrec suspend function.KT-33873 ClassCastException invoking UByte setter function via reflectionKT-34018 “Cannot pop operand off an empty stack” with inline lambda with callable referenceKT-34186 JDK11: class file contains malformed variable arity method for vararg sealed class constructorKT-34202 IllegalAccessError on callable reference of function from multifile facade from standard libraryKT-34255 @JvmStatic tailrec function: “Cannot pop operand off an empty stack”KT-34507 Incorrect generated code for mutable collection stub methods in case of presence of functions with similar signatureKT-34665 Possible index overflow in optimized “for” loop over withIndex()KT-34754 Flow builder: “AnalyzerException: Expected an object reference, but found .” with recursive suspend local functionKT-34816 “AnalyzerException: Expected an object reference, but found I” on “this” in inline class member extension suspend functionKT-34841 ClassNotFoundException when invoke param function inside anonymous object methodKT-35008 “AnalyzerException: Expected an object reference, but found I” in inline class companion calling private constructorKT-35166 NoSuchMethodError at runtime with local property delegate on anonymous object referencing another anonymous objectKT-35224 It's possible to pass non-spread arrays after arguments with SAM-conversionKT-35301 MethodInliner fails with “AssertionError: call doesn't correspond to object transformation info” for qualified this in SAM constructor used as parameter of anonymous object inside inline lambdaKT-35419 Failed to generate expression: KtNamedFunction for local suspend tailrec function with receiverKT-35511 VerifyError: “Bad type on operand stack” after reificationKT-35553 Kotlin compiler generates methods that always have line number 1 for Inline ClassesKT-35725 “AssertionError: Couldn't find a context for a super-call” for super member call in property initializer of companion objectKT-36420 ClassCastException with inline class Foo extending generic ComparableKT-36713 AnalyzerException: “Incompatible stack heights” with suspend and inline suspend functionsKT-36794 Move $assertionsDisabled field to the top-level classKT-36853 IR: UninitializedPropertyAccessException on tailrec with object expression in default argumentKT-36875 “RuntimeException: Trying to access skipped parameter” on synthetic local variable access from inline functionKT-36916 AnalyzerException: Argument 1: expected I, but found R when using inline class with rxjavaKT-36957 Exception during codegen: cannot pop operand off an empty stack (Nothing variable in string interpolation)KT-36984 SAM adapter classes should be generated as anonymous inner classes in JVM_IRKT-37704 Incorrect SMAP syntaxKT-37716 “AssertionError: call doesn't correspond to object transformation info” with inline reified type parameter, anonymous object and lambda in constructor callKT-37972 IllegalAccessError on initializing property reference for a property declared in JvmMultifileClass with -Xmultifile-parts-inheritKT-38100 Support local delegated properties (not inlined) in new JVM default modesKT-38833 JVM: java.lang.ClassCastException when loop variable is nullable in for loop over unsigned progressionKT-38849 Read-only variable initialized in non-inline lambda using contract callsInPlace EXACTLY_ONCE is not captured correctly in nested lambdasKT-38869 JVM BE produces invalid bytecode when inheriting from AbstractList and declaring methods that look like MutableList implementors (but they aren't)KT-38965 “UnsupportedOperationException: Don't know how to generate outer expression: Closure” with reference to local variable in block argument of anonymous object by delegationKT-39289 CCE in if-else inside annotated ‘if’ statementKT-39425 AbstractMethodError: “Receiver class does not define or inherit an implementation of the resolved method” using classes with complex Java and Kotlin inheritance hierarchies.KT-39434 IllegalAccessError with local delegated property in lambda in inlined functionKT-39687 “Couldn't find captured this” when more than 3 inline functions are nestedKT-39784 “IndexOutOfBoundsException: Cannot pop operand off an empty stack” caused by JvmOverloads annotation inside an inline classKT-40165 ClassCastException caused by SAM conversion used on a functional interface with suspended functionKT-40179 “VerifyError: Bad type on operand stack” with parent class get extension function and child class set extension function which used inside child class plusAssign extension functionKT-40277 Fix generic types in special bridge methodsKT-40308 NoSuchFieldError for multiple delegated extension properties with the same name in a companion objectKT-40338 NoSuchFieldError on property without backing field that is called as function referenceKT-40392 Deprecate JvmDefault annotation and old -Xjvm-default modesKT-40396 NI: Exceptions when ambiguous type argument and generic invokeKT-40510 “AssertionError: DELEGATION slice must override something” for ByteBuffer delegationKT-40601 VerifyError: “interface method reference is in an indirect superinterface” when calling @JvmDefault suspend methodKT-40809 “Couldn't find captured field” compiler error with local function with recursive call through method referenceKT-41056 Increase stub version due to new “contract” keywordKT-41105 IllegalStateException: ‘Couldn’t find declaration file ' with inline delegate declared in another fileKT-41165 “IllegalStateException: Concrete fake override public final fun” when an enum class inherits an interface with a variable ‘name’ or ‘ordinal’KT-41222 “IllegalStateException: Concrete fake override public final fun” when a class property is inherited as merged ‘var’ from ‘val’ and ‘var’ from parent abstract class and interface propertiesKT-41255 JDK 11: “VerifyError: Bad type on operand stack” with long function body with annotated when expressionKT-41427 NoSuchMethodError caused by implementation by delegation to function referenceKT-41508 ClassNotFoundException caused by object with overridden function inside a lambda with safe cast receiverKT-41750 Inline classes: ClassCastExceptionError when calling .withIndex() on Iterator over ArrayKT-41758 Deprecate kotlin.Metadata.bytecodeVersion and avoid using it in the compilerKT-41770 AssertionError: “Asm parameter types should be the same length as Kotlin parameter types” cause by fun interfaceKT-41874 “IllegalStateException: Couldn't obtain compiled function body” on extension delegated property with inline operator getValue in a different fileKT-41917 [FIR] Incorrect calculating property type for override from intersection scopeKT-42012 IllegalAccess to protected field instead of getterKT-42017 “AssertionError: Unsigned type expected: UInt?” during codegen when a variable of nullable unsigned type is checking for presence in the rangeKT-42032 “AnalyzerException: Expected I, but found R” while using Flow.reduce() with suspend function referenceKT-42034 ArrayIndexOutOfBoundsException in PopBackwardPropagationTransformer on external override of function in inline classKT-42064 “Parameter specified as non-null is null” with default value of the parameter in operator funKT-42069 JVM IR: -Xreport-output-files doesn't report any source files for META-INF/*.kotlin_module filesKT-42083 AbstractMethodError when ‘remove’ with irrelevant generic parameter but matching JVM signature is present in Kotlin collection classKT-42092 JVM / IR: “AnalyzerException: Argument 1: expected R, but found J” when trying to add to ArrayList the result of a function applied to intKT-42175 Psi2ir: “AssertionError: Undefined parameter referenced: ” on augmented assignment on this in a BuilderInference lambdaKT-42179 Platform declaration clash when extending abstract Java class implementing ‘java.util.Collection’ by abstract Kotlin class implementing Kotlin Set or ListKT-42321 JVM IR: do not cast integer value based on the type of a literal receiver of an operator callKT-42337 NoSuchMethodError in JVM backend with inheritance of private functions in the interfaceKT-42404 “Supertypes of the following classes cannot be resolved” in Rider projectKT-42472 No TYPE_INFERENCE_UPPER_BOUND_VIOLATED for Delegated Properties do not check types (in Kotlin 1.4.10)KT-42487 “IndexOutOfBoundsException: Cannot pop operand off an empty stack” caused by USELESS_IS_CHECK of Double typeKT-42533 (N until MIN_VALUE).reversed() should be an empty progression in for loopsKT-42588 “IllegalStateException: Concrete fake override public open fun” caused by val override with var with delegation.KT-42634 Different bridges and abstract stubs behavior in abstract class implementing Map<K, String> in JVM and JVM_IRKT-42635 ClassCastException with inline class in for loopKT-42662 AbstractMethodError when using partially specialized generic Map classKT-42694 @get:Synchronized causes the JVM getter method not to be generatedKT-42753 “VerifyError: Bad invokespecial instruction: interface method reference is in an indirect superinterface” with jvm-default=allKT-42879 JVM: Declaration clash in fun interface implementation returning an inline classKT-42900 “VerifyError: Bad return type” incorrect bytecode when a property and an extension property in inline class have the same namesKT-42946 FIR2IR: Fix super-calls to Java overrides of special built-inKT-42971 JVM: “AssertionError: Unsigned type expected: T” with UInt loop rangeKT-42990 “AssertionError: Next value after NEW should be one generated by DUP” caused by extension properties with accessors annotataed as @JvmStaticKT-43034 AssertionError: Compiler fails with complicated tailrec + inline caseKT-43048 JVM_IR: Implement coroutines state clearingKT-43050 JVM IR: incorrect mangling for method with type parameter with inline class bound in the signatureKT-43059 Different bridges behavior in class implementing Map<String, String> in JVM and JVM_IRKT-43063 Redundant DefaultImpls delegate is generated in old JVM backend on explicit “duplicate” inheritance from interfaceKT-43069 JVM: incorrect generic signature for method with implicit return type Nothing overriding a method from CollectionKT-43099 Tailrec call in not tail-call position leads to internal compiler errorKT-43106 JVM: custom remove in Iterator subclass results in a synthetic bridgeKT-43120 JVM: “Expected an object reference, but found .” caused by function which is passed as reference to suspend parameterKT-43167 JVM IR, serialization: “No mapping for symbol: VALUE_PARAMETER INSTANCE_RECEIVER” with data class containing property defined in bodyKT-43255 Verify error when inheriting from an abstract class implementing Collection with stub-like method in superclassKT-43303 NI: False negative TYPE_INFERENCE_UPPER_BOUND_VIOLATED when inferred type argument is not a subtype of type parameter upper boundKT-43333 AbstractMethodError when calling ‘toArray’ from Java on a Kotlin Collection with custom internal ‘toArray’KT-43334 AbstractMethodError when calling ‘remove’ from Java on a Kotlin Collection with custom internal ‘remove’KT-43342 [FIR2IR] No getter or backing field found for delegated member callKT-43347 [FIR] Synthetic setter with unmatched parameter type isn't foundKT-43401 JVM_IR. Additional synchronized flag on JvmOverloads-generated adapter for Synchronized functionKT-43405 Turkish locale, Linux Mint: “NoSuchMethodError: ‘int[] kotlin.jvm.internal.Intrinsics$Kotlin.intArrayOf(int[])’” with intArrayOf function callKT-43460 JVM: redundant private setter is generated in case of multifile facadeKT-43473 “VerifyError: Bad type on operand stack” caused by operator get with optional argument in superclass when called via square brackets on subclassKT-43518 JVM_IR. Additional strictfp flag on JvmOverloads-generated adapter for Strictfp functionKT-43569 FIR: inapplicable candidate(s): kotlin/collections/setKT-43616 [FIR] Nullable type parameter-based type after merge in ifKT-43669 FIR: No real overrides for FUN IR_EXTERNAL_DECLARATION_STUBKT-43682 Inline extension method of a multifile library inline class not foundKT-43687 FIR: UnusedChecker does not take annotation arguments into accountKT-43688 FIR: unused checker doesn't handle invokes properlyKT-43749 “UnsupportedOperationException: Don't know how to generate outer expression: Closure” caused by Flow and collect method with function reference as a parameterKT-43812 JVM IR: SAM wrapper class with generic supertype mentions missing type parameter in the signatureKT-43832 JVM IR: missing bridges for inheritance of class from interface in a complex generic diamond hierarchyKT-43851 JVM IR: function call returning object instance is removed during constant propagationKT-43864 JVM: “Assertion error after mandatory stack transformations: incorrect bytecode” with lateinit property of type T, which has a primitive type upperboundKT-43887 Problem with FunctionReferenceLowering$FunctionReferenceBuilder in kotlin nativeKT-43912 JVM internal error: Augment assignment and increment are not supported for local delegated properties and inline propertiesKT-43915 Back-end (JVM) Internal error: wrong bytecode generated for default methodKT-43938 NSME when calling ‘kotlin.Number’ methods on instance of Java class extending Kolin abstract class extending ‘kotlin.Number’KT-43942 org.jetbrains.kotlin.codegen.CompilationException: Back-end (JVM) Internal error: Failed to generate functionKT-43949 FIR: unresolved callable reference as lambda returnKT-43983 IllegalStateException: “Couldn't obtain compiled function body for public final suspend inline fun” after moving inline extension function to libraryKT-43984 FIR: recursion in overridden symbolsKT-43984 FIR: recursion in overridden symbolsKT-44010 FIR: Inapplicable constructor due to an unresolved referenceKT-44030 FIR2IR: uncached type parameters in delegated propertyKT-44032 FIR2IR: uncached type parameters in Java fieldKT-44050 FIR: anonymous object as IR parentKT-44054 FIR2IR: incorrect IR origin for substituted override functionKT-44058 CompilationException: open suspend fun with @JvmStatic in open class companionKT-44069 please remove deprecated usagesKT-44066 FIR Java: override ambiguity with vararg value typeKT-44114 CompilationException when inlining a extension suspend function declared in interface companion with ‘this’ reference to extension receiverKT-44131 “UnsupportedOperationException: Don't know how to generate outer expression: Closure” when using suspend lambda and a function referenceKT-44140 JVM IR: compilation of kotlin.Result crashes with IOOBE while generating toString-implKT-44141 JVM IR: “ISE: There should be underlying type for inline class type” on usage of type parameter with Result upper bound inside a lambdaKT-44192 Allow a greater number of constants in an enum classKT-44202 “ClassCastException” when getting delegated property with inline class and Any/Any? typeKT-44210 KJS / IR: “AssertionError: Undefined parameter referenced: defined” caused by plus assign operators in build blocksKT-44233 [IR] Collection Stub generation not correctly considering java.util Collection iteratorsKT-44234 Private companion property with explicit setter generates invalid bytecodeKT-44269 “[TAILREC_ON_VIRTUAL_MEMBER_ERROR] Tailrec is not allowed on open members” with Spring annotation and private tailrec functionKT-44284 Make Kotlin binaries publicly unavailable (set KotlinCompilerVersion.IS_PRE_RELEASE = true)KT-44316 ReenteringLazyValueComputationException when analyzing complex lazy delegateKT-44347 Back-end (JVM) Internal error: Couldn't transform method node for suspend function with wrong local for ContinuationKT-44368 “IllegalStateException: Error type encountered” when inlining ‘invoke’ operator without enough information on type variableKT-44412 JVM IR backend fails to compile break in condition of do whileKT-44420 False NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATION with 1.4.30-RCKT-44429 JVM IR: unnecessary integer unboxing leads to NPE when using mockito-kotlinKT-44439 Type inference of generic types failing java interopKT-44440 Too many Nothings in inferred typeKT-44471 Fix failing script tests after switching to 1.5KT-44474 Compiler expects sealed type inheritors from platform specific source-sets in when expression in common source-setKT-44483 JVM IR: CCE on calling generic vararg function reference with Array expected typeKT-44527 Suspend function with kotlin.Result: ClassCastException class kotlin.Result cannot be cast to class ...KT-44529 Inline class calls wrong iterator method in for loopKT-44533 JVM IR: ClassFormatError on synthetic $suspendImpl method generated in interface for a @JvmDefault functionKT-44540 Regression in 1.4.30 in intellij-community: type mismatch for generic function call with generic Java classKT-44546 NI: changed variable fixation order (that can lead to changed resolution)KT-44550 KotlinBinaryClassCache leaks Kotlin plugin classloader on plugin unloadKT-44563 Type Inference loosing type annotations in lambda type expectation for function calls with block parametersKT-44583 “Supertypes of the following classes cannot be resolved” error message gives no contextKT-44627 JVM IR: ACCIDENTAL_OVERRIDE when overriding a generic field where the type parameter has a primitive boundKT-44631 “IndexOutOfBoundsException: Cannot pop operand off an empty stack” caused by a default param in inner class constructor which uses method or field from receiverKT-44647 “IllegalAccessError: class TestKt tried to access private method” with String Builder get and inc operatorKT-44651 JVM / IR: “IllegalStateException: Illegal type substitutor” with if-else inside class constructor argument inside another if-elseKT-44660 Internal inline functions in companion object with inline class return type fails compilationKT-44671 JVM_IR: ClassCastException: Result$Failure cannot be cast to Result with multithreaded coroutinesKT-44703 JVM / IR: “IllegalStateException: Unhandled special name in mangledNameFor” caused by a reference to inline class inside interface's companion with lazy initializationKT-44712 JVM / IR: Behavior change after enabling with MockitoKT-44714 Debugger / Coroutines: Local variables are trimmed out too aggressivelyKT-44722 JVM IR: ClassCastException with inline class, let and bound function referenceKT-44726 JVM IR: Incorrect KType nullability for platform type reified as non-nullKT-44781 JVM IR: java.lang.NoSuchFieldError: $noName_0 when calling a crossinline lambda within a suspending lambdaKT-44798 JVM IR: Inherited platform declarations clash for class implementing both List and SetKT-44801 1.4.30 JVM IR: Unbound symbols not allowed with anonymous objectKT-44803 FIR bootstrap: incorrect nullability is set for type alias-based typeKT-44827 Non-existing outer class is written in anonymous class for SAM wrapper in inline lambda with captureKT-44837 JVM / IR: ClassCastException with Result object when it is used by a generic method in a suspend callKT-44875 JVM_IR. hashCode call is generated on interface target in fun interface equalityKT-44878 JVM_IR: “IllegalStateException: Unexpected types” when checking non-nullable variable is in range between nullable ones with smart-castKT-44926 MPP: Actual typealias to compiled inline class incompatible with expect inline classKT-44947 Sealed interfaces: Sealed fun interface leads to “NoWhenBranchMatchedException”KT-44993 JVM IR: VerifyError on getfield with Kotlin generic field and elvis operatorKT-45008 JVM IR: hashCode is generated as invokeinterface if smart cast to interface is presentKT-45011 JVM / IR: “AssertionError: Unbound symbols not allowed”KT-45022 IR: “AssertionError: Undefined variable referenced” from psi2ir caused by plusAssign operator of objectKT-45064 JVM IR: “java.lang.AssertionError: SyntheticAccessorLowering should not attempt to modify other files!” with member reference to property in another file with private setterKT-45067 “IllegalArgumentException: Wildcard mast have a bound for annotation of WILDCARD_BOUND position” with BEAM SDK 2.27KT-45069 JVM / IR: New SAM conversions mode fails when converting from Unit to AnyKT-45131 JVM / 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-45139 Inline class: AssertionError: Expected top level inline classKT-45166 JVM / IR: “AbstractMethodError: Receiver class does not define or inherit an implementation of the resolved method of interface” caused by interface with suspend functionKT-45187 JVM / IR: ClassCastException caused by substituting generic type of vararg parameter with java.lang.VoidKT-45195 JVM IR: annotation methods are generated as default interface methods if allopen is usedKT-45243 “IllegalStateException: Lambdas shouldn't be visited by ESExpressionVisitor” caused by lambda inside kotlin.test.assertNotNullKT-45259 JVM: ClassCastException caused by Result as lambda parameter typeKT-45292 AssertionError with recursive inline extension propertyKT-45300 Deprecate super calls in public-api inline functionsKT-45409 Rename jspecify annotations’ package and default not null annotationKT-45446 JVM / IR: NullPointerException caused by unreachable code and comparisonKT-45721 JVM / IR: “Unbound symbols not allowed” caused by class reference in sequence lambdaKT-45853 JVM / IR: “Accidental override” caused by inheriting Throwable.getCause from Java interfaceKT-45861 Turning warnings into errors for calls with type parameters annotated by @OnlyInputTypesKT-45865 JVM IR: “VerifyError: Bad type on operand stack” with enumValueOf on a value from a list of stringsKT-45868 JVM IR: ClassCastException with SAM function in init block when SAM is generated via invokedynamicKT-45920 JVM IR: “Accidental override” on redefining get() in custom Map classKT-45934 JVM IR: “java.lang.IllegalStateException: Function has no body” for class implementing interface by delegationKT-45945 JVM / IR: “AssertionError: Unexpected variance in super type argument” with contravariance and intersection typesKT-45963 JVM / IR: “AbstractMethodError: Receiver class does not define or inherit an implementation of the resolved method” in Dokka testsKT-45967 JVM IR: “IllegalAccessError” with invokedynamic to Java SAM over callable reference to private functionKT-45982 Wrong subtyping result on captured types with postponed type variablesKT-46007 JVM / IR: “ClassCastException: kotlin.Unit cannot be cast to java.lang.String” caused by default suspend function in interfaceKT-46060 JVM IR: NullPointerException from RangeContainsLowering when contains is a @JvmStatic function in objectKT-46069 JVM IR: unbound type parameter on generic bound adapted function referenceKT-46092 JVM IR: AssertionError “Array type expected: @[FlexibleNullability] kotlin.CharArray?” on super call to Java constructor with primitive varargKT-46104 The message on inline -> value class migration should not say that inline classes are deprecatedKT-46131 Kotlin 1.5.0-RC errors when reading class fileKT-46160 JVM IR: IllegalAccessException at runtime for member reference to JvmMultifileClass member from stdlibKT-46186 Type inference regression in Kotlin 1.5 with constrained generic return types
Docs & Examples
KT-45884 Incorrect description for JVM toUpperCase method
IDE
KT-33233 Use dependency of library to build built-ins in IDE, instead of loading them from the current classloaderKT-34023 kotlin.KotlinNullPointerException at org.jetbrains.kotlin.backend.common.FunctionsFromAnyGenerator.getPrimaryConstructorProperties(FunctionsFromAnyGenerator.kt:66)KT-35947 KFunctionN.call is unresolved in IDE in Kotlin/JVM projectKT-37702 Code analysis speed: on-the-fly analysis diagnostics reportingKT-41048 [FIR-IDE] Properly implement methods in KtFirPackageScopeKT-41671 Missing nullability information in properties using type inference from get()KT-43824 KtLightClassForSourceDeclaration#isInheritor works in a different way than java implementationKT-44128 IDE: Kotlin JVM record has incorrect property accessors as seen from JavaKT-44487 MPP, IDE: No error in IDE when sealed class inheritor from common source-set is not used in exhaustive when expression in platform source-setKT-45254 Highlighting for files with certain errors appears only on second openingKT-46097 Light classes: Incomplete nullability information for a getter method of a kotlin property defined in private constructor
IDE. Decompiler, Indexing, Stubs
KT-43699 IDE: Unresolved extension method from Java code for simple class with typealias and generics (IllegalStateException: Unknown type parameter)KT-44756 Infinite “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-37127 Implement precise importing of platforms of root source sets (commonMain/commonTest) when hierarchical multiplatform support is enabledKT-42048 KJS / Gradle integration: Could not determine the dependencies of task ‘:webApp:testPackageJson’ in Android Studio 4.2 Canary 11
IDE. Gradle. Script
KT-46215 Dead lock on closing project during the import in IJ211 through ScriptDefinitionsManager
IDE. Inspections and Intentions
KT-23824 Return lifted out of if condition causes suspend tail call optimization to no longer applyKT-38155 Lift assignment out of ‘if’ produces type mismatch without manually adding a semicolonKT-44821 IDE: False positive NO_ELSE_IN_WHEN caused by sealed class and when in another moduleKT-46088 [IDEA] Incorrect behavior of replace inline class with value class intention
IDE. Misc
KT-44675 Incorrect reference to resource into 202 plugin
IDE. Refactorings
KT-44079 Sealed Interfaces: Move refactoring should warn about violation of hierarchy restrictionsKT-44839 Sealed interfaces: move refactoring warnings works with “more freedom for sealed classes” rules for language level < 1.5
IDE. Script
KT-43288 Allow push notifications about script configuration /dependencies changes via the ScriptDefinitionsProvider EP
JavaScript
KT-39272 KJS / IR: Can't use javascript keywords as JsNameKT-41650 JS IR BE: default should be a reserved identifierKT-42176 KJS / IR: Interface default method in sub-interface not resolved correctly from extension on super-interfaceKT-44103 [JSIR] TypeError when bumping from 1.4.20 to 1.4.30-M1KT-44180 KJS / IR: NPE in ConstTransformer of compileDevelopmentExecutableKotlinJs/compileProductionExecutableKotlinJs tasksKT-44415 Kotlin/JS with IR and kotlin-react: “too much recursion” error in runtime in browserKT-44433 KJS IR: support function interfaces with suspend memberKT-44469 KJS / IR: Incorrect export functions with bridgesKT-44718 MPP/ KJS: “IllegalStateException: Unsupported operation” with serialization plugin and incremental compilationKT-44796 KJS / IR: default parameter of function with @JsName leads to “RangeError: Maximum call stack size exceeded”KT-45059 KJS / IR: Add possibility for runtime diagnostics of DCE result
Libraries
KT-12109 Add stdlib method that combines mapNotNull() and first/firstOrNull()KT-25571 Make random implementations serializableKT-26234 Floored division and remainder function for numeric typesKT-32996 kotlin.test: add assertContentEquals for comparing content of arrays, iterables, sequencesKT-39177 Make CharCategory available in common multiplatform codeKT-40225 Support adding kotlin-test as a single dependency, as it should be with a multiplatform libraryKT-42071 Strict version of String.toBoolean()KT-42720 Kotlin ArrayDeque on JVM: provide optimized toArray methodKT-42840 Commonize and generalize String.contentEquals that is currently JVM-onlyKT-43772 Kotlin/Native unfinished workers detected.KT-44168 Prevent storing NaN and negative zero in kotlin.time.DurationKT-44369 Commonize Char.titlecaseChar() and Char.titlecase() that are currently JVM-onlyKT-44783 Add IS_VALUE flag for value classes to kotlinx-metadata-jvmKT-44815 Remove kotlin-annotations-android and JVM compiler support for @ParameterName/@DefaultValue/@DefaultNullKT-45213 Update Unicode version used in K/N for Char and String case conversion functions
Middle-end. IR
KT-43831 Compilation failed, IrSimpleFunctionPublicSymbolImpl is already boundKT-44100 KJS / IR: Top level declarations added in IR plugin are not referenceable from other modulesKT-45170 IR: “AssertionError: Single expression value for GET_OBJECT” caused by inc operator of field inside scope function inside object
Native
KT-42446 Native: SIGSEGV in Kotlin_Array_get on linuxArm64KT-43502 [K/N] relocation R_X86_64_PC32 cannot be used against symbol __environ; recompile with -fPICKT-44295 1.4.21 Kotlin native ndk compiler crashKT-44774 ld fails with CALL16 reloc at 0x48f00 not against global symbol (Linux MIPS)KT-44746 Different hashCode() results for Kotlin/Native stdlib
Native. C and ObjC Import
KT-44824 cinterop tool no longer appends .klib to produced klibs
Native. C Export
KT-36639 MPP: Build ios “staticLib” or “sharedLib” binary failed if interface contains member extension functionKT-41725 Dynamic library doesn't load on raspberrypi
Native. ObjC Export
KT-44549 In the Xcode debug session, call stack is missing a frame when the iOS app fails
Native. Platforms
KT-45094 Fail to compile Kotlin Native sources under Oracle Linux 7
Reflection
KT-44594 Avoid using unnecessary array types reflection in kotlin-reflectKT-44782 Add KClass.isValue to kotlin-reflect
Tools. Ant
KT-16227 Ant task: do not include runtime by default if destination is a jarKT-44293 Support fork mode in kotlinc Ant task
Tools. CLI
KT-17344 Include kotlin-reflect to resulting jar if “-include-runtime” is specifiedKT-43220 -include-runtime should add .kotlin_builtins to the outputKT-43704 Illegal reflective access by com.intellij.util.ReflectionUtil to method java.util.ResourceBundle.setParent(java.util.ResourceBundle)KT-44078 Do not include module-info.class of kotlin-stdlib.jar to the resulting jar with -include-runtimeKT-44232 CLI: do not pass -noverify to java process starting from JDK 13KT-45566 JDK 16 - e: java.lang.NoClassDefFoundError: Could not initialize class org.jetbrains.kotlin.com.intellij.pom.java.LanguageLevel
Tools. CLI. Native
KT-43874 Native / CLI: provide a way to show difference between Jvm and Native compilers
Tools. Compiler Plugins
KT-45783 Serialization: “AnalyzerException: Expected an object reference, but found I” caused by JvmInline and Serializable annotations
Tools. Gradle
KT-31027 java.lang.NoSuchMethodError: No static method hashCode(Z)I in class Ljava/lang/Boolean; or its super classes (declaration of ‘java.lang.Boolean’ appears in /system/framework/core-libart.jar)KT-43605 Kotlin Gradle Plugin 1.4.20 undeclared system property reads cause problems with Gradle configuration cache enabledKT-44204 Kotlin Gradle Plugin 1.4.21 makes impossible to use ANTLR in other pluginsKT-44361 Gradle: deprecate options includeRuntime, noStdlib, noReflectKT-44462 Kotlin Gradle plugin creates compile configuration with Gradle 7.0KT-44834 Gradle Kotlin DSL: Add languageSettings configuration lambda without apply callKT-44949 Compatibility with Gradle 7.0KT-44957 gradle - target.compilations seems to be deprecatedKT-45340 Update minimal supported version of Kotlin Gradle Plugin to 6.1
Tools. Gradle. JS
KT-43237 KJS: -jsLegacy Naming Convention is incompatible with NPMKT-43869 Error in webpack configuration not displayedKT-44614 Update Node.JS and Yarn versionsKT-44616 Kotlin/JS: IR backend with React: “Uncaught TypeError: _this__0 is undefined” runtime error in browserKT-45574 Sync Kotlin/JS compile tasks into one folder (build/js/packages//kotlin)
Tools. Gradle. Multiplatform
KT-42098 Commonizer is re-launched for every included Gradle buildKT-43116 Merge together MultiplatformHighlightingTest and MultiplatformAnalysisTestKT-44322 KotlinTargetComponent maintenance for -sources.jarKT-44900 Support gradle configuration cache with kotlin.multiplatform plugin
Tools. Gradle. Native
KT-46122 kotlinx-serialization and kotlinx-datetime can't be built with 1.5.0-RC
Tools. JPS
KT-13631 Compilation fails on Turkish locale because of locale-sensitive uppercasingKT-44644 Mark all @JvmMultifileClass parts compiled in the previous round as dirty in the JPS plugin, similarly to how it’s done in the Gradle plugin
Tools. Scripts
KT-45194 KT: Generate Kotlin Entities script: it doesn't workKT-44580 Scripts: Unable to set new file annotation hooks after first snippet compilation
Tools. kapt
KT-43686 KaptWithoutKotlincTask should use @CompileClasspath for kotlinStdlibClasspath for cache relocateability.KT-44130 KAPT changes field order in 1.4.30-M1KT-44909 Kapt: ReenteringLazyValueComputationException without stacktrace caused by when expression with sealed class function without explicit return typeKT-45168 KAPT: Java stubs generated for Kotlin files generated by annotation processors
Recent ChangeLogs: