2.2.10
Compiler
KT-79276 Dexing fails with “Cannot read field X because is null” with 2.2.0KT-79442 “Multiple annotations of type kotlin.coroutines.jvm.internal.DebugMetadata”: 2.2.0-Beta1 generates broken code with JVM default suspend methods in interfacesKT-78815 Symbol not found: __ZNSt3__117bad_function_callD1Ev error on iOS 15.5 simulator in Xcode 16.3 after update to 2.2.0-Beta2KT-78501 K2: Missing [ABSTRACT_SUPER_CALL] diagnostics for delegated interface method leads to AssertionError: isCompiledToJvmDefault during IR loweringKT-78479 IR lowering failed / Unexpected null argument for composable callKT-76477 Kotlin/Native: fix compiler performance reporting in sources->klib and klibs->binaryKT-78736 Missing [NOT_YET_SUPPORTED_IN_INLINE] diagnostics because of incorrect context updateKT-77685 “IllegalArgumentException: Sequence contains more than one matching element”KT-76365 K2: Missing ABSTRACT_SUPER_CALLKT-78352 False-positive IDENTITY_SENSITIVE_OPERATIONS_WITH_VALUE_TYPE when comparing with equality operator (==)
Compose compiler
KT-78479 Ensure that default transform affects functions entered through a callKT-78490 Fix visibility for default wrappers of protected methodsb/408492167 Emit parameter names in Compose source information
JavaScript
KT-79050 KJS / IC: “Unexpected body of primary constructor for processing irClass”KT-79089 KJS: Could not load reporter / Cannot find module ‘mocha’ when running jsNode tests
Native
KT-79075 Stuck on Kotlin_getSourceInfo_core_symbolicationKT-76178 LLVM Update: symbol ‘__ZnwmSt19__type_descriptor_t’ missing
Native. Runtime. Memory
KT-78925 Crash SIGABRT on Apple Watch after updating Kotlin to 2.2.0
Tools. CLI
KT-77445 UNRESOLVED_REFERENCE when importing classes from kotlin-stdlibKT-78263 java.lang.NoClassDefFoundError: Could not initialize class com.intellij.psi.impl.PsiSubstitutorImplKT-78318 Unresolved reference when compiling kotlin/JS project on fresh master
Tools. Compiler Plugins
KT-78490 “AssertionError: SyntheticAccessorLowering should not attempt to modify other files” when calling protected open composable with default argumentKT-78038 Make jvm-abi-gen compiler plugin output classloader-friendly
Tools. Gradle
KT-77023 Support creating KotlinJvmAndroidCompilation in KotlinBaseApiPlugin
Tools. Gradle. JS
KT-78504 [2.2.0-RC3] NPM Tasks in 2.2 RCs produce broken/unusable build cache entries
Tools. Gradle. Multiplatform
KT-77466 KMP - testFixturesApi and similar configurations do not affect jvmTestFixtures source setKT-68646 Compose extension's metrics/reports dir should use subdirs based on target
Tools. Gradle. Native
KT-77977 “Unknown hardware platform: riscv64” on JVM project build
Tools. Incremental Compile
KT-78807 Changing ABI fingerprint on non-ABI changes when lambda passed to inlined function
Tools. Kapt
KT-77853 K2 KAPT: backend internal error: exception during IR fake override builderKT-79138 K2: KAPT Java Stub Gen: Unresolved reference with @kotlin.Metadata in Java in 2.2.0
2.2.0
Analysis API
KT-73337 Migrate analysis sources to new IR parameter APIKT-75880 K2 Mode: Typealias reference resolves to the underlying class in KMP projectKT-74246 KaVisibilityChecker.isVisible is inefficient with multiple calls on the same use-siteKT-57733 Analysis API: Use optimized ModuleWithDependenciesScopes in combined symbol providersKT-69535 Redesign ‘containingSymbol’KT-69950 Analysis API: Introduce isSubtypeOf(ClassId)KT-68393 Analysis API: Rename KaClassLikeSymbol. classIdIfNonLocal to classIdKT-62924 Analysis API: rename KtCallableSymbol.callableIdIfNonLocal -> callableId
Analysis API. Code Compilation
KT-75502 K2: IDEA hangs when evaluating inside kotlin-stdlib modules in the Kotlin projectKT-73077 Evaluation of inline functions is broken inside Kotlin project and Amper module in Idea sourcesKT-73936 K2: CyclicInlineDependencyException: Inline functions have a cyclic dependency in evaluatorKT-74582 InterpreterMethodNotFoundError when trying to evaluate simple expressions after recent fixesKT-74524 Compilation exception with incorrect JvmName annotation argumentsKT-74443 Compilation peer collector ignores inline property accessors
Analysis API. FIR
New Features
Performance Improvements
KT-75790 Experiment with increasing DEFAULT_LOCKING_INTERVAL timeKT-72159 LLFirCompilerRequiredAnnotationsTargetResolver: consider rewriting it to use honest jumping locks
Fixes
KT-76331 Cleanup FileStructureElement for classesKT-73117 K2 AA: Exception “Setter is not found” when val has a setter without bodyKT-76540 K2: Missing library dependency on Android SDK from androidx.activity-1.8.2 causes LiveEdit failuresKT-73266 K2. “Declaration should have non-local container” with unclosed annotation on top-level functionKT-76432 JavaClassUseSiteMemberScope: Expected FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImplKT-76217 K2 AA: “No fir element was found for KtParameter” with multiple context parameter listsKT-74740 Highlighting is broken after the built-in serialization refactoringKT-76366 ContextCollector: annotations on class members don't have the class as implicit receiverKT-76352 ContextCollector: wrong class annotation context in BODY modeKT-76341 ContextCollector: support dangling modifiersKT-76332 “Declaration should have non-local container” for declaration inside file annotationKT-76115 Disable FirElementBuilder#getFirForElementInsideAnnotations optimization for files, classes and scriptsKT-76347 ContextCollector: avoid resolution for enum entry annotationsKT-76272 Cleanup AbstractFileStructureTestKT-75542 K2 AA: “FirDeclaration was not found for class KtNamedFunction, fir is class FirErrorExpressionImpl” for unclosed annotation on member functionKT-73719 K2. “FirDeclaration was not found for class KtDestructuringDeclaration, fir is class FirBlockImpl” on incorrect chain callKT-72908 K2 Analysis API: “FirDeclaration was not found for class org.jetbrains.kotlin.psi.KtFunctionLiteral” with non-local destructuring declaration without initializer before init blockKT-75532 ContextCollector: scope for an anonymous function type parameter contains regular parametersKT-74508 FirElementBuilder#findElementInside should reuse logic from KtToFirMapping#getFirKT-73066 [LL] Enable low-level-api-fir-native even with the disabled native partKT-75132 Investigate failures of sandbox diagnostic testKT-75130 Set up LL FIR tests for sandbox test dataKT-73386 Standardize LL FIR test for compiler test dataKT-75125 ISE “Value classes cannot have 0 fields” on instantiating inline class without fieldsKT-75179 ContextCollector: support error propertiesKT-74632 K2: ISE FirLazyDelegatedConstructorCall should be calculated before accessingKT-74818 K2 AA: “FirDeclaration was not found for class KtTypeParameter, fir is null” with TYPE_PARAMETERS_NOT_ALLOWED on anonymous functionKT-73183 Support context parameters in ContextCollectorVisitorKT-60350 K2 IDE: top level destructuring RHS should be resolvableKT-74794 K2: FirLazyExpression should be calculated before accessing with context parameter and implicit return typeKT-72938 Get rid of KaFirAnnotationListForReceiverParameterKT-73727 Exception in implicit type resolution
Analysis API. Infrastructure
KT-74917 [Analysis API, Test Framework] Introduce a way to acquire PsiFile for a given TestFile in KtTestModule
Analysis API. Light Classes
KT-73405 Get rid of KtElement#{symbolPointer, symbolPointerOfType} API usagesKT-75391 Reduce the amount of psi-based logic in light classesKT-70001 SLC adds @Override with zero text offset on override memberKT-75755 K2. False positive red code on vararg parameters in Kotlin class with @JvmOverloads when called from JavaKT-75397 Constructors and functions with non-last vararg parameters are treated as varargsKT-74868 Support context parametersKT-74733 SymbolPsiLiteral.text == value for Java constantKT-74620 Delegated functions with value classes are present in light classesKT-74595 Static functions with value classes are present in light classesKT-74284 Synthetic data class methods using value class types present in LC
Analysis API. Providers and Caches
Performance Improvements
KT-62115 Analysis API: Package providers are not cached per search scopeKT-74463 Analysis API: LLNativeForwardDeclarationsSymbolProvider queries its cache even when the ClassId cannot represent a native forward declaration
Fixes
KT-74541 Analysis API: Include files generated by resolve extensions in KaModule content scopesKT-64236 Analysis API: Introduce a separate module for fallback dependencies of library source modulesKT-74090 Analysis API: Support dumb mode (restricted analysis)KT-63780 Analysis API: Invalidate resolvable library sessions when binary library modules are modifiedKT-72388 KaFirStopWorldCacheCleaner: Control-flow exceptionsKT-74943 Analysis API: Replace KotlinGlobalModificationService with simpler global modification event publishing and listener-based modification trackersKT-70518 K2: Analysis API: Access indices outside of ConcurrentMap computation in symbol providersKT-74302 Analysis API: LLFirProvider should disregard self-declarations in getFirClassifierBy*KT-67868 Analysis API: Improve the architecture of LLFirKotlinSymbolProviders
Analysis API. Standalone
KT-72810 withMultiplatformLightClassSupport is inconvenient in Standalone
Analysis API. Stubs and Decompilation
KT-71787 PsiRawFirBuilder.Visitor#visitStringTemplateExpression forces AST loadingKT-68484 K2 IDE, Analysis API: “We should be able to find a symbol for function” for getting KaType of Iterable<T>.map(transform: (T) -> R) parameter in J2K
Analysis API. Surface
New Features
KT-74475 Add isInline for KaPropertySymbolKT-75063 KaScopeContext: support context parameters
Performance Improvements
KT-73669 Support psi-based symbol pointer for implicit primary constructorsKT-76008 Provide PSI-based implementation for KaFirNamedClassSymbol#companionObjectKT-70165 Introduce PSI-based KaSymbols for K2
Fixes
KT-72730 K2: “Unexpected owner function: KtNamedFunction” on vararg val parameter in functionKT-75123 K2. KaFirNamedFunctionSymbol should contain a receiverKT-75894 Cannot build KaFirJavaFieldSymbol for FirFieldImplKT-75115 Analysis API: The JavaModuleResolver compiler class is leaked to Analysis API platform implementationsKT-76018 K2: Stop the wold leads to deadlock/freezeKT-76011 KaFirNamedClassSymbol#companionObject doesn't provide generated objects generated by compiled pluginsKT-72482 “KotlinIllegalArgumentExceptionWithAttachments: Expected all candidates to have same callableId but some of them but was different” on trying to add the importKT-75586 KaFirPropertyGetterSymbol#isInline and KaFirPropertySetterSymbol#isInline is incorrect for accessors with explicit modifierKT-58572 Analysis API: Enforcing STATUS resolve in ‘KtFirNamedClassOrObjectSymbol.visibility’ may cause lazy resolve contract violationKT-75574 Recognize injected code fragment copiesKT-75573 Recognize physical file copies as dangling filesKT-74801 Analysis API: Publish/subscribe to modification events with a single message bus topicKT-73290 Analysis API: Improve the architecture of content scopes and resolution scopesKT-68901 Constructor delegation call receiver missing in fir implementationKT-72639 Support context parameter APIKT-73112 AA: FirExpression.toKtReceiverValue should handle context receivers properlyKT-74905 Cannot find context receiver in FIR declarationKT-74563 createPointer is overloaded not for all implementationsKT-73722 Analysis API: Automatically check that the API surface is fully documentedKT-65065 Provide KtTypeReference#getShortTypeText()
Backend. Native. Debug
KT-75991 Xcode 16.3: Fix lldb stepping test over an inline function
Backend. Wasm
New Features
KT-59032 Support instantiation of annotation classes on WASM
Fixes
KT-77622 K/Wasm: investigate CMP crash on mobile SafariKT-76747 [Wasm] Wasm name section absent for wasm structsKT-76701 K/Wasm: custom formatters are not loaded when a project is built with incremental compilationKT-66081 K/WASM: 0/0, 5/0 and 5%0throw not ArithmeticException, but RuntimeErrorKT-76287 [Wasm] Enable stdlib and kotlin.test tests after compiler bootstrapKT-75871 [Wasm] Implement new RTTI approachKT-75872 Wasm / IC: IllegalStateException: IC internal error: can not find libraryKT-74441 K/Wasm: incorrect 1e-45.toString()KT-59118 WASM: floating point toString inconsistenciesKT-68948 Wasm: float from variable is printed with many decimal pointsKT-69107 [wasm] Seemingly incorrect roundingKT-73362 Migrate K/Wasm sources to new IR parameter API
Compiler
New Features
KT-70722 Implement better Kotlin warnings for value classes and JEP 390 (Warnings for Value-Based Classes)KT-71768 Enable -Xjvm-default=all-compatibility by default to generate JVM default interface methodsKT-54205 Support jakarta Nullability annotationsKT-57919 Store all annotations in Kotlin metadata on JVM under a flagKT-73255 Change defaulting rule for annotationsKT-74382 Annotating Java record components for @JvmRecord data classKT-74811 Prohibit usages of @MustUseValue / @IgnorableValue if RV checker is not enabledKT-74806 Implement feature flag for improved unused return value checkerKT-74809 Support unnamed local variablesKT-73508 Add a warning diagnostic for using kotlin.concurrent.AtomicRefKT-72941 ANNOTATIONS_ON_BLOCK_LEVEL_EXPRESSION_ON_THE_SAME_LINE missing in K2KT-74497 Warn about incompatible Kotlin and Java targets in annotationsKT-75061 Support context-sensitive resolution in type positionKT-75315 Support context-sensitive resolution in the call-argument positionKT-75316 Support context-sensitive resolution for expression-position with expected typeKT-76088 Support context-sensitive resolution for annotation argumentsKT-74049 Introduce special override rule to allow overriding T! with T & Any
Performance Improvements
KT-76395 Performance degradation on 28.03.2025KT-76422 FirJavaFacade#createFirJavaClass: do not compute super type references right awayKT-75957 K2: PsiRawFirBuilder.Visitor#toFirExpression forces AST loading via getSpreadElementKT-74824 Exponential performance caused by nested flexible typesKT-62855 K2: extra allocation for SAM conversion compared to K1KT-74977 K/N: support stack array for Array(size) callKT-74369 Exponential compiler memory usage in specific situations with type inference
Fixes
KT-76606 Enable ‘Indy: Allow lambdas with annotations’ by defaultKT-77301 False positive Context Parameter resolution when using DslMarkerKT-74389 K2: False positive NON_EXPORTABLE_TYPE on non-Unit Promise<...> in K/JSKT-77219 “@Composable annotation is not applicable” on vararg @Composable () -> Unit in Kotlin 2.2.0KT-76357 K2: a nested class annotation observes member declarations of the outer classKT-72734 Support new callable reference nodes in Kotlin NativeKT-74421 K2: Missing “val cannot be reassigned” when trying to assign a value to parent's “val”KT-63720 Coroutine debugger: do not optimise out local variablesKT-74470 NSME on calling in runtime internal constructor of value class with default arg from testsKT-77640 Context parameters: using ‘contextOf()’ function leads to [NO_CONTEXT_ARGUMENT]KT-73909 Add an inspection discouraging usage of kotlin.concurrent Native atomics in favor of the new atomicsKT-76583 CCE: suspend lambda attempts to unbox value class parameter twice after lambda suspendedKT-76663 KJS: KotlinNothingValueException caused by expression return since 2.1.20KT-75457 Native: cache machinery uses stdlib cache with default runtime options even if custom runtime options are supplied when partial linkage is disabledKT-76615 K2: “IllegalArgumentException: Inline class types should have the same representation: Lkotlin/UByte; != B” for mixed Java/Kotlin codeKT-77220 Annotation with EXPRESSION is not allowed on lambdas in Kotlin 2.2.0KT-76381 K2: Expected expression ‘FirPropertyAccessExpressionImpl’ to be resolvedKT-74739 Native: “IllegalArgumentException: All constructors should've been lowered: FUNCTION_REFERENCE”KT-74325 Explicit API mode does not enforce explicit return types for extension propertiesKT-77259 Confusing message for ANNOTATION_WILL_BE_APPLIED_ALSO_TO_PROPERTY_OR_FIELDKT-73771 K2: Infinite compilation caused by buildList without typeKT-61258 Kotlin/Native: CLASS CLASS name: modality:FINAL visibility:local superTypes:[.Base]KT-75317 Kotlin/Native: segfault in kotlin::gc::Markkotlin::gc::mark::ConcurrentMark::MarkTraitsKT-75965 The iOS app did not run successfully in Release modeKT-77397 Report UNSUPPORTED_CONTEXTUAL_DECLARATION_CALL when calling declaration with contextual function type in signatureKT-77137 K2: Controversial behavior allows resolving annotation arguments on a companion inside itKT-77150 Native: compilation fails with an assertion errorKT-51960 ClassCastException: Inline function with both context and extension receiver produces this when invokedKT-73611 Remove -Xextended-compiler-checks in favor of a deprecation cycleKT-74649 Deprecate language versions 1.8 and 1.9KT-77283 Binary compatibility of FirDeclarationCheckerKT-73445 K2: do not report “cannot infer visibility” when inheriting multiple implementationsKT-75945 Indy: Allow lambdas with annotationsKT-76898 K2: ClassCastException when data class shadows supertype's componentX method with wrong typeKT-75992 Xcode 16.3: stacktraces on simulators are not symbolicatedKT-76805 Wrong NPE occurs when assigning synthetic properties with platform types in Kotlin 2.1.20KT-76171 “KotlinIllegalArgumentExceptionWithAttachments: Expected expression ‘FirSingleExpressionBlock’ to be resolved”KT-77078 K2: anonymous object is wrongly allowed to implement interfaces by unsafe DelegationKT-72722 Treat ‘copy’ calls of a data class as explicit constructor usagesKT-77001 Leave ForbidParenthesizedLhsInAssignments as a warningKT-75828 Store backing field/delegate annotations and extension receiver annotations in metadataKT-58369 K2: enable DFA warningsKT-51258 Annotations should go before context receiversKT-76253 K2 Compiler: Less precise diagnostic COMPONENT_FUNCTION_AMBIGUITY for flexible typeKT-59526 Store annotation default values in metadata on JVMKT-63850 K2: setter with an annotated parameter has isNotDefault == false flag in metadataKT-75712 -Wextra: false positive UNUSED_LAMBDA_EXPRESSION on functional type variable assignment with inferred typeKT-4779 Generate default methods for implementations in interfacesKT-69624 Debugger: Missing local variable in Variables view (inline function)KT-75518 NO_CONTEXT_ARGUMENT should report the name of the context parameter in addition to the typeKT-76199 Introduce -Xcontext-sensitive-resolution compiler flagKT-75553 MISSING_DEPENDENCY_SUPERCLASS and MISSING_DEPENDENCY_SUPERCLASS_WARNING is reported at the same time on the same elementKT-76159 Obsolete error “‘@JvmDefaultWithCompatibility’ annotation is only allowed on interfaces” should be removedKT-76660 False negative RETURN_NOT_ALLOWED in lambda in default argument leads to NoClassDefFoundError: $$$$$NON_LOCAL_RETURN$$$$$KT-76301 Fail to infer types after syntactical changeKT-74999 K2: KotlinNothingValueException within Extension FunctionKT-76675 KIAEWA exception at KaFirDataFlowProvider with non-local return from nested inline callKT-75756 Backend Internal error: Exception during IR lowering when trying to access variable from providedProperties in class within kotlin custom scriptKT-76345 Enhance variable fixationKT-76578 [FIR, K1/K2 Regression] lateinit is allowed on loop parametersKT-76448 FirOverrideChecker: class ClsMethodImpl is not a subtype of class KtNamedDeclaration for factory VIRTUAL_MEMBER_HIDDENKT-73360 Migrate K/JVM sources to new IR parameter APIKT-74852 Kotlin/Native: allow caches for thread state checker and sanitizersKT-76130 IR evaluator does not support array literals in annotation parameter default valuesKT-76436 Missing K2 checker: non-local return through lambda passed to inline f/oKT-74326 False negative: no variable must be initialized error though code doesn't compileKT-76572 FIR_NON_SUPPRESSIBLE_ERROR_NAMES does not contain deprecation errorsKT-75704 Refactor FirWhenSubjectExpressionKT-76284 Flexible captured type is not approximated in receiver positionKT-76192 RETURN_TYPE_MISMATCH with same expected and actual type: nullability of actual type is omittedKT-75944 Allow using invokedynamic for lambdas with no ‘Runtime’ level retention annotationsKT-76396 FirIntegerConstantOperatorScope: NoSuchElementException: Collection contains no element matching the predicateKT-76209 CONFLICTING_UPPER_BOUNDS on Nothing boundKT-59506 Context receivers: Unable to use trailing comma in receiver listKT-46119 NONE_APPLICABLE instead of NAMED_ARGUMENTS_NOT_ALLOWED with overloaded Java constructor callKT-75503 Run lazy resolution in CallableCopyTypeCalculator and use withForcedTypeCalculator everywhere in checkersKT-76485 Don't report EXTENSION_SHADOWED_BY_MEMBER if extension can be called with named argumentsKT-76154 False positive “EXTENSION_SHADOWED_BY_MEMBER” when extension adds default values to parametersKT-76527 False positive UNSUPPORTED_CONTEXTUAL_DECLARATION_CALL with -Xcontext-receivers and implicit invokeKT-63246 K2: False positive NOTHING_TO_OVERRIDE in generic property with context receiver in non generic class extending generic classKT-58534 K2: “Argument type mismatch” with typealias to context receiver functional typeKT-71792 Switch latest stable version in Kotlin project to 2.2KT-74827 CompilationErrorException : Could not load module in an attempt to find deserializer when trying to evaluate an expressionKT-70352 K2: False-negative CONFLICTING_UPPER_BOUNDS on Nothing boundKT-71481 K2: drop pre-1.6 language features from compiler codeKT-74454 Support trailing comma in context parametersKT-74069 False positive UNUSED_EXPRESSION due to Long/Int conversionKT-74337 Local Delegated properties don‘t preserve their annotations and don’t show up in reflectionKT-55187 Context receivers in function types can have labelsKT-58498 Context receivers: ClassCastException with object and extension function in interfaceKT-58165 K2: “IllegalArgumentException: No argument for parameter VALUE_PARAMETER” on overridden contextual propertyKT-75234 Add error for callsInPlace contracts on context parametersKT-73805 K2: Investigate missing diagnostic in implicit invoke call on context function type with receiver from module with disabled context parametersKT-41934 NI: a type variable for lambda parameter has been inferred to nullable type instead of not null oneKT-75983 Backend Internal error: Exception during IR lowering ‘IllegalStateException: Internal error: cannot convert Any to Int’KT-75535 Compilation of typealias does not check for clashesKT-72313 K2 IDE / KMP Debugger: Evaluation of inline functions declared in a common source set causes a crashKT-76290 False positive UNUSED_EXPRESSION while returning Unit in the when branchesKT-32358 NI: Smart cast doesn't work with inline function after elvis operatorKT-76316 K2: Missing NON_PUBLIC_CALL_FROM_PUBLIC_INLINE on object extending private class in public inline functionKT-76324 Frontend diagnostic says “... this will be an error in Kotlin N.M” but N.M is already releasedKT-76058 PCLA: compile-time failure on calling a higher-order function from another module inside a lambda assigned to a variable of a type with a postponed type variableKT-75571 K2: type mismatch error provides unsubstituted typesKT-31391 ‘Recursive call is not a tail call’ with elvis operator in tailrec functionKT-73420 False-positive NON_TAIL_RECURSIVE_CALL on tailrec function with elvis in the return statementKT-75815 Disable warnings about different context parameter names in overridesKT-75169 Unnecessary EXTENSION_SHADOWED_BY_MEMBER on generic declarationsKT-75483 Native: redundant unboxing generated with smart castKT-76339 K2: Dangling modifier list is missed for enum entries in PSI modeKT-75513 Avoid overrides traversal without preinitializationKT-74587 Report an error when JvmDefaultWithoutCompatibility is used with -Xjvm-default=allKT-76257 Annotations with class references are not supported when marking IR declarations as visible to metadataKT-71793 Drop language versions 1.6 and 1.7KT-59272 Incorrect bytecode generated: wrong line number table after conditionKT-69248 K2: IAE “class KtDotQualifiedExpression is not a subtype of class KtCallExpression for factory ENUM_CLASS_CONSTRUCTOR_CALL” with qualified enum constructor callKT-73778 Kotlin Debugger: NSFE on accessing private property from dependencies during evaluationKT-74131 Incorrect line numbers for static initializer with delegated local variableKT-76320 K2: PsiRawFirBuilder: import alias triggers ast loadingKT-63851 K2: No setterValueParameter in metadata for property setter with an annotated parameterKT-55083 JVM: AbstractMethodError caused by lambda with sealed base interface and fun sub interface and overridden methodKT-16727 Names for anonymous classes in interfaces are malformed on JDK 8KT-12466 NoClassDefFoundError: B$DefaultImpls on super interface call through K-J-K inheritanceKT-71002 Possible inheritance from nullable type through typealiasKT-75293 K2: Missing [HAS_NEXT_FUNCTION_TYPE_MISMATCH] diagnosticsKT-75498 Forbid .declarations access from checkersKT-72335 KotlinIllegalArgumentExceptionWithAttachments when using illegal selectorKT-68375 K2: FirPrimaryConstructorSuperTypeChecker fails on generated superclassesKT-71718 K2: drop TypePreservingVisibilityWrtHackKT-75112 FE resolves wrong receivers order for property passed to delegateKT-75924 K2. Incorrect generic type Inference “R? & Any” appears for “Add explicit type arguments”KT-75969 java.lang.IllegalArgumentException: source must not be null on red codeKT-75322 ConeDiagnosticToFirDiagnosticKt: source must not be nullKT-73800 Wrong method executed on super call in -Xjvm-default=all/all-compatibility with an extraneous super-interfaceKT-38029 Wrong method executed on super call in diamond hierarchy with covariant overrideKT-75242 Any use-site target can be applied to a lambda and an expressionKT-73051 incorrect direction of subtyping violation in type mismatch error's message for A<X> </: A<Y> given a Tv <: Rv == C constraint from a lambda return positionKT-75090 Argument type mismatch: actual type is ‘SuspendFunction0’, but ‘SuspendFunction0’ was expected when anonymous function is passed to function expecting suspend function typeKT-74956 K2: No USAGE_IS_NOT_INLINABLE with compiling an inlined function callKT-76049 K2: drop explicitTypeArgumentIfMadeFlexibleSynthetically creation when DontMakeExplicitJavaTypeArgumentsFlexible is enabledKT-76055 K2: drop prepareCustomReturnTypeSubstitutorForFunctionCall logic when DontMakeExplicitJavaTypeArgumentsFlexible is enabledKT-76057 K2: don't do reverse Java overridability checks when DontMakeExplicitJavaTypeArgumentsFlexible is enabledKT-75197 K2: Missing [COMPARE_TO_TYPE_MISMATCH] diagnosticsKT-75639 Inline context function leads to ClassCastExceptionKT-75677 K2: change runtime behavior of KT-75649 case in 2.2KT-75961 K2: PsiRawFirBuilder.Visitor#visitSimpleNameExpressionforces AST loading via getReferencedNameElement().node.textKT-67869 Make inference for lambda working consistently inside and outside of the callKT-74885 K2: IAE “source must not be null” in FirCyclicTypeBoundsCheckerKT-75578 K2: False negative [SUPER_CALL_WITH_DEFAULT_PARAMETERS] when calling the upper-class implementation of a method with the default value argumentKT-73954 Generate implementations in classes for inherited non-abstract methods in -Xjvm-default=all-compatibilityKT-75173 Context parameters: KotlinIllegalArgumentExceptionWithAttachments if you override function with value/extension parameter by fun with contextKT-75742 Native: "IllegalArgumentException: unknown pass name '' " when specifying an empty list of LLVM passesKT-74819 K2: False-positive overload resolution ambiguity for flatMap inside PCLAKT-75093 K2 IDE: “Unreachable code” highlighting range is confusingKT-74572 Context parameters: contracts don't work with context parametersKT-74765 Move K1 lazy IR implementation from ‘ir.tree’ to ‘psi2ir’KT-71425 IR Inliner: investigate return type of an inlined blockKT-74764 Native: merge init nodes generated within the same LLVM module for the same klibKT-75561 K/N: place InteropLowering after UpgradeCallableReferences phaseKT-73369 K/N: move interop lowering up the pipelineKT-75517 K2: Refactor FirCallableSymbol.resolvedContextParameters to return symbolsKT-75821 K2: REPL resolution doesn't take into account the property type when processing its initializerKT-75705 IllegalArgumentException when isInitialized is used with java fieldKT-75334 Java target shouldn‘t be specified if Kotlin target isn’t specifiedKT-75157 Missing PARAMETER_NAME_CHANGED_ON_OVERRIDE and DIFFERENT_NAMES_FOR_THE_SAME_PARAMETER_IN_SUPERTYPES for context parametersKT-75160 Check usages of value parameters in checkers and adapt to context parametersKT-75729 KtPsiFactory: no type-safe way to create triple-quoted KtStringTemplateExpressionKT-75040 Unify subject and subjectVariable in FirWhenExpressionKT-75323 FirSyntheticProperty: Unexpected status. Expected is FirResolvedDeclarationStatus, but was FirDeclarationStatusImplKT-75602 Introduce concept of shared library session in Fir sessionsKT-75509 PARAMETER_NAME_CHANGED_ON_OVERRIDE is reported randomlyKT-75124 IAE “class org.jetbrains.kotlin.psi.KtContextReceiver is not a subtype of class org.jetbrains.kotlin.psi.KtParameter for factory EXPOSED_PARAMETER_TYPE” on private context receiverKT-73585 K2: ABSTRACT_SUPER_CALL is not reportedKT-75531 K2 REPL: local name doesn't shadow one from implicit receiverKT-73359 Migrate frontend sources to new IR parameter APIKT-75380 K2: Modality is configured incorrectly for some FirDefaultPropertyAccessorKT-75526 Regression in K2 scripting: local name doesn't shadow one from the implicit receiverKT-59379 K2: Missing MIXING_NAMED_AND_POSITIONED_ARGUMENTSKT-75106 K2: type parameters of anonymous functions are unresolvedKT-73387 Unexpected implicit type during enhancementKT-72618 Cannot define operator inc/dec in class contextKT-74546 Serialize context parameters to metadataKT-68768 K2: unsuccessful inference fork with jspecify annotationsKT-75345 Add a test for KT-42271KT-75012 K2: Compiler crash on dynamic == nullKT-75195 IllegalStateException: No value for annotation parameter when @all meta-target is used with annotation with constructorKT-75163 WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET for @all meta-target although there are applicable targetsKT-75198 @all meta-target should be forbidden for delegated propertiesKT-74958 K2: UNEXPECTED_TRAILING_LAMBDA_ON_A_NEW_LINE isn't reported on accidental trailing closureKT-74982 Improve UNSUPPORTED message handlingKT-75111 False negative “This declaration needs opt-in” for usage of enum entry with OptIn marker in another moduleKT-74924 Infinite recursion in substitution of captured type with recursive supertypeKT-75289 NPE: getParent(...) must not be nullKT-75275 Inline class member inherited from interface is not mangled in ‘-Xjvm-default=all-compatibility’KT-74340 FIR: folding binary expression chains for psi parserKT-73831 Do not choose field target in annotation classesKT-73494 Enable first-only-warn annotation defaulting modeKT-75174 K2: incorrect influence of return type nullability on required receiver type in KJK hierarchy with propertyKT-74920 Overriding T! with T & Any is not allowed to the extension property receiver typeKT-75150 False ambiguous context parameter reported because context is not chosen via generic parameterKT-74965 CLI compiler doesn't report syntax errors for JS, Metadata backends if light-tree mode is disabledKT-74303 K2 IDE / Kotlin Debugger: AE “Trying to inline an anonymous object which is not part of the public ABI” on evaluating private inline function with object insideKT-75177 NoSuchMethodError on suspend default interface method fake override returning inline class in -Xjvm-default=all-compatibilityKT-74718 K/N: Move TestProcessor phase to the top of the pipelineKT-75015 Context parameters: it is possible to declare anonymous function with modifiers but they don't have any effectKT-75092 K2: Missing errors for modifiers on anonymous function in statement positionKT-75009 Context parameters: context is unresolved inside anonymous function if passed as an argumentKT-75017 Context parameters: "IllegalStateException: Cannot find variable a: R|kotlin/String| in local storage " when context from another local function is calledKT-75154 Context receiver deprecation warning should depend on langauge version, not on LATEST_STABLEKT-74979 Context parameters: anonymous functions with a context aren't parsed in complex casesKT-74673 K2: ClassCastException when passing suspending functional interface with genericKT-74469 K2: False positive: “Argument type mismatch” during Java interopKT-75105 K2: False negative NAME_IN_CONSTRAINT_IS_NOT_A_TYPE_PARAMETER for type constraint of anonymous functionKT-74929 False positive TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER if it is used with T&AnyKT-74227 K2: “Cannot infer type for this parameter. Please specify it explicitly” caused by lambda in another lambda with a parameterized function typeKT-64558 K2 compiler does not report UNNECESSARY_SAFE_CALL, UNNECESSARY_NOT_NULL_ASSERTION, USELESS_ELVIS, while K2 IDEA doesKT-74728 K2: Java method overriding Kotlin method with receiver loses vararg modifierKT-70789 CLI error “mixing legacy and modern plugin arguments is prohibited” on using -Xcompiler-plugin unless default scripting plugin is disabledKT-72829 Forbid ‘entries’ name of enum entry, and deprioritize it in resolveKT-75037 K2: IrGeneratedDeclarationsRegistrar.registerFunctionAsMetadataVisible doesn't handle extension receivers and context parametersKT-73149 Annotations support for context parametersKT-74798 Report error on local contextual propertiesKT-74092 Context parameters: it is not possible to declare an anonymous function with a contextKT-52152 K2: Investigate suspicious code at SAM conversionsKT-75016 K2: BackendException when context var property is declared in interfaceKT-74474 K2: Report more precise diagnostic when last expression of non-unit lambda is a statementKT-74478 K2: False negative RETURN TYPE_MISMATCH if the last statement of a lambda is indexed assignmentKT-73685 K2 IDE / Kotlin Debugger: NSME “Method not found” on evaluating function with constant value in @JvmNameKT-74449 Report RETURN_TYPE_MISMATCH instead of ARGUMENT_TYPE_MISMATCH for return expressions in lambdasKT-74918 FIR: account for K/Wasm diagnostics in generateNonSuppressibleErrorNamesFileKT-74897 K2: Report UNSUPPORTED_FEATURE instead of TOPLEVEL_TYPEALIASES_ONLY for nested type aliasesKT-74963 K2: Fir2Ir: Avoid a situation when startOffset > endOffset in generated IrBranchKT-74697 Overriding a method that's both deprecated and non-deprecated should not cause warningsKT-74928 K2: “IllegalStateException: Cannot find cached type parameter by FIR symbol” in KJK hierarchy with extension propertyKT-74630 K2: local class arguments in annotations on types and type parameters are not serializedKT-74445 Commonize Native Function/Property reference loweringsKT-74670 Warning message CONTEXT_CLASS_OR_CONSTRUCTOR isn't reported for context receiver on the constructorKT-74617 Trivial SMAP optimization leads to missing debug info after inlineKT-74812 compile-time failure on a callable reference with an input type inferred to an inaccessible generic typeKT-66195 K2: Java method is not enhanced from overridden's context receiversKT-74501 Context parameters: ABSTRACT_MEMBER_NOT_IMPLEMENTED if fun with context is implemented in Java in KJK hierarchyKT-74385 Missing diagnostic on repeated suspend modifier in function typeKT-74749 Provide explanation IR before script compilationKT-74751 K2: IllegalStateException: Can't apply receivers of FirPropertyAccessExpressionImpl to IrTypeOperatorCallImplKT-74729 NPE when suspend lambda has inline class parameterKT-74336 Not supported: class org.jetbrains.kotlin.fir.types.ConeIntersectionTypeKT-74203 K2: False negative NO_ELSE_IN_WHEN of a generic type with star projection <*> bounded by a sealed hierarchyKT-48085 Kotlin/Native: LLD removes live code with --gc-sections when producing DLLKT-69164 Native: use lld from bundled LLVM distribution when compiling on Windows for a MinGW targetKT-74081 Context parameters: implicit call resolves to extension when there is a contextKT-74682 Implement internal type exposure via parameter bounds deprecation postponementKT-74556 K2: “IAE: class KtDestructuringDeclaration is not a subtype of class KtNamedDeclaration for factory REDECLARATION” with two non-local destructuring declarationsKT-73146 Context parameters CLI & diagnosticsKT-72104 Consider enabling check for unbound symbols in JVM before loweringsKT-74568 Synthetic nested classes missing JVM attributesKT-73703 [Native] Move KonanIrLinker to serialization.native moduleKT-61175 K2: FirReceiverParameter does not extend FirDeclarationKT-73961 ‘lateinit is unnecessary’ on transient properties should not be reported for serializable classesKT-73858 Compose / iOS: NullPointerException on buildingKT-62953 JVM IR: Use SimpleNamedCompilerPhase instead of NamedCompilerPhaseKT-72929 Consider caching typealiased constructor symbols created by TypeAliasConstructorsSubstitutingScopeKT-74459 K2: false positive MISSING_DEPENDENCY_CLASS for types inside default argumentKT-73705 [Native] Decouple native caches support from KonanIrLinker and KonanPartialModuleDeserializerKT-74091 K2: @JvmOverloads-produced overloads have generated line number tableKT-69754 Drop -Xuse-k2 compiler flagKT-73352 K2: false negative ARRAY_EQUALITY_OPERATOR_CAN_BE_REPLACED_WITH_EQUALSKT-72962 Consider enabling ConsiderForkPointsWhenCheckingContradictions LF earlierKT-73027 IllegalStateException: Annotation argument value cannot be null: sinceKT-74242 Freeze on runCatching call in finally block inside SAM conversionKT-29222 FIR: consider folding binary expression chainsKT-73760 Cannot implement two Java interfaces with @NotNull-annotated type argument and Kotlin's plain (nullable) type parameterKT-58933 Applying suggested signature from WRONG_NULLABILITY_FOR_JAVA_OVERRIDE leads to red codeKT-70507 Should parentheses prevent from plus/set operator desugaring?KT-67520 Change of behaviour of inline function with safe cast on value typeKT-67518 Value classes leak their carrier type implementation details via inliningKT-72305 K2: Report error when using synthetic properties in case of mapped collectionsKT-71226 K2 Evaluator: Code fragment compilation with unresolved classes does not fail with exceptionKT-70233 Implement a deprecation error for FIELD-targeted annotations on annotation propertiesKT-67517 Value class upcast to Any leaks carrier type interfacesKT-72814 FIR: don't use function references in FirThisReferenceKT-73153 K2: Standalone diagnostics on type arguments are not reportedKT-73011 K2: Allow overloads resolution for callable references based on expected type variable with constraintsKT-70139 Remove dependencies of debugger on K1 and old JVM backendKT-69223 Drop parallel lowering mode in JVM backendKT-7461 Forbid using projection modifiers inside top-level Array in annotation's value parameterKT-53804 Restore old and incorrect logic of generating InnerClasses attributes for kotlin-stdlibKT-52774 Resolve unqualified enum constants based on expected type
Compose compiler
New features
5f7e5d1 Enabled PausableComposition feature flag by defaulte49ba7a Enabled OptimizeNonSkippingGroups feature flag by default
Fixes
b/420729503 Avoid copying @Deprecated annotations on Compose compiler stubsb/417412949 Emit fake line number for skipToGroupEnd branchb/412584977 Fix false positive for overriding open functions from older dependenciesb/409238521 Fix crash when searching for ComposableLambda::invoke function on JSb/408752831 Fix early return with value from key groupsb/388505454 Treat context parameters the same way as extension receiverb/408013789 Add missing return for the default function wrappersb/405541364 Realize coalescable children in the body of key callb/305035807 Add support for @Composable function references with K2b/401484249 Generate a group around Array constructor callb/400380396 Fix missing endMovableGroup call with early return in key functionb/397855145 Fix “Unknown file” error in target annotation inferenceb/274898109 Fix off-by-one error when calculating changed arg count for lambdasb/377499888 Allow restarting overridden functions in a final classb/393400768 Use -1 for .changed call if nullable enum parameter is nullb/390151896 Fix default arguments with varargs in @Composable functionsb/388030459, b/377737816 Prevent usage of transitive captures in lambda memoizationb/310004740 Check vararg parameter length in skipping logicb/367066334 Add diagnostic to restrict @Composable annotation to function types onlyb/388505454 Change order of $changed bits with context parametersCMP-7873 Native build fails with “e: Compilation failed: Exception during generating code for following declaration”
IDE
KT-54804 Generate synthetic functions for annotations on properties in light classes
IR. Actualizer
KT-70907 Actualize fake override symbols in Ir Actualizer
IR. Inlining
Fixes
KT-76145 Enhance error message about poisoned KLIBs in KLIB-based compilersKT-70916 IR: Report errors on exposure of private types in non-private inline functionsKT-73155 Move Mapping from LoweringContext back to CommonBackendContextKT-76186 [IR] Sanitize deserialized IR dump of anonymous classesKT-75788 IR inliner: Serialize preprocessed inline functions in a separate place inside KLIBsKT-71416 Perform IR-level visibility diagnostics for inline functions after the first phase of inliningKT-76224 [IR][Inliner] Dumb file is unsuported in IrSymbolBase.getDescriptor()KT-75793 IR inliner: Stop injecting the deserialized function body to LazyIR inline functionKT-75791 IR inliner: NonLinkingIrInlineFunctionDeserializer should load inline functions from a separate location in a KLIBKT-73708 Use some marker in KLIBs produced with IR inlinerKT-76024 [JS][IR Inliner] Partial linkage: No function found for symbol in kotlin packageKT-75733 Reorganize execution of the common prefix at 1st phase of compilationKT-75986 Add an option to the DumpIrTreeOptions to dump IR signature if availableKT-75951 [IR Inliner] Illegal non-local return reported by the partial linkage engineKT-75932 Fix a problem with already bound symbol with public IR inline enabledKT-64812 Investigate and fix remaining owner usages in inlinerKT-74732 IR: Exposure of private type is reported at wrong source locationKT-76007 IR deserialization tests w/ enabled IR inliner: undefined offsets in IrInlinedFunctionBlock.inlinedFunctionSymbolKT-74734 [Native] Use NativeInliningFacade in new subclass of AbstractFirNativeSerializationTestKT-73985 KLIB Synthetic Accessors Dump Format: Include local declarationsKT-72594 [JS][Native] Add IrInliningFacade to test runnersKT-74456 SerializedIrDumpHandler: Compare IR dumps with source offsetsKT-73624 [Native] Implement inlining facadeKT-70370 SyntheticAccessorLowering: Turn on mode with narrowing visibility on 1st phase of compilationKT-70452 OuterThisInInlineFunctionsSpecialAccessorLowering - run it after inlining of private functionsKT-70451 Enable double-inlining in Native & JS backends unconditionallyKT-69681 IR: Report warnings on exposure of private types in non-private inline functions
IR. Interpreter
KT-74581 Support IrRich*Reference in IR interpreter
IR. Tree
Fixes
KT-73189 Migrate compiler sources to new IR parameter APIKT-77508 K/JS and K/Native CompilationException Wrong number of parameters in wrapperKT-74331 Implement IrElement.copyAttributes as a true attribute map copyKT-76600 Use a language feature to check error on cross-file IrGetField operations generated by compiler pluginsKT-75628 IR validator: Forbid IrExpressionBody for IrFunctionKT-75679 Extract common invokeFunction in IrRichCallableReferenceKT-74799 [Native][IR] Excessive FUNCTION_INTERFACE_CLASS after deserializationKT-71138 Report error on cross-file IrGetField operations generated by compiler pluginsKT-75196 [IR] Make startOffset and endOffset mutableKT-73206 Extract common parts from new IrRichFunctionReference/IrRichPropertyReference nodesKT-73190 Migrate common backend sources to new IR parameter APIKT-73225 Migrate compiler.ir.serialization.common to new IR parameter APIKT-73220 Migrate compiler.ir.tree to new IR parameter APIKT-75189 Add an IR validation for the correspondingPropertySymbolKT-74275 Adjust IR dump format for context parameters & new parameter APIKT-74269 Drop IrElementVisitor, IrElementVisitorVoid and IrElementTransformer interfacesKT-72739 Create a lowering to replace old callable reference nodes with new onesKT-73120 Get rid of Ir classKT-73045 Fix inconsistency between shapes of IR calls vs calleeKT-69714 [IR] Remove IrErrorDeclarationKT-73609 Tests: Implement DeserializerFacade for Kotlin/NativeKT-73813 Implement tests for all IR validator checkersKT-73171 Choose the approach for testing IR serialization/deserialization wrt IR inlinerKT-73430 [IR] Get rid of SymbolFinder usages outside of Symbols hierarchyKT-74455 IR dump: Support dumping source offsetsKT-73433 [IR] Get rid of some symbols lookup methods
JVM. Reflection
KT-75505 Reflection: use kotlin-metadata-jvm to implement class visibility, modality, modifiers, etcKT-77663 Reflection: java.util.ServiceConfigurationError: “module kotlin.reflect does not declare uses” when using kotlin-reflect in modular modeKT-75464 Bundle kotlin-metadata-jvm into kotlin-reflectKT-71832 kotlin.jvm.internal.ClassReference static overhead is 11,060 bytes
JavaScript
New Features
KT-31493 [Kotlin/JS] Can't put typealias in file marked with JsModule annotation
Performance Improvements
KT-74533 K/JS: avoid number to char calls in charSequenceGet intrinsic
Fixes
KT-77021 CompilationException: Encountered a local class not previously collected on inner classes inside anonymous objectsKT-78073 K/JS: KProperty from local delegate changes after another delegate is invokedKT-77271 KJS / Serialization: “Cannot set property message of Error which has only a getter”KT-76235 [JS] Extra invalid line tmp_0.tmp00__1 = Options; in testSuspendFunction()KT-76234 [JS] Extra invalid line Parent in testNested()KT-76233 [JS] Extra invalid import line in testJsQualifier()KT-74839 AssociatedObjectKey metadata doesn't survive incremental compilationKT-77418 KJS: cannot debug with whole-program granularityKT-76463 KJS: @JsPlainObject fails in parent count is 8+KT-75606 KJS: java.lang.AssertionError: Different declarations with the same signatures were detectedKT-69591 KJS / d.ts: Wrong type of SerializerFactory for abstract classesKT-72437 KJS. Invalid copy method for inherited JSO with type parametersKT-57192 KJS: “Exported declaration uses non-exportable return type” caused by @JsExport Promise with Unit typeKT-73226 Migrate K/JS to new IR parameter APIKT-75254 KJS: Merge AbstractSuspendFunctionsLowering from Common and JS backendsKT-76440 @JsPlainObject compiles broken code when inlining suspend function and non suspend functionKT-71169 @JsPlainObject copy produces the wrong type when copied property is nullable in parent interfaceKT-75772 KJS: NullPointerException caused by reference of private class with @JsExportKT-73363 Migrate js-plain-objects plugin to new IR parameter APIKT-64927 [JS] TypeError when abstract class with override var property extends an exported abstract class with val propertyKT-70623 Kotlin/JS: Incremental compilation fails when granularity is changedKT-74384 Support new callable reference nodes in JS backendKT-70652 Kotlin/JS: @JsExport doesn't work with granularity per-fileKT-71365 KJS. File-level export supportKT-68775 Kotlin/JS infinite loop for exception message override that calls super.messageKT-42271 K/JS: isInitialized for not-lateinit property isn't marked as error as in JVM projectKT-70664 Extending a @JsPlainObject interface with a generic type parameter fails with a compile errorKT-71656 K2 JS: “IllegalStateException: Class has no primary constructor: kotlin.ULong”KT-42305 KJS / IR: “Class constructor is marked as private” @JsExport produces wrong TS code for sealed classesKT-52563 KJS / IR: Invalid TypeScript generated for class extending base class with private constructor
Klibs
New Features
KT-72296 Use specialized signatures for serialized local fake overrides
Fixes
KT-78168 K/N: “IndexOutOfBoundsException: Index 3 out of bounds for length 3” for iOS build with Kotlin 2.2.0-RC2KT-74635 KLIBs: Change call serialization scheme to store all arguments in a single listKT-76061 Add option for suppress warning of missing no-existent transitive klib dependenciesKT-70146 [KLIB Resolve] Don't fail on nonexistent transitive dependencyKT-75624 Don't fail on an attempt to deserialize “unknown” IrStatementOrigin and IrDeclarationOriginKT-55808 Support metadata version checks for klibs in the compilerKT-56062 Support -Xmetadata-version for KLIB-based compilersKT-76158 Drop “description” from local signaturesKT-75749 KLIB: Fail with error on attempt to serialize/deserialize SpecialFakeOverrideSignatureKT-75941 [IR Inliner] Abstract function is not implemented in non-abstract anonymous objectKT-75867 The CLI argument -Xabi-version allows versions with multiple 0 and -0KT-75192 KLIB reader tends to extract files from the KLIB archive to a temporary directory even when this is not neededKT-75013 Make klib reader more flexible: allow empty directories to be omittedKT-75680 KLIB: Drop obsolete IrPerFileLibraryImpl & IrPerFileWriterImplKT-73779 [Native] Context parameters: extension receiver is preferred over context parametersKT-65375 Clean-up the logic for serialization of error types in metadata and in IRKT-73826 Deduplicate IrFileEntry that is serialized inside IrInlinedFunctionBlockKT-75091 Drop targets/$target_name/kotlin directory from klibsKT-74352 API4ABI: Fix representation of context parametersKT-71007 Align KLIB ABI version with the language versionKT-73672 Bump KLIB ABI version in 2.2.0KT-74080 API4ABI: Adapt API for value parameter kindsKT-74396 Support context parameters in klibsKT-72931 Support new callable reference nodes in KLIB [de]serializer
Language Design
New Features
KT-2425 Multidollar interpolation: improve handling of $ in string literalsKT-1436 Support non-local break and continueKT-13626 Guard conditions in when-with-subjectKT-54206 Support local contextual functions
Fixes
KT-53673 Support @DslMarker annotations on contextual receiversKT-73557 Allow refining expect declarations for platform groupsKT-72417 Annotation with target RECORD_COMPONENT cannot be used on @JvmRecord data class componentsKT-67977 Compile results of annotations assigned to JvmRecord properties as in JavaKT-73502 Context parameters: it is not possible to declare local function with a contextKT-73632 Expect class redeclaration is allowedKT-70002 [LC] Forbid using projection modifiers inside top-level Array in annotation's value parameter
Libraries
New Features
KT-76163 K/N: Hide or remove CreateNSStringFromKString/CreateKStringFromNSStringKT-70456 Base64: Support lineLength parameter for MimeKT-76394 kotlin.time.TimeSource.asClock missingKT-31857 Provide easy way to retrieve annotations for kotlinx-metadataKT-76528 Instant.parseOrNullKT-74804 Add @MustUseValue and @IgnorableValue / @Discardable to kotlin-stdlibKT-74422 KotlinWebsiteSampleRewriter should filter individual imports from samples package
Performance Improvements
KT-68860 K/JS: optimize listOf(element)KT-75647 Optimized sequenceOf(T) overload is missing
Fixes
KT-72138 Stabilize experimental API for 2.2KT-76831 Atomic types: inconsistent behavior on JS and Wasm targetsKT-76795 RecursiveDeletionTest.deleteRelativeSymbolicLink fails on Windows for unprivileged usersKT-75290 kotlin-metadata: deprecate hasAnnotations flag, add JVM-only hasAnnotationsInBytecode insteadKT-76193 Common Atomics: ‘AtomicArray.compareAndSetAt’ and ‘compareAndExchangeAt’ docs incorrectly suggest they use == when actually they use ===KT-54077 Consider using SecureDirectoryStream in deleteRecursively even when Path.parent is nullKT-72866 Standard library functions to work with context parametersKT-76743 Add kotlin-scripting-jvm to projectsUsedInIntelliJKotlinPlugin listKT-72483 Clean up redundant stdlib code for Kotlin 2.2KT-76385 Remove suppression from functions to work with context parametersKT-75337 Remove suppress annotations from @IgnorableReturnValueKT-72137 Review deprecations in stdlib for 2.2KT-75491 Non intuitive work of ‘in’ (contains) with String rangeKT-75933 Update readLine's KDoc to suggest alternative functionsKT-46360 Type inference fails to infer type for sumOf call with integer literal: “Overload resolution ambiguity TypeVariable(T)) -> Int / Long”KT-73590 Samplify string.splitKT-75759 Add the serializer for kotlin.time.Instant to the list of standard serializersKT-71628 Review deprecations in stdlib for 2.1KT-73726 A link from shuffle's KDoc is not rendered properlyKT-74173 The sample code of lazy on stdlib can not run on playground due to “samples” package importKT-50081 AbstractList sublist leads to StackOverflow
Native
KT-76992 Native: update llvm for windows targetsKT-56107 Support Enum.entries for C/ObjC interop enumsKT-76552 LLVM Update: rebase the LLVM branchKT-76662 LLVM 19 update: documentationKT-76560 LLVM Update: investigate changes in filterStdargH testKT-76283 LLVM Update: pass all testsKT-74377 Kotlin Native: release executable crashes with error 139KT-75829 LLVM Update: port K/N on LLVM 19KT-76280 LLVM Update: benchmarksAnalyzer build failedKT-70202 Xcode 16 Linker fails with SIGBUS
Native. Build Infrastructure
KT-77349 Kotlin/Native: default cache for stdlib is unused
Native. C and ObjC Import
KT-75598 Native: fix samples/objc testKT-76551 LLVM Update: investigate CXFile equality problem furtherKT-75781 Xcode 16.3: Fix cinterop tests failing with fatal error: could not build module ‘_stdint’KT-74549 Native: replace clang_Type_getNumProtocols/clang_Type_getProtocol with standard libclang functions
Native. Platforms
Native. Runtime
KT-71534 Native: Support Latin-1 encoded strings at runtimeKT-67741 Kotlin/Native: Unify SpecialRef handling
Native. Runtime. Memory
KT-74831 Kotlin/Native: investigate mmap usage in custom allocatorKT-74432 Native: add an option to allocate everything in SingleObjectPageKT-74975 Enable CMS by default in Swift exportKT-60928 Kotlin/Native: refactor allocator codeKT-50291 Kotlin/Native: remove dependency of mm on gc implementation
Native. Swift Export
KT-75166 Support export of platform libraries types in Swift exportKT-75079 Swift export: add dependency from sir-compiler-bridge to Analysis APIKT-72413 Swift Export: potential memory leak when best-fitting class is different from the formal typeKT-72107 Remove IntoSingleModule stratagy
Tools. Ant
Tools. BCV
KT-75686 Improve DSL for BCV in KGPKT-76129 Abi validation filtering functionality for included classes doesn't workKT-75999 ABI validation filter doesn't apply excluded kotlin filesKT-75981 ABI validation filter not applying excluded classes without package namesKT-71168 Implement a prototype of ABI Validation in Kotlin Gradle Plugin
Tools. Build Tools API
KT-76455 BTA: Compilation is always non-incremental if BTA API >= 2.2.0 is used together with BTA impl < 2.2.0KT-76060 BTA: Java sources passed for IC may fail compilation in non-incremental modeKT-74041 Build Tools API: Lower level or remove compiler arguments log
Tools. CLI
New Features
KT-73606 Provide a unified interface for managing the reporting of compiler warningsKT-24746 Provide ability to exclude specific warnings from compiler option Werror (all warnings as errors)KT-18783 Option to treat a specific compiler warning as an errorKT-76095 Add JVM target bytecode version 24KT-73007 Add stable compiler argument -jvm-default instead of -Xjvm-default
Performance Improvements
KT-75641 kotlinc -help spends almost 1 second on Usage.render()
Fixes
KT-77445 UNRESOLVED_REFERENCE when importing classes from kotlin-stdlibKT-75300 Lenient compiler mode which generates stubs for missing actualsKT-76829 UnsupportedOperationException when reenabling a taking place warning with -Xwarning-levelKT-75588 [2.1.20-RC] “was compiled by a pre-release version of Kotlin and cannot be loaded by this version of the compiler” warnings despite using the same compiler versionKT-74663 kotlinc-js CLI: not providing -ir-output-dir results in NullPointerExceptionKT-75967 Implement generation of CLI arguments in compiler using new single representationKT-75966 Declare all existing CLI arguments using the new DSLKT-76498 Implement JSON dumper for performance statsKT-75970 Extract all non-trivial logic from CommonCompilerArguments and its inheritorsKT-73595 Kapt.use.k2=true is ignored silently for language-version 1.9 or lessKT-75043 Migrate Metadata compilation pipeline to the phased structureKT-75113 TEST_ONLY LanguageFeature doesn't abort the compilation
Tools. CLI. Native
KT-69485 Native: remove adding $llvmDir\bin to PATH on Windows
Tools. Commonizer
KT-74623 Drop metadata version check from KLIB commonizer
Tools. Compiler Plugin API
KT-74640 [FIR] Support setting source in declaration generators
Tools. Compiler Plugins
Fixes
KT-76162 “IllegalStateException: No mapping for symbol: VALUE_PARAMETER INSTANCE_RECEIVER” after updating to 2.1.20KT-61584 [atomicfu]: prohibit declaration of AtomicReference to the value class in the compiler pluginKT-70982 Deprecate declaration of atomic properties marked with @PublishedApi with errorKT-73367 Migrate compose plugin to new IR parameter APIKT-76429 Migrate kotlin-dataframe plugin to new IR parameter APIKT-75263 PowerAssert: no additional info is displayed for ‘when’ with subjectKT-75614 PowerAssert: handling of exceptions doesn't work inside assert functionKT-75264 PowerAssert: the diagram for try-catch with boolean expressions isn't clearKT-75663 PowerAssert: ‘contains’ result for strings is displayed under the first parameter instead of ‘in’KT-73897 PowerAssert: Implicit argument detection is brittle in a number of casesKT-74315 Kotlin Lombok: “Unresolved reference” on generating @Builder for static inner class where outer class is also using @BuilderKT-72172 File Leak occurring in Kotlin DaemonKT-75159 Compose: Missing ‘FunctionKeyMeta’ annotation on lamdas declared in non-composable functionKT-72877 Power-Assert should provide IrExpression transformation APIKT-73871 PowerAssert: Comparison via operator overload results in confusing diagramKT-73898 PowerAssert: Operator calls with multiple receivers incorrectly alignedKT-73870 PowerAssert: Object should not be displayed
Tools. Compiler plugins. Serialization
KT-49632 Provide diagnostic when custom serializer for generic type does not have required constructor signature ( ISE Null argument in ExpressionCodegen for parameter VALUE_PARAMETER)
Tools. Gradle
New Features
KT-75823 Resources bundle with XCFrameworks for iOSKT-73418 Gradle ‘--warning-mode’ value should affect Gradle plugin diagnosticsKT-73906 Improve ToolingDiagnostic CLI renderingKT-73285 Integrate Gradle Problem API with KGP diagnosticsKT-61649 Add Gradle compiler option for jvm-defaultKT-68659 Collect reported Kotlin Gradle Plugin diagnostics into one HTML/Text file report instead of writing it to log
Fixes
KT-75188 Groovy plugin breaks access to internal members of test friendPaths classes in kotlin compilationKT-54110 Change deprecation level to ERROR for kotlinOptions DSLKT-74277 KGP / FreeBSD: “TargetSupportException: Unknown operating system: FreeBSD” during the buildKT-75820 Gradle: “ClassNotFoundException: intellij.util.containers.Stack” while parsing compilation warnings with IN_PROCESS execution strategyKT-64991 Change deprecation level to error for KotlinCompilation.sourceKT-75107 Add Gradle property to use new FIR IC runnerKT-66133 Finalize resolution strategy for resources and remove the one that is unusedKT-59632 KotlinCompileTool.setSource() should replace existing sourcesKT-62963 Remove “kotlin.incremental.useClasspathSnapshot” propertyKT-76137 Compatibility with Gradle 8.14 releaseKT-76797 KGP: StdlibDependencyManagementKt.configureStdlibVersionAlignment() triggering eager configuration realizationKT-76282 Add missing Android Gradle plugin versions in testsKT-77011 Update build regression benchmarks for 2.2.0 releaseKT-76138 Compile against Gradle API 8.14KT-76139 Run integration tests against Gradle 8.14KT-74007 Not all the DSL features related to kotlinOptions are deprecatedKT-77288 Using ‘KotlinJvmOptions’ is an error - Gradle sync issue when using 2.2.0-Beta2 with Android Gradle PluginKT-74887 Compatibility with Gradle 8.13 releaseKT-73682 Compatibility with Gradle 8.12 releaseKT-77035 A compiler diagnostic isn't reported when its severity is set to warning with GradleKT-70620 Raise to error deprecation for KotlinCompilationOutput#resourcesDirProviderKT-68597 Update KGP deprecations before 2.2KT-68325 Add to Compiler Types DSL exceptions message possible ways of a solutionKT-76951 ‘distribution-base’ plugin is only applied in Gradle 8.13KT-73142 Kotlin Gradle plugin: Remove usage of Gradle's internal ExecHandleBuilderKT-73968 KotlinDependencyManagement tries to mutate configuration after it was resolvedKT-74890 Run Gradle integrations test against Gradle 8.13 releaseKT-74889 Compile against Gradle 8.13 APIKT-76052 Support Gradle 8.13 for Problems APIKT-73684 Run integration tests against Gradle 8.12KT-76377 Add integration tests for Problems APIKT-74551 Improve KGP-IT withDebug for tests with environment variablesKT-74717 Test publication with dependency constraintsKT-75164 Run Gradle incremental compilation tests with FIR runnerKT-72694 Accessing Task.project during execution is being deprecated in Gradle 8.12KT-76374 Investigate and fix failing tests with configuration cache in KotlinDaemonIT: testDaemonMultiproject and testMultipleCompilationsKT-76379 Gradle: KotlinGradleFinishBuildHandler does not perform cleanup on configuration cache reuseKT-61911 Gradle: make KGP to depend on fixated version of stdlibKT-76026 [ToolingDiagnostic] Gradle warning mode=fail: no emoji replacement, title color unchangedKT-76025 ToolingDiagnostic with FATAL Severity: ANSI escape codes are not rendered properly in the Build tool window in IntelliJ IDEAKT-70252 Gradle: remove Intellij dependencies from KGP runtimeKT-74333 improve ToolingDiagnosticBuilderKT-73683 Compile against Gradle API 8.12KT-75187 Make KotlinToolingDiagnostics internalKT-75568 Do not use env variables registered as CC inputsKT-73842 Gradle: AGP failing tests with “Failed to calculate the value of property ‘generalConfigurationMetrics’” using KGPKT-75262 Gradle test-fixtures plugin apply order breaks the projectKT-75277 FUS statistics: ‘java.lang.IllegalStateException: The value for this property cannot be changed any further’ exception is thrown during project importKT-75026 Corrupted NonSynchronizedMetricsContainer in parallel Gradle buildKT-73849 Categorize ToolingDiagnosticsKT-74462 Flaky Kotlin Gradle Plugin Tests: IsInIdeaEnvironmentValueSource$Inject not foundKT-72329 Consider bumping apiVersion for projects with compatibility setupKT-74772 ToolingDiagnostic: title is not displayed on WindowsKT-74485 BuildFinishedListenerService is not thread-safeKT-74639 Executable binaries for JVM test cannot be created unless an additional suffix is set in GroovyKT-72187 Gradle tests are using incorrect Kotlin/Native distributionKT-57653 Explicit API mode is not enabled when free compiler arguments are specified in Gradle projectKT-51378 Gradle ‘buildSrc’ compilation fails when newer version of Kotlin plugin is added to the build script classpath
Tools. Gradle. Compiler plugins
KT-58009 BaseKapt.annotationProcessorOptionProviders should be a List<CommandLineArgumentProvider> instead of List<Any>KT-61928 Clarify parameter types in KaptArguments and KaptJavacOption
Tools. Gradle. JS
KT-74859 Gradle configuration cache issues related to RootPackageJsonTaskKT-70357 Remove JS/Dce deprecated Gradle DSLKT-71217 KJS: ‘Per-file’ “Module not found: Error: Can't resolve void.mjs”KT-77119 KJS: Gradle: Setting custom environment variables in KotlinJsTest tasks no longer worksKT-74735 KGP uses Gradle internal CompositeProjectComponentArtifactMetadataKT-71879 Notice of upcoming deprecation for Boolean ‘is-’ properties in Gradle Groovy scriptsKT-75863 Wasm/JS: Deprecate phantom-js for KarmaKT-75485 KJS: “Module not found: Error: Can't resolve ‘style-loader’ and ‘css-loader’” in 2.1.20-RCKT-74869 KJS: jsBrowserProductionWebpack does not minify output with 2.1.20-Beta2
Tools. Gradle. Multiplatform
New Features
KT-60623 Deprecate publishAllLibraryVariants in kotlin-android
Fixes
KT-75161 Deprecate commonization parameters in KGP with an errorKT-74005 Implement a prototype of Unified Klib support in Kotlin Gradle PluginKT-61817 Remove support for Legacy Metadata Compilation with support of Compatibility Metadata VariantKT-71634 KGP: Remove KotlinTarget.useDisambiguationClassifierAsSourceSetNamePrefix and overrideDisambiguationClassifierOnIdeImportKT-77404 The kotlin-stdlib and annotations are missing from commonTest dependencies with 2.2.0-Beta1KT-62643 Increase DeprecationLevel to ‘Error’ on deprecated ‘ExtrasProperty.kt’ (Kotlin 2.2)KT-75605 Dependency resolution fails in commonTest/nativeTest source sets for KMP module when depending on another project due to missing PSMKT-71698 Remove preset APIsKT-68015 Remove legacy KMP flagsKT-74727 Dependency resolve from a single target KMP module to another kmp module fails on non-found PSMKT-75808 KGP: MPP with jvm target and Gradle java-test-fixtures is brokenKT-59315 Improve the readability of KGP diagnostics in CLI build outputKT-58231 Kotlin Gradle Plugin: set deprecation level to Error for KotlinTarget.useDisambiguationClassifierAsSourceSetNamePrefix and overrideDisambiguationClassifierOnIdeImportKT-66423 Configuration cache false recalculation because of Kotlin Native downloading during the execution phaseKT-74888 Use ‘distribution-base’ plugin in KMP/JVMKT-76659 Write proper diagnostics for Uklib checksKT-70493 Improve gray-box testing experience in KGP-ITKT-71608 Remove ‘android()’ targetKT-75512 Maven-publish: ArtifactId is not correct inpom file with customized withXmlKT-72203 Swift Export: Unclear failure for invalid module nameKT-74278 KSP tasks don't trigger a K/N distribution downloadingKT-74669 Executable binaries for JVM: a jar generated by jvmJar task isn't added to the build/install/testAppName/lib directoryKT-69200 Module ‘intellij.kotlin.gradle.multiplatformTests’ transitively depends on K1/K2 implementationKT-71454 Remove not compatible with Project Isolation PomDependenciesRewriterKT-73536 Enable kmp isolated projects support for kotlin-test and patch PSM.json
Tools. Gradle. Native
KT-77067 Kotlin Gradle plugin with the configuration cache passes all platform libraries to the compiler when compiling a binary for the first timeKT-74953 Deprecate kotlinArtifacts with a warningKT-71069 Remove konanVersion from CInteropProcessKT-75171 Provide custom freeCompilerArgs to Swift Export's link taskKT-74591 HostManager.isMingw isLinux and isMac are not accessible in groovy scriptsKT-65692 Remove Kotlin Native Performance pluginKT-74403 :commonizeNativeDistribution fails when configured native targets cannot be built on machine
Tools. Gradle. Xcode
KT-66262 Deprecate and remove support for bitcode embedding from the Kotlin Gradle plugin
Tools. Incremental Compile
KT-62555 Wrong ABI fingerprint for inline function containing a lambdaKT-75883 Follow-up: switch from INSTANCE heuristic to outerClass chainKT-75276 Test IC issues with first-round failures that might be fixed by Fir runnerKT-76041 Make lenient mode work with ICKT-75155 Split HistoryFileJvmIncrementalCompilerRunner and the current oneKT-74628 Incremental compilation runner does not check compiler exit code before mapping sources to classes
Tools. JPS
KT-60914 IC misses dependency to recompile when named kt file with JvmField instructed property was replaced with an object with the same nameKT-76495 JPS: delegated Maven builds use embeddable version of kotlin-serialization compiler plugin with non-embeddable Kotlin compilerKT-76461 Fix “compilation of typealias does not check for clashes” for JPSKT-75917 Unused imports may lead to inc compilation failureKT-73379 Review the usage of JavaBuilder.IS_ENABLED inside the KotlinBuilder JSP builderKT-63707 JPS: “Multiple values are not allowed for” caused by Compose
Tools. Kapt
KT-75936 K2 KAPT: unsupported FIR element kinds in constant evaluationKT-64385 K2: Enable K2 KAPT by defaultKT-76546 Kapt / CLI: ““compile” mode is not supported in Kotlin 2.x” with -version flagKT-75942 K2 KAPT: underscore not allowed hereKT-40485 -Xjvm-default=all causes private interface methods to be generated in JVM target < 9 which is not supported in annotation processingKT-75202 K2 kapt: mapped type class literal is converted incorrectlyKT-70797 Remove obsolete K2 kapt implementation based on Analysis API
Tools. Maven
KT-73012 Migrate Kotlin Maven plugin to the Build Tools APIKT-77036 Kotlin Maven plugin: ClassNotFoundException com.google.common.base.Joiner with compiler plugins in debug modeKT-61285 Remove multiplatform “support” from Maven Plugin
Tools. Performance benchmarks
KT-75563 Fix crash on kotlin compiler server user project related to performance measurements
Tools. REPL
Fixes
KT-75632 Contunue deprecation of the REPL built into kotlincKT-76507 [K2 Repl] Delegated properties are not visible in the next snippetKT-76508 [K2 Repl] Annotations on property accessors are not resolvedKT-75672 [K2 Repl] Serialization plugin crashes compiler backendKT-76009 [K2 Repl] Kotlin-specific imports does not work if dependency is added to the classpath after 1st snippetKT-75580 [K2 Repl] Cannot access snippet properties using Kotlin reflectionKT-75616 [K2 Repl] Sealed hierarchies causes a FileAnalysisExceptionKT-75593 [K2 Repl] Custom Delegates crash code genKT-75607 [K2 Repl] ScriptingConfiguration.jvm.jvmTarget is not respectedKT-74607 [K2 Repl] Lambda statement crashes code generationKT-74615 [K2 REPL] Anonymous objects crash code generationKT-74856 [K2 Repl] Snippet class files are missing Kotlin metadataKT-74768 [K2 Repl] refineConfiguration does not update the classpath correctlyKT-74593 [K2 Repl] defaultImports does not work in ScriptCompilationConfiguration
Tools. Scripts
KT-75589 Scripts: “IndexOutOfBoundsException in jdk.internal.util.Preconditions.outOfBounds” when trying to extend a class which uses global variableKT-76424 Dependencies in main.kts not working with 2.1.20KT-76296 Kotlin script compiler crashes when secondary constructor calls a functionKT-76430 Migrate scripting plugin to new IR parameter APIKT-74004 “Evaluate expression” fails in scripts
Tools. Wasm
KT-76161 Wasm: “export startUnitTests was not found” after updating to Kotlin 2.1.20KT-73398 K/Wasm: Separate from JS NPM infrastructureKT-76948 Wasm: Rename kotlinBinaryenSetup and kotlinD8SetupKT-74840 Wasm: Binaryen setup per projectKT-76657 K/Wasm: Composite build does not work with wasm tasksKT-76656 K/Wasm: Change NPM project name of wasm projectsKT-76587 Wasm lock check failure says to run the JS lock upgradeKT-76330 K/Wasm: update binaryen to 123 or newerKT-74480 Projects using Compose don't run in Android Studio started from 2.1.20- Kotlin version
Previous ChangeLogs: