# Kotlin changelog > A statically typed language for the JVM, Android, the browser and native targets. - Vendor: JetBrains - Category: Languages & Runtimes - Official site: https://kotlinlang.org - Tracked by: What's New (https://whatsnew.fyi/product/kotlin) - Harvested from: GitHub (JetBrains/kotlin) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. ## Releases ### v2.4.20-Beta2 — Kotlin 2.4.20-Beta2 - Date: 2026-07-22 - Version: v2.4.20-Beta2 - Original notes: https://github.com/JetBrains/kotlin/releases/tag/v2.4.20-Beta2 - Permalink: https://whatsnew.fyi/product/kotlin/releases/v2.4.20-beta2 - Labels: Pre-release - **fixed** — Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker - **fixed** — K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets - **fixed** — K2 IDE wrong error in the editor on calling clone function of actual enum instance in non-jvm platform - **fixed** — FP errors on declaring fun clone() in actual enum in not-jvm source-set - **changed** — Do not publish analysis-api-test-framework - **fixed** — kotlin-compiler-common-for-ide bundles unrelated Analysis API modules - **fixed** — SymbolLightAccessorMethod#isValid returns false for delegated properties - **fixed** — SLC: non-mapped Kotlin collection supertype is dropped from supertype list - **fixed** — JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations - **changed** — Move KtReference to the Kotlin IntelliJ plugin - **fixed** — KotlinIllegalArgumentExceptionWithAttachments: No fir element was found for KtDestructuringDeclaration on destructuring declaration typing - **fixed** — Inconsistency between AST and Stub tree in the case of non-local destructuring declarations - **changed** — Optimize KaFirExpressionTypeProvider.expressionType for simple cases - **fixed** — Integrate KaContextParameterOwnerSymbol into KaCallableSymbol - **added** — Context parameters for accessors - **fixed** — Investigate suspicious when over ConeKotlinType in ConeKotlinType.getDirectSupertypes - **fixed** — No expected type inside arrayOf in annotation entries - **fixed** — findKDoc returns parent property KDoc for accessors of an overriding property - **removed** — Remove KaEnumEntryInitializerSymbol - **deprecated** — Deprecate and prohibit using wasmExports - **fixed** — Multimodule wasm fails on Pointer usages - **added** — Provide an API to get a reference to wasm memory ##### Changelog ###### Analysis API - [`KT-86546`](https://youtrack.jetbrains.com/issue/KT-86546) Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker - [`KT-65417`](https://youtrack.jetbrains.com/issue/KT-65417) K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets ###### Analysis API. FIR - [`KT-69727`](https://youtrack.jetbrains.com/issue/KT-69727) K2 IDE. Wrong error in the editor on calling `clone` function of actual enum instance in non-jvm platform - [`KT-69726`](https://youtrack.jetbrains.com/issue/KT-69726) FP errors on declaring `fun clone()` in actual enum in not-jvm source-set ###### Analysis API. Infrastructure - [`KT-84914`](https://youtrack.jetbrains.com/issue/KT-84914) Do not publish analysis-api-test-framework - [`KT-86986`](https://youtrack.jetbrains.com/issue/KT-86986) `kotlin-compiler-common-for-ide` bundles unrelated Analysis API modules ###### Analysis API. Light Classes - [`KT-87301`](https://youtrack.jetbrains.com/issue/KT-87301) SymbolLightAccessorMethod#isValid returns false for delegated properties - [`KT-87171`](https://youtrack.jetbrains.com/issue/KT-87171) SLC: non-mapped Kotlin collection supertype is dropped from supertype list - [`KT-87250`](https://youtrack.jetbrains.com/issue/KT-87250) JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations ###### Analysis API. PSI - [`KT-84925`](https://youtrack.jetbrains.com/issue/KT-84925) Move KtReference to the Kotlin IntelliJ plugin ###### Analysis API. Standalone - [`KT-61404`](https://youtrack.jetbrains.com/issue/KT-61404) Analysis API: implement proper library publishing structure ###### Analysis API. Stubs and Decompilation - [`KT-86250`](https://youtrack.jetbrains.com/issue/KT-86250) KotlinIllegalArgumentExceptionWithAttachments: No fir element was found for KtDestructuringDeclaration on destructuring declaration typing - [`KT-64901`](https://youtrack.jetbrains.com/issue/KT-64901) Inconsistency between AST and Stub tree in the case of non-local destructuring declarations ###### Analysis API. Surface ###### Performance Improvements - [`KT-70021`](https://youtrack.jetbrains.com/issue/KT-70021) Analysis API: optimize KaFirExpressionTypeProvider.expressionType for simple cases ###### Fixes - [`KT-87337`](https://youtrack.jetbrains.com/issue/KT-87337) Integrate KaContextParameterOwnerSymbol into KaCallableSymbol - [`KT-78234`](https://youtrack.jetbrains.com/issue/KT-78234) Analysis API: Context parameters for accessors - [`KT-86786`](https://youtrack.jetbrains.com/issue/KT-86786) Investigate suspicious when over ConeKotlinType in ConeKotlinType.getDirectSupertypes - [`KT-72902`](https://youtrack.jetbrains.com/issue/KT-72902) Shouldn't `KaSymbolProvider#findClass` return `KaNamedClassSymbol`? - [`KT-87237`](https://youtrack.jetbrains.com/issue/KT-87237) No expected type inside `arrayOf` in annotation entries - [`KT-87143`](https://youtrack.jetbrains.com/issue/KT-87143) `findKDoc` returns parent property KDoc for accessors of an overriding property - [`KT-83224`](https://youtrack.jetbrains.com/issue/KT-83224) Support "Compile-time functions" in the Analysis API - [`KT-87174`](https://youtrack.jetbrains.com/issue/KT-87174) Expected class KaFirSymbol instead of class KaFirPackageSymbol exception - [`KT-87199`](https://youtrack.jetbrains.com/issue/KT-87199) [Analysis API] Remove `KaEnumEntryInitializerSymbol` - [`KT-85206`](https://youtrack.jetbrains.com/issue/KT-85206) Provide information about potentially removable context-sensitive resolution qualifiers via Analysis API - [`KT-86872`](https://youtrack.jetbrains.com/issue/KT-86872) `KtOperationReferenceExpression` should be `KtResolvableCall` - [`KT-85800`](https://youtrack.jetbrains.com/issue/KT-85800) Analysis API: The internal utility `PrettyPrinter` is used in the public API surface - [`KT-73796`](https://youtrack.j _[Truncated at 4000 characters — full notes: https://github.com/JetBrains/kotlin/releases/tag/v2.4.20-Beta2]_ ### v2.4.10 — Kotlin 2.4.10 - Date: 2026-07-14 - Version: v2.4.10 - Original notes: https://github.com/JetBrains/kotlin/releases/tag/v2.4.10 - Permalink: https://whatsnew.fyi/product/kotlin/releases/v2.4.10 - **fixed** — K/Wasm: Fix missing files in compiler output directory with multimodule-closed-world and incremental compilation - **fixed** — JVM: Fix IllegalStateException "No value for annotation parameter" when using const val in nested Java annotation array argument - **fixed** — K2: Fix wrong sourcePsi set for SymbolPsiLiteral in SLC for annotation arguments referencing a const val - **fixed** — Reified type inference: Fix expected type not propagated into inline call inside lambda with elvis operator - **fixed** — Compose Compiler 2.4: Fix classes previously inferred as stable now reported as runtime or Uncertain - **fixed** — Native: Fix IrTypeAliasSymbolImpl already bound error for kotlinx.datetime/Instant|null on iosSimulatorArm64 - **added** — Introduce kotlinr in the Kotlin distribution - **fixed** — Gradle, BCV: Fix open version range in kotlinAbiValidationCompatClasspath causing kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of 2.4.0 - **fixed** — jsBrowserTest: Fix failing with "exited with errors (exit code: 1)" - **fixed** — kotlinUpgradeYarnLock: Fix skipping lock file regeneration when kotlinNpmInstall is up-to-date, causing kotlinStoreYarnLock to fail - **fixed** — Fix false positive warning for JS and Wasm compilations when CRI is enabled - **fixed** — @file:CompilerOptions("-jvm-target", ...) ignored in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target 1.8 - **fixed** — K2 scripting: Fix FirResolvedTypeRef exception when resolving extension functions from imported scripts ##### Changelog ###### Backend. Wasm - [`KT-87066`](https://youtrack.jetbrains.com/issue/KT-87066) K/Wasm: Not all files are presented in compiler output directory with multimodule-closed-world and incremental compilation ###### Compiler - [`KT-86939`](https://youtrack.jetbrains.com/issue/KT-86939) JVM: IllegalStateException "No value for annotation parameter" when using const val in nested Java annotation array argument - [`KT-83766`](https://youtrack.jetbrains.com/issue/KT-83766) K2: Wrong sourcePsi is set for `SymbolPsiLiteral` in SLC for annotation arguments referencing a const val - [`KT-86728`](https://youtrack.jetbrains.com/issue/KT-86728) Reified type inference: expected type not propagated into inline call inside lambda with elvis operator ###### Compose Compiler - [`b/522127447`](https://issuetracker.google.com/issues/522127447) Compose Compiler 2.4: classes previously inferred `stable` now reported `runtime`/`Uncertain` ###### Klibs - [`KT-86501`](https://youtrack.jetbrains.com/issue/KT-86501) Native: IrTypeAliasSymbolImpl is already bound. Signature: kotlinx.datetime/Instant|null[0] on iosSimulatorArm64 ###### Tools. CLI - [`KT-86930`](https://youtrack.jetbrains.com/issue/KT-86930) Introduce `kotlinr` in the Kotlin distribution ###### Tools. Gradle. BCV - [`KT-87223`](https://youtrack.jetbrains.com/issue/KT-87223) Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of 2.4.0 ###### Tools. Gradle. JS - [`KT-87304`](https://youtrack.jetbrains.com/issue/KT-87304) jsBrowserTest fails with "exited with errors (exit code: 1)" - [`KT-86057`](https://youtrack.jetbrains.com/issue/KT-86057) kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall is up-to-date, causing kotlinStoreYarnLock to fail ###### Tools. Gradle. Multiplatform - [`KT-87084`](https://youtrack.jetbrains.com/issue/KT-87084) False positive warning for JS and Wasm compilations when CRI is enabled ###### Tools. Scripts - [`KT-87076`](https://youtrack.jetbrains.com/issue/KT-87076) `@file`:CompilerOptions("-jvm-target", ...) ignored in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target 1.8 - [`KT-86352`](https://youtrack.jetbrains.com/issue/KT-86352) K2 scripting: FirResolvedTypeRef exception when resolving extension functions from imported scripts ### v2.4.10-RC2 — Kotlin 2.4.10-RC2 - Date: 2026-07-07 - Version: v2.4.10-RC2 - Original notes: https://github.com/JetBrains/kotlin/releases/tag/v2.4.10-RC2 - Permalink: https://whatsnew.fyi/product/kotlin/releases/v2.4.10-rc2 - Labels: Pre-release - **fixed** — K/Wasm: Not all files are presented in compiler output directory with multimodule-closed-world and incremental compilation - **fixed** — Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of 2.4.0 - **fixed** — jsBrowserTest fails with exit code 1 ##### Changelog ###### Backend. Wasm - [`KT-87066`](https://youtrack.jetbrains.com/issue/KT-87066) K/Wasm: Not all files are presented in compiler output directory with multimodule-closed-world and incremental compilation ###### Tools. Gradle. BCV - [`KT-87223`](https://youtrack.jetbrains.com/issue/KT-87223) Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of 2.4.0 ###### Tools. Gradle. JS - [`KT-87304`](https://youtrack.jetbrains.com/issue/KT-87304) jsBrowserTest fails with "exited with errors (exit code: 1)" ### v2.4.10-RC — Kotlin 2.4.10-RC - Date: 2026-06-25 - Version: v2.4.10-RC - Original notes: https://github.com/JetBrains/kotlin/releases/tag/v2.4.10-RC - Permalink: https://whatsnew.fyi/product/kotlin/releases/v2.4.10-rc - Labels: Pre-release - **fixed** — JVM: IllegalStateException when using const val in nested Java annotation array argument - **fixed** — K2: Wrong sourcePsi is set for SymbolPsiLiteral in SLC for annotation arguments referencing a const val - **fixed** — Reified type inference: expected type not propagated into inline call inside lambda with elvis operator - **fixed** — Compose compiler: stability of post-cast types now used in skipping checks instead of pre-cast types - **fixed** — Native: IrTypeAliasSymbolImpl is already bound error for iosSimulatorArm64 - **added** — Introduce kotlinr in the Kotlin distribution - **fixed** — kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall is up-to-date, causing kotlinStoreYarnLock to fail - **fixed** — False positive warning for JS and Wasm compilations when CRI is enabled - **fixed** — @file:CompilerOptions("-jvm-target", ...) ignored in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target 1.8 - **fixed** — K2 scripting: FirResolvedTypeRef exception when resolving extension functions from imported scripts ##### Changelog ###### Compiler - [`KT-86939`](https://youtrack.jetbrains.com/issue/KT-86939) JVM: IllegalStateException "No value for annotation parameter" when using const val in nested Java annotation array argument - [`KT-83766`](https://youtrack.jetbrains.com/issue/KT-83766) K2: Wrong sourcePsi is set for `SymbolPsiLiteral` in SLC for annotation arguments referencing a const val - [`KT-86728`](https://youtrack.jetbrains.com/issue/KT-86728) Reified type inference: expected type not propagated into inline call inside lambda with elvis operator ###### Compose compiler - [`b/522127447`](https://issuetracker.google.com/issues/522127447) Fixed a bug that was making the stability of pre-cast types be used in certain skipping checks instead of the stability of post-cast types ###### Klibs - [`KT-86501`](https://youtrack.jetbrains.com/issue/KT-86501) Native: IrTypeAliasSymbolImpl is already bound. Signature: kotlinx.datetime/Instant|null[0] on iosSimulatorArm64 ###### Tools. CLI - [`KT-86930`](https://youtrack.jetbrains.com/issue/KT-86930) Introduce `kotlinr` in the Kotlin distribution ###### Tools. Gradle. JS - [`KT-86057`](https://youtrack.jetbrains.com/issue/KT-86057) kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall is up-to-date, causing kotlinStoreYarnLock to fail ###### Tools. Gradle. Multiplatform - [`KT-87084`](https://youtrack.jetbrains.com/issue/KT-87084) False positive warning for JS and Wasm compilations when CRI is enabled ###### Tools. Scripts - [`KT-87076`](https://youtrack.jetbrains.com/issue/KT-87076) `@file`:CompilerOptions("-jvm-target", ...) ignored in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target 1.8 - [`KT-86352`](https://youtrack.jetbrains.com/issue/KT-86352) K2 scripting: FirResolvedTypeRef exception when resolving extension functions from imported scripts ### v2.4.20-Beta1 — Kotlin 2.4.20-Beta1 - Date: 2026-06-24 - Version: v2.4.20-Beta1 - Original notes: https://github.com/JetBrains/kotlin/releases/tag/v2.4.20-Beta1 - Permalink: https://whatsnew.fyi/product/kotlin/releases/v2.4.20-beta1 - Labels: Pre-release - **added** — Implement an API for accessing deserialized file annotations in Analysis API - **added** — Support resolving to companion block members & extensions from Java in light classes - **added** — Support PsiClass#getRecordComponents in light classes - **added** — Support parameters in getExpectsForActual() - **fixed** — K2 false positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines - **fixed** — containingSymbol of constructor property differs for local and non-local classes - **fixed** — K2 IDE / KMP Debugger error Cannot compile a common source without a JVM counterpart on evaluating inline fun from common module inside jvm - **fixed** — No expects for actual - **fixed** — Types are broken after remove parameter through change signature - **fixed** — KotlinIllegalArgumentExceptionWithAttachments on companion blocks - **fixed** — Propagate default parameter value from @JvmOverloads expect declarations to actual declarations - **fixed** — Symbol Light Classes KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set - **fixed** — Good code is red when a Java class extends a Kotlin class implementing MutableList by delegation - **fixed** — False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias - **fixed** — False positive type mismatch in java file of jvm source-set when using common declaration which expects String - **fixed** — JVM-only methods on actual superclass not resolved in Java for common subclass - **fixed** — False positive Function1 is not a functional interface when calling code from Common in Java - **fixed** — kotlin.Collection#size is not exposed by default - **removed** — Drop kotlin.parallel.resolve.under.global.lock registry key - **removed** — Drop kotlin-compiler-testdata-for-ide artifact ##### Changelog ###### Analysis API - [`KT-85418`](https://youtrack.jetbrains.com/issue/KT-85418) Implement an API for accessing deserialized file annotations in Analysis API - [`KT-74448`](https://youtrack.jetbrains.com/issue/KT-74448) K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines - [`KT-85856`](https://youtrack.jetbrains.com/issue/KT-85856) containingSymbol of constructor property differs for local and non-local classes ###### Analysis API. Code Compilation - [`KT-76457`](https://youtrack.jetbrains.com/issue/KT-76457) K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm ###### Analysis API. FIR - [`KT-70552`](https://youtrack.jetbrains.com/issue/KT-70552) No expects for actual - [`KT-86014`](https://youtrack.jetbrains.com/issue/KT-86014) Types are broken after remove parameter through change signature - [`KT-86363`](https://youtrack.jetbrains.com/issue/KT-86363) KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks - [`KT-86147`](https://youtrack.jetbrains.com/issue/KT-86147) Drop `kotlin.parallel.resolve.under.global.lock` registry key - [`KT-85543`](https://youtrack.jetbrains.com/issue/KT-85543) Avoid lazy resolve for the contracts phase if no constracts might be resolved ###### Analysis API. Infrastructure - [`KT-86186`](https://youtrack.jetbrains.com/issue/KT-86186) Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate - [`KT-85360`](https://youtrack.jetbrains.com/issue/KT-85360) Drop kotlin-compiler-testdata-for-ide artifact - [`KT-85585`](https://youtrack.jetbrains.com/issue/KT-85585) Simplify the dependencies graph for the Analysis API modules - [`KT-85381`](https://youtrack.jetbrains.com/issue/KT-85381) Remove tests for the FE10 implementation ###### Analysis API. Light Classes ###### New Features - [`KT-84645`](https://youtrack.jetbrains.com/issue/KT-84645) Support resolving to companion block members & extensions from Java (light classes) - [`KT-80775`](https://youtrack.jetbrains.com/issue/KT-80775) Support PsiClass#getRecordComponents in light classes ###### Fixes - [`KT-57537`](https://youtrack.jetbrains.com/issue/KT-57537) SLC: propagate default parameter value from (`@JvmOverloads`) `expect` declarations to `actual` declarations - [`KT-63568`](https://youtrack.jetbrains.com/issue/KT-63568) Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set - [`KT-70428`](https://youtrack.jetbrains.com/issue/KT-70428) AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation - [`KT-36740`](https://youtrack.jetbrains.com/issue/KT-36740) MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias - [`KT-67749`](https://youtrack.jetbrains.com/issue/KT-67749) Analysis API: Symbol Light classes should be available only to pure JVM sources - [`KT-85040`](https://youtrack.jetbrains.com/issue/KT-85040) [Analysis API] Improve Java / Kotlin interop in KMP projects - [`KT-68169`](https://youtrack.jetbrains.com/issue/KT-68169) K2 IDE. KMP. False positive type mismatch in java file of jvm source-set when using common declaration which expects String - [`KT-37783`](https://youtrack.jetbrains.com/issue/KT-37783) KMP Java Interop: JVM-only methods on actual superclass not resolved in Java for common subclass - [`KT-40059`](https://youtrack.jetbrains.com/issue/KT-40059) Provide type correction for expect/actual types used from Java-code - [`KT-71429`](https://youtrack.jetbrains.com/issue/KT-71429) MPP: False positive "Function1 is not a functional interface" when calling code from Common in Java - [`KT-70426`](https://youtrack.jetbrains.com/issue/KT-70426) SLC: kotl _[Truncated at 4000 characters — full notes: https://github.com/JetBrains/kotlin/releases/tag/v2.4.20-Beta1]_ ### v2.4.0 — Kotlin 2.4.0 - Date: 2026-06-03 - Version: v2.4.0 - Original notes: https://github.com/JetBrains/kotlin/releases/tag/v2.4.0 - Permalink: https://whatsnew.fyi/product/kotlin/releases/v2.4.0 - **fixed** — Fix OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals - **changed** — Enable experimental KDoc resolver by default in Analysis API - **fixed** — Analysis API: properly support KMP in KotlinPackageProvider - **fixed** — Analysis API: prevent dangling file session creation that causes computeIfAbsent contract violation - **fixed** — Fix evaluation of variable with local class in type parameter that leads to InventNamesForLocalClasses exception - **fixed** — Fix InvalidFirElementTypeException with illegal callable reference call in K2 Analysis API - **fixed** — Fix false positive deprecation warning with override of built-in method in JDK mapped class - **fixed** — Fix K2 IDE losing FIR plugin-generated declarations after file changes - **fixed** — Analysis API: fix collectDesignationPath for nested classes inside plugin-generated top-level classes - **changed** — Improve K2 Jooq completion performance - **fixed** — Fix KaValueParameterSymbol#getHasSynthesizedName returning false for FirDeclarationOrigin.SubstitutionOverride.DeclarationSite - **fixed** — Fix Kotlin analysis reaching ClsCustomNavigationPolicy - **changed** — Move CommonDefaultImportsProvider to the frontend independent module - **fixed** — Fix Analysis API KotlinIllegalArgumentExceptionWithAttachments with FirResolvedTypeRef - **fixed** — Fix exception from sealed inheritors checker when analyzeCopy is used - **fixed** — Light classes should prefer enum entries to properties - **fixed** — Fix return type not boxed for delegated methods with generic original method in synthetic light classes - **fixed** — Fix ClassCastException with same-named enum class and typealias - **fixed** — Fix removeModifier not deleting whitespaces around the removed modifier - **fixed** — Fix KtEnumEntry.delete deleting semicolon ##### Changelog ###### Analysis API - [`KT-83867`](https://youtrack.jetbrains.com/issue/KT-83867) OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ repo - [`KT-83723`](https://youtrack.jetbrains.com/issue/KT-83723) [Analysis API] Enable experimental KDoc resolver by default - [`KT-83388`](https://youtrack.jetbrains.com/issue/KT-83388) Analysis API: properly support KMP in KotlinPackageProvider - [`KT-65683`](https://youtrack.jetbrains.com/issue/KT-65683) Analysis API: Dangling file session creation causes a `computeIfAbsent` contract violation ###### Analysis API. Code Compilation - [`KT-78946`](https://youtrack.jetbrains.com/issue/KT-78946) Evaluation of variable with local class in type parameter leads to InventNamesForLocalClasses exception ###### Analysis API. FIR - [`KT-68260`](https://youtrack.jetbrains.com/issue/KT-68260) K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION with text `::lam1`, unexpected element of type: no element found” with illegal callable reference call - [`KT-70896`](https://youtrack.jetbrains.com/issue/KT-70896) AA: False positive deprecation warning with override of built-in method in JDK mapped class - [`KT-84711`](https://youtrack.jetbrains.com/issue/KT-84711) K2 IDE sometimes loses FIR plugin-generated declarations after file changes - [`KT-84625`](https://youtrack.jetbrains.com/issue/KT-84625) Analysis API: collectDesignationPath fails for nested classes inside plugin-generated top-level classes - [`KT-84596`](https://youtrack.jetbrains.com/issue/KT-84596) Improve K2 Jooq completion performance - [`KT-84525`](https://youtrack.jetbrains.com/issue/KT-84525) KaValueParameterSymbol#getHasSynthesizedName returns false for FirDeclarationOrigin.SubstitutionOverride.DeclarationSite - [`KT-83546`](https://youtrack.jetbrains.com/issue/KT-83546) Kotlin analysis reach ClsCustomNavigationPolicy - [`KT-84259`](https://youtrack.jetbrains.com/issue/KT-84259) Move CommonDefaultImportsProvider to the frontend independent module - [`KT-82945`](https://youtrack.jetbrains.com/issue/KT-82945) Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl - [`KT-71135`](https://youtrack.jetbrains.com/issue/KT-71135) AA: exception from sealed inheritors checker when `analyzeCopy` ###### Analysis API. Infrastructure ###### Fixes - [`KT-83905`](https://youtrack.jetbrains.com/issue/KT-83905) Analysis API: Improve UX with test data - [`KT-84913`](https://youtrack.jetbrains.com/issue/KT-84913) Extract compiler classes used by the PSI & Analysis API to a separate module - [`KT-64986`](https://youtrack.jetbrains.com/issue/KT-64986) Analysis API: Implement Analysis API tests for different KMP Platforms - [`KT-84776`](https://youtrack.jetbrains.com/issue/KT-84776) The test data manager misses the redundancy check in the update mode - [`KT-84962`](https://youtrack.jetbrains.com/issue/KT-84962) The test data manager misses -ea flag - [`KT-84388`](https://youtrack.jetbrains.com/issue/KT-84388) Preserve the EOF status in the test data manager to avoid extra changes - [`KT-84362`](https://youtrack.jetbrains.com/issue/KT-84362) Analysis API tests produce many warnings due to "not yet loaded registry" - [`KT-84279`](https://youtrack.jetbrains.com/issue/KT-84279) Test Data Manager fails on a clean build - [`KT-83913`](https://youtrack.jetbrains.com/issue/KT-83913) Exclude compiler-based Analysis API tests from Git tracking - [`KT-80379`](https://youtrack.jetbrains.com/issue/KT-80379) Extract per-module test generators for AA tests - [`KT-84120`](https://youtrack.jetbrains.com/issue/KT-84120) Move CLI modules out of kotlin-compiler-fe10-for-ide - [`KT-83200`](https://youtrack.jetbrains.com/issue/KT-83200) Track external dependencies of the Analysis API modules ###### Analysis API. Light Classes - [`KT-82434`](https://youtrack.jetbrains.com/issue/KT-82434) Light class _[Truncated at 4000 characters — full notes: https://github.com/JetBrains/kotlin/releases/tag/v2.4.0]_ ### v2.4.0-RC2 — Kotlin 2.4.0-RC2 - Date: 2026-05-27 - Version: v2.4.0-RC2 - Original notes: https://github.com/JetBrains/kotlin/releases/tag/v2.4.0-RC2 - Permalink: https://whatsnew.fyi/product/kotlin/releases/v2.4.0-rc2 - Labels: Pre-release - **fixed** — kotlin.Cloneable built-in class not found in JKLIB - **changed** — Default stability of non-final classes is now Unknown instead of Stable in Compose compiler - **fixed** — Forward-compatibility violation NoSuchMethodError on JvmSnapshotBasedIncrementalCompilationConfiguration. breaks incremental compilation - **fixed** — Compiler warnings printed twice in console as w: and as Gradle Problem found: block - **fixed** — ABI validation tasks fail with Unsupported platform toolchain type when using kotlin.compilerVersion pointing to an older compiler - **fixed** — BinaryenExec.standardOutput is silently ignored in Wasm Gradle after migration to Gradle Workers ##### Changelog ###### Backend. J2KLIB - [`KT-86367`](https://youtrack.jetbrains.com/issue/KT-86367) [JKLIB] kotlin.Cloneable built-in class not found ###### Compose compiler - [`b/511102714`](https://issuetracker.google.com/issues/511102714) Made the default stability of non-final classes `Unknown` instead of `Stable` ###### Tools. Build Tools API - [`KT-86395`](https://youtrack.jetbrains.com/issue/KT-86395) [BTA] forward-compatibility violation: NoSuchMethodError on JvmSnapshotBasedIncrementalCompilationConfiguration. breaks IC ###### Tools. Gradle - [`KT-86346`](https://youtrack.jetbrains.com/issue/KT-86346) Compiler warnings printed twice in console — once as `w:` and again as Gradle "Problem found:" block ###### Tools. Gradle. BCV - [`KT-86268`](https://youtrack.jetbrains.com/issue/KT-86268) ABI validation tasks fail with Unsupported platform toolchain type when using kotlin.compilerVersion pointing to an older compiler after BTA migration in 2.4.0-Beta2 ###### Tools. Gradle. Wasm - [`KT-86457`](https://youtrack.jetbrains.com/issue/KT-86457) [Wasm, Gradle] BinaryenExec.standardOutput is silently ignored after migration to Gradle Workers ### v2.4.0-RC — Kotlin 2.4.0-RC - Date: 2026-05-13 - Version: v2.4.0-RC - Original notes: https://github.com/JetBrains/kotlin/releases/tag/v2.4.0-RC - Permalink: https://whatsnew.fyi/product/kotlin/releases/v2.4.0-rc - Labels: Pre-release - **removed** — Remove withKotlinBuiltinsHack present in JKlibIrLinker.kt - **fixed** — Fix tests failing with fake override property missing accessors or backing field - **fixed** — Fix IllegalStateException due to already bound symbol - **changed** — Propagate private members from dependencies in the IR tree - **changed** — Update -Xannotation-default-target CLI parameter doc - **fixed** — Fix contracts in 2.4 stdlib to be compatible with 2.3 compiler - **fixed** — Fix contract on function getting discarded if any of effect declarations is unknown - **fixed** — Fix false positive UNINITIALIZED_ENUM_COMPANION on LV 2.3 and lower - **fixed** — Fix false positive UNINITIALIZED_ENUM_COMPANION in enum access with explicit receiver in enum initializer when enum class has a companion - **added** — Add JVM target bytecode version 26 - **fixed** — Fix context parameter lambda losing context type when wrapped in nested run blocks - **fixed** — Fix property contract leaking unsubstituted type parameter in smart cast - **changed** — Do not generate groups in inline lambdas without @Composable calls - **added** — Create a new CLI flag to enable IntrinsicConstEvaluation feature - **fixed** — Fix KClass.constructors returning all java.lang.String constructors for mapped type kotlin.String - **fixed** — Fix reflection ByteArray KType incorrectly having type arguments in Kotlin 2.4.0 - **removed** — Hide returnsResultOf under a separate flag and remove its usages from kotlin stdlib - **changed** — Stabilize runtime ABI for PowerAssert initial release - **changed** — Automatically add runtime library dependency for PowerAssert - **fixed** — Fix serialization IndexOutOfBoundsException on property generated by Compose plugin - **fixed** — Fix IncompatibleClassChangeError on deserialization of @Serializable data class when Compose compiler plugin is applied before Serialization plugin ##### Changelog ###### Backend. J2KLIB - [`KT-84877`](https://youtrack.jetbrains.com/issue/KT-84877) [J2KLIB] Remove withKotlinBuiltinsHack present in JKlibIrLinker.kt - [`KT-85846`](https://youtrack.jetbrains.com/issue/KT-85846) Tests failing with fake override property missing accessors or backing field - [`KT-85717`](https://youtrack.jetbrains.com/issue/KT-85717) IllegalStateException due to already bound symbol - [`KT-86204`](https://youtrack.jetbrains.com/issue/KT-86204) [JKlib] Propagate private members from dependecies in the IR tree ###### Compiler - [`KT-86210`](https://youtrack.jetbrains.com/issue/KT-86210) Update -Xannotation-default-target CLI parameter doc - [`KT-85948`](https://youtrack.jetbrains.com/issue/KT-85948) Contracts in 2.4 stdlib is not compatible with 2.3 compiler - [`KT-85957`](https://youtrack.jetbrains.com/issue/KT-85957) Contract on function is getting discarded if any of effect declarations is unknown - [`KT-86130`](https://youtrack.jetbrains.com/issue/KT-86130) False positive UNINITIALIZED_ENUM_COMPANION on LV 2.3 and lower - [`KT-84860`](https://youtrack.jetbrains.com/issue/KT-84860) False positive UNINITIALIZED_ENUM_COMPANION in enum access with explicit receiver in enum initializer when enum class has a companion - [`KT-84319`](https://youtrack.jetbrains.com/issue/KT-84319) Add JVM target bytecode version 26 - [`KT-85825`](https://youtrack.jetbrains.com/issue/KT-85825) Context parameter lambda loses context type when wrapped in nested `run` blocks - [`KT-84960`](https://youtrack.jetbrains.com/issue/KT-84960) Property contract leaks unsubstituted type parameter in smart cast ###### Compose compiler - [`b/509945632`](https://issuetracker.google.com/issues/509945632) Do not generate groups in inline lambdas without `@Composable` calls ###### IR. Interpreter - [`KT-86083`](https://youtrack.jetbrains.com/issue/KT-86083) Create a new CLI flag to enable `IntrinsicConstEvaluation` feature ###### JVM. Reflection - [`KT-86017`](https://youtrack.jetbrains.com/issue/KT-86017) KClass.constructors returns all java.lang.String constructors for mapped type kotlin.String - [`KT-85999`](https://youtrack.jetbrains.com/issue/KT-85999) Reflection: ByteArray KType incorrectly has type arguments in Kotlin 2.4.0 ###### Libraries - [`KT-86027`](https://youtrack.jetbrains.com/issue/KT-86027) Hide returnsResultOf under a separate flag and remove its usages from kotlin stdlib ###### Native - [`KT-84733`](https://youtrack.jetbrains.com/issue/KT-84733) LLVM Update: rebase LLVM once the upstream stabilizes ###### Tools. Compiler Plugin API - [`KT-85969`](https://youtrack.jetbrains.com/issue/KT-85969) KtLint incompatible with Kotlin 2.4.0-Beta2 (parsing errors / Extensions storage issue) ###### Tools. Compiler Plugins - [`KT-86170`](https://youtrack.jetbrains.com/issue/KT-86170) PowerAssert: Stabilize runtime ABI for initial release - [`KT-85250`](https://youtrack.jetbrains.com/issue/KT-85250) PowerAssert: Automatically add runtime library dependency ###### Tools. Compiler plugins. Serialization - [`KT-85554`](https://youtrack.jetbrains.com/issue/KT-85554) Serialization: "IndexOutOfBoundsException" on property generated by Compose plugin - [`KT-85963`](https://youtrack.jetbrains.com/issue/KT-85963) `IncompatibleClassChangeError: Expected non-static field $stable` on deserialization of `@Serializable` data class when Compose compiler plugin is applied before Serialization plugin ###### Tools. Gradle - [`KT-85373`](https://youtrack.jetbrains.com/issue/KT-85373) Compile against Gradle API 9.5.0 - [`KT-85374`](https://youtrack.jetbrains.com/issue/KT-85374) Run tests against Gradle 9.5.0 ###### Tools. Gradle. Multiplatform - [`KT-85877`](https://youtrack.jetbrains.com/issue/KT-85877) The number of SPM direct dependencies is multiplied on number on targets - [`KT-85706`](https://youtrack.jetbrains.com/issue/KT-85706) SwiftPM Import: Updating p _[Truncated at 4000 characters — full notes: https://github.com/JetBrains/kotlin/releases/tag/v2.4.0-RC]_ ### v2.3.21 — Kotlin 2.3.21 - Date: 2026-04-23 - Version: v2.3.21 - Original notes: https://github.com/JetBrains/kotlin/releases/tag/v2.3.21 - Permalink: https://whatsnew.fyi/product/kotlin/releases/v2.3.21 - **fixed** — Fixed Wasm compilation failure of klibs in IC mode - **fixed** — Prevented launching Default dispatcher threads from IJ SDK in Kotlin compiler - **fixed** — Rolled back the workaround for KT-84678 once MapLibre has been properly fixed - **fixed** — Fixed @JvmRecord in commonMain breaking compileCommonMainKotlinMetadata with 'Cannot access java.lang.Record' error - **fixed** — Postponed/reverted DontIgnoreUpperBoundViolatedOnImplicitArguments - **fixed** — Fixed undefined symbol from SPM-added ObjC frameworks when linking iOS target - **fixed** — Fixed false positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project - **fixed** — Supported top-level declarations from compiler plugins in JS incremental compilation - **fixed** — Fixed false-positive exportability warnings in K/JS multi-module project - **fixed** — Fixed 'Serializer for class not found' error in Kotlin/JS when IR output granularity is whole-program - **fixed** — Fixed @JsStatic on suspend fun of class companion generating incorrect d.ts - **fixed** — Fixed bad mappings data in outputted Kotlin stdlib source map - **added** — Added CompilerPluginData into Km API for Kotlinx.metadata - **fixed** — Fixed TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabled - **fixed** — Fixed TypeCastException when using nw_parameters_create_secure_tcp block parameter - **changed** — Updated Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal - **fixed** — Fixed MergeMappingFileTask clearing R8 artifacts due to @OutputDirectory annotation on AGP 9.1+ - **fixed** — Fixed JVM backend internal error when scratch file contains anonymous object - **fixed** — Fixed exception while generating code when explaining destructuring declarations - **fixed** — Fixed scriptCompilationClasspathFromContext behavior change from 2.3.10 to 2.3.20 ##### Changelog ###### Backend. Wasm - [`KT-84610`](https://youtrack.jetbrains.com/issue/KT-84610) [Wasm] Failed to compile klibs in IC mode ###### Compiler - [`KT-84566`](https://youtrack.jetbrains.com/issue/KT-84566) Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler - [`KT-85358`](https://youtrack.jetbrains.com/issue/KT-85358) Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed - [`KT-85626`](https://youtrack.jetbrains.com/issue/KT-85626) `@JvmRecord` in commonMain breaks compileCommonMainKotlinMetadata with "Cannot access 'java.lang.Record'" - [`KT-85405`](https://youtrack.jetbrains.com/issue/KT-85405) Postpone/Revert `DontIgnoreUpperBoundViolatedOnImplicitArguments` - [`KT-84678`](https://youtrack.jetbrains.com/issue/KT-84678) K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target - [`KT-85021`](https://youtrack.jetbrains.com/issue/KT-85021) False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project ###### JavaScript - [`KT-82395`](https://youtrack.jetbrains.com/issue/KT-82395) Support top-level declarations from compiler plugins in JS incremental compilation - [`KT-84475`](https://youtrack.jetbrains.com/issue/KT-84475) K/JS: false-positive exportability warnings in multi-module project - [`KT-84633`](https://youtrack.jetbrains.com/issue/KT-84633) Kotlin/JS: "Serializer for class not found" error when IR output granularity is `whole-program` - [`KT-85047`](https://youtrack.jetbrains.com/issue/KT-85047) Kotlin/JS: `@JsStatic` on suspend fun of class companion generates incorrect d.ts - [`KT-84517`](https://youtrack.jetbrains.com/issue/KT-84517) K/JS: bad mappings data in outputted Kotlin stdlib source map ###### Libraries - [`KT-71848`](https://youtrack.jetbrains.com/issue/KT-71848) Kotlinx.metadata: Add `CompilerPluginData` into Km API ###### Native. C and ObjC Import - [`KT-85399`](https://youtrack.jetbrains.com/issue/KT-85399) Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabled - [`KT-85508`](https://youtrack.jetbrains.com/issue/KT-85508) K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20 ###### Tools. Gradle - [`KT-84729`](https://youtrack.jetbrains.com/issue/KT-84729) Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal ###### Tools. Gradle. Compiler plugins - [`KT-85257`](https://youtrack.jetbrains.com/issue/KT-85257) AGP/Compose: MergeMappingFileTask clears R8 artifacts due to `@OutputDirectory` annotation on AGP 9.1+ ###### Tools. Scripts - [`KT-85105`](https://youtrack.jetbrains.com/issue/KT-85105) Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous object - [`KT-85103`](https://youtrack.jetbrains.com/issue/KT-85103) Exception while generating code when explain destructuring decls - [`KT-84842`](https://youtrack.jetbrains.com/issue/KT-84842) scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20 - [`KT-85029`](https://youtrack.jetbrains.com/issue/KT-85029) Kotlin Scripting: ScriptDiagnostic reports "at null" instead of error location ###### Tools. Statistics (FUS) - [`KT-85628`](https://youtrack.jetbrains.com/issue/KT-85628) KGP: composite build FUS metrics fail on access of 'configurationTimeMetrics' ### v2.4.0-Beta2 — Kotlin 2.4.0-Beta2 - Date: 2026-04-22 - Version: v2.4.0-Beta2 - Original notes: https://github.com/JetBrains/kotlin/releases/tag/v2.4.0-Beta2 - Permalink: https://whatsnew.fyi/product/kotlin/releases/v2.4.0-beta2 - Labels: Pre-release - **fixed** — Analysis API: Dangling file session creation causes a computeIfAbsent contract violation - **fixed** — Analysis API: False positive deprecation warning with override of built-in method in JDK mapped class - **fixed** — Analysis API: collectDesignationPath fails for nested classes inside plugin-generated top-level classes - **added** — Extract compiler classes used by the PSI & Analysis API to a separate module - **added** — Analysis API: Implement Analysis API tests for different KMP Platforms - **added** — Extract per-module test generators for AA tests - **fixed** — removeModifier doesn't delete whitespaces around the removed modifier - **fixed** — KtEnumEntry.delete deletes semicolon - **changed** — Use computed properties in KotlinElementTypeProviderImpl - **fixed** — StackOverflowError from LLKotlinStubBasedLibrarySymbolProvider and StubBasedClassDeserialization - **added** — Support KDoc loading in decompiled stubs - **added** — Automatically recognize the appropriate analysis mode for in-memory file copies based on their content - **added** — Streaming version of collectDiagnostics() - **added** — Extend KaKDocProvider to read Kdoc from KLIB metadata - **fixed** — KaFirCompilerFacility uses an arbitrary JVM counterpart for common sources - **fixed** — KaCallableSymbol#directlyOverriddenSymbols doesn't work for java overrides of kotlin properties - **fixed** — KaFirJavaInteroperabilityComponent#getJavaGetterName should not throw exception on incomplete code - **changed** — K/Wasm: stabilize and turn on incremental compilation by default - **fixed** — K/Wasm: Invalid Ir type while suspend call with blocked if null comprehension ##### Changelog ###### Analysis API - [`KT-65683`](https://youtrack.jetbrains.com/issue/KT-65683) Analysis API: Dangling file session creation causes a `computeIfAbsent` contract violation ###### Analysis API. FIR - [`KT-70896`](https://youtrack.jetbrains.com/issue/KT-70896) AA: False positive deprecation warning with override of built-in method in JDK mapped class - [`KT-84625`](https://youtrack.jetbrains.com/issue/KT-84625) Analysis API: collectDesignationPath fails for nested classes inside plugin-generated top-level classes ###### Analysis API. Infrastructure - [`KT-84913`](https://youtrack.jetbrains.com/issue/KT-84913) Extract compiler classes used by the PSI & Analysis API to a separate module - [`KT-64986`](https://youtrack.jetbrains.com/issue/KT-64986) Analysis API: Implement Analysis API tests for different KMP Platforms - [`KT-80379`](https://youtrack.jetbrains.com/issue/KT-80379) Extract per-module test generators for AA tests ###### Analysis API. PSI - [`KT-84715`](https://youtrack.jetbrains.com/issue/KT-84715) removeModifier doesn't delete whitespaces around the removed modifier - [`KT-84564`](https://youtrack.jetbrains.com/issue/KT-84564) KtEnumEntry.delete deletes semicolon - [`KT-84781`](https://youtrack.jetbrains.com/issue/KT-84781) Use computed properties in KotlinElementTypeProviderImpl ###### Analysis API. Stubs and Decompilation - [`KT-85371`](https://youtrack.jetbrains.com/issue/KT-85371) StackOverflowError from LLKotlinStubBasedLibrarySymbolProvider and StubBasedClassDeserialization - [`KT-83935`](https://youtrack.jetbrains.com/issue/KT-83935) Support KDoc loading in decompiled stubs ###### Analysis API. Surface - [`KT-82519`](https://youtrack.jetbrains.com/issue/KT-82519) Automatically recognize the appropriate analysis mode for in-memory file copies based on their content - [`KT-85239`](https://youtrack.jetbrains.com/issue/KT-85239) Streaming version of collectDiagnostics() - [`KT-83921`](https://youtrack.jetbrains.com/issue/KT-83921) Extend KaKDocProvider to read Kdoc from KLIB metadata - [`KT-77426`](https://youtrack.jetbrains.com/issue/KT-77426) KaFirCompilerFacility uses an arbitrary JVM counterpart for common sources - [`KT-84737`](https://youtrack.jetbrains.com/issue/KT-84737) KaCallableSymbol#directlyOverriddenSymbols doesn't work for java overrides of kotlin properties - [`KT-84621`](https://youtrack.jetbrains.com/issue/KT-84621) Migrate symbol tests to ManagedTest properly - [`KT-80575`](https://youtrack.jetbrains.com/issue/KT-80575) KaFirJavaInteroperabilityComponent#getJavaGetterName should not throw exception on incomplete code ###### Backend. Wasm - [`KT-76205`](https://youtrack.jetbrains.com/issue/KT-76205) K/Wasm: stabilize and turn on incremental compilation by default - [`KT-83728`](https://youtrack.jetbrains.com/issue/KT-83728) [Wasm] Invalid Ir type while suspend call with blocked if null comprehansion - [`KT-81637`](https://youtrack.jetbrains.com/issue/KT-81637) K/JS/Wasm interop: Inconsistent behavior of `is`/`as` operations for `JsReference` and `C` ###### Compiler ###### New Features - [`KT-84484`](https://youtrack.jetbrains.com/issue/KT-84484) Companion Extensions Analysis & Resolution - [`KT-84298`](https://youtrack.jetbrains.com/issue/KT-84298) K2: Generate IR for Companion Blocks & Extensions - [`KT-84292`](https://youtrack.jetbrains.com/issue/KT-84292) Enforce Companion Blocks & Extensions Language Feature during Resolution - [`KT-84291`](https://youtrack.jetbrains.com/issue/KT-84291) Companion Blocks & Extensions Checkers - [`KT-84290`](https://youtrack.jetbrains.com/issue/KT-84290) Callable References to Companion Block Declarations & Extensions - [`KT-84287`](https://youtrack.jetbrains.com/issue/KT-84287) Build Raw FIR for Companion Blocks & Extensions - [`KT-73256`](https://youtrack.jetbrains.com/issue/KT-73256) Implement `all` meta-target for annotations - [`KT-84319`](https://youtrack.jetbrains. _[Truncated at 4000 characters — full notes: https://github.com/JetBrains/kotlin/releases/tag/v2.4.0-Beta2]_