CHANGELOG
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.20-RC
Backend. IR
KT-42239 IR: Report compilation error instead of throwing an exception (effectively crash compiler) when some declaration wasn't found while deserialization
Compiler
New Features
KT-44373 FIR: support error / warning suppression
Fixes
KT-38342 FIR: Consider renaming diagnostic from AMBIGUITY to OVERLOAD_RESOLUTION_AMBIGUITYKT-38476 [FIR] Forgotten type approximationKT-44682 raw FIR: incorrect source for qualified accessKT-44813 FIR bootstrap: various errors in collection-like classesKT-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-46235 JVM IR: Stack overflow error on large expressionsKT-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-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 return
Docs & Examples
KT-33783 Document when a range created with rangeTo is empty
IDE
KT-44825 Can't open Kotlin compiler settings in newly created project
IDE. Gradle Integration
KT-45277 Wrong jvm target in gradle module in IDEA
IDE. Native
KT-39320 [Commonizer] Reduce memory consumption
JavaScript
KT-44394 KJS / IR: null companion object for existed stdlib interfaces NodeFilter and SVGUnitTypesKT-45361 KJS / IR: IrConstructorCall representing annotation always returns UnitKT-46859 Exception during IR lowering: NullPointerException was thrown at: optimizations.FoldConstantLowering.tryFoldingUnaryOps
Libraries
KT-46002 Support all Unicode digit chars in digitToInt (JS and Native)KT-46184 Equivalize isLowerCase and isUpperCase behavior in all platforms
Middle-end. IR
KT-40425 IrGenerationExtension. Support simple reporting to compiler output (for development/debug)KT-45308 Psi2ir: “AssertionError: TypeAliasDescriptor expected” caused by using typealias from one module as a type in another module without a transitive dependency
Native. ObjC Export
KT-38600 Kotlin MP iOS Target doesn't contain kdoc comments
Reflection
KT-10838 Provide sensible toString() for property accessors in reflection
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. Compiler Plugins
KT-45538 Serialization, JVM IR: “AssertionError: No such type argument slot in IrConstructorCallImpl” with inner classesKT-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 case
Tools. Gradle
KT-24533 Kapt should not run when annotation processors are not configuredKT-46401 Deprecate ‘kotlin.parallel.tasks.in.project’ build propertyKT-46820 Gradle: kotlinc (1.5.0) race condition causes a NullPointerException
Tools. Gradle. JS
KT-46976 KJS: Broken support for dynamically created webpack.config.d
Tools. Gradle. Multiplatform
KT-46394 Multiplatform: Gradle 7 supportKT-46517 Add kotlin-project-model as api dependency to kotlin-gradle-plugin-api
Tools. Gradle. Native
KT-46680 Register concrete “embedAndSign” tasks instead umbrellaKT-46892 Kotlin Multiplatform Gradle Plugin: EmbedAndSign task always contains a default framework name
Tools. kapt
KT-31146 kapt: executableElement.getAnnotation(JvmOverloads::class.java) returns nullKT-35167 Kapt Gradle plugin doesn't handle --module-path javac argumentKT-41581 Kapt doesn't have line breaks between warnings
1.5.20-M1
Compiler
New Features
KT-45189 Support nullability annotations at module levelKT-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-38325 IllegalStateException: No parameter with index 0-0 when iterating Scala 2.12.11 ListKT-38540 Kotlin/Native Set.contains fails with specific enum setupKT-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-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-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-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-45316 [FIR] Ambiguity between two implicit invokes with receiverKT-45344 FIR: Wrong inferred type for nullable type parameterKT-45475 [FIR] No smartcast after throw in if inside try blockKT-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-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-46270 [FIR] Support @PublishedAPI in inline checkerKT-46539 Generate annotations on type parameters bounds in bytecodeKT-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 folders
IDE
KT-44638 clone() call is unresolved in JVM module of a multiplatform projectKT-45629 [ULC] KtUltraLightFieldForSourceDeclaration.nameIdentifier returns nullKT-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-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
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 arithmeticsKT-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-45655 KJS: “REINTERPRET_CAST” is not copyableKT-45866 Default parameter with generic in expect-actual declarations
Libraries
KT-43701 Stdlib: Expand KDoc of inc() and dec() for operators
Middle-end. IR
KT-36880 K/N IR: Reference to expect property in actual declaration is not remappedKT-45236 JVM / IR: “IllegalStateException: Symbol with IrTypeParameterSymbolImpl is unbound” caused by contracts and sealed class
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-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-13490 Equality doesn't work for KProperty.Accessor implementations
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 available
Tools. Compiler Plugins
KT-7112 Support calling Lombok-generated methods within same moduleKT-45541 JVM / IR / Serialization: NullPointerException caused by “Serializable” annotation and local data class
Tools. Gradle
KT-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 cache
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 condition
Tools. Gradle. Multiplatform
KT-36679 MPP Gradle plugin: Improve messaging for the commonizerKT-45832 CInteropCommonization: Filter out illegal dependencies
Tools. Gradle. Native
KT-39016 Missing stdlib when the downloading process was abortedKT-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'
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-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-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-43804 Kapt fails to preserve parameter names in open suspend functionsKT-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
Recent ChangeLogs: