2.4.0-Beta2
Analysis API
KT-65683 Analysis API: Dangling file session creation causes a computeIfAbsent contract violation
Analysis API. FIR
KT-70896 AA: False positive deprecation warning with override of built-in method in JDK mapped classKT-84625 Analysis API: collectDesignationPath fails for nested classes inside plugin-generated top-level classes
Analysis API. Infrastructure
KT-84913 Extract compiler classes used by the PSI & Analysis API to a separate moduleKT-64986 Analysis API: Implement Analysis API tests for different KMP PlatformsKT-80379 Extract per-module test generators for AA tests
Analysis API. PSI
KT-84715 removeModifier doesn't delete whitespaces around the removed modifierKT-84564 KtEnumEntry.delete deletes semicolonKT-84781 Use computed properties in KotlinElementTypeProviderImpl
Analysis API. Stubs and Decompilation
KT-85371 StackOverflowError from LLKotlinStubBasedLibrarySymbolProvider and StubBasedClassDeserializationKT-83935 Support KDoc loading in decompiled stubs
Analysis API. Surface
KT-82519 Automatically recognize the appropriate analysis mode for in-memory file copies based on their contentKT-85239 Streaming version of collectDiagnostics()KT-83921 Extend KaKDocProvider to read Kdoc from KLIB metadataKT-77426 KaFirCompilerFacility uses an arbitrary JVM counterpart for common sourcesKT-84737 KaCallableSymbol#directlyOverriddenSymbols doesn't work for java overrides of kotlin propertiesKT-84621 Migrate symbol tests to ManagedTest properlyKT-80575 KaFirJavaInteroperabilityComponent#getJavaGetterName should not throw exception on incomplete code
Backend. Wasm
KT-76205 K/Wasm: stabilize and turn on incremental compilation by defaultKT-83728 [Wasm] Invalid Ir type while suspend call with blocked if null comprehansionKT-81637 K/JS/Wasm interop: Inconsistent behavior of is/as operations for JsReference<C> and C
Compiler
New Features
KT-84484 Companion Extensions Analysis & ResolutionKT-84298 K2: Generate IR for Companion Blocks & ExtensionsKT-84292 Enforce Companion Blocks & Extensions Language Feature during ResolutionKT-84291 Companion Blocks & Extensions CheckersKT-84290 Callable References to Companion Block Declarations & ExtensionsKT-84287 Build Raw FIR for Companion Blocks & ExtensionsKT-73256 Implement all meta-target for annotationsKT-84319 Add JVM target bytecode version 26KT-84297 Serialize & Deserialize Companion Block Declarations & Extensions to/from MetadataKT-84199 Implement DontMakeExplicitNullableJavaTypeArgumentsFlexible feature
Fixes
KT-80489 Collection literals: experimental version (Frontend)KT-84566 Prevent launching Default dispatcher threads from IJ SDK in kotlin compilerKT-85358 Native: roll back the workaround for KT-84678 once MapLibre has been properly fixedKT-84931 Incorrect type nullability in SAM super type in anonymous class-based SAM conversionKT-83920 False positive “modifier ‘value’ is not applicable to ‘local variable’” with soft keyword in positional destructuring (square bracket) declarationKT-85626 @JvmRecord in commonMain breaks compileCommonMainKotlinMetadata with “Cannot access ‘java.lang.Record’”KT-52673 Don't report deprecation warning/error on importsKT-84991 Improve Argument type mismatch diagnosticsKT-82216 Sanitize ‘.kotlin_module’ filenameKT-84678 K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS targetKT-77726 Move FirUnusedExpressionChecker to the default checkers listKT-85354 checkPsiTypeConsistency: add psi text attachmentsKT-85479 Improve diagnostic messages for upper bound violationsKT-84585 Upper bound violated warning for expansion of type alias in LHSKT-84924 Native: stdlib-cache.lock used by mulitple processesKT-85244 False positive DUPLICATE_BRANCH_CONDITION_IN_WHEN with guard conditionKT-78432 No-arg constructor should be generated for regular classes with a value class parameter in case of JvmExposeBoxedKT-85487 Investigate why WrapContinuationForTailCallFunctions does not work in Android TestKT-59633 K2: Implement running AndroidRunner tests with FIRKT-85392 Native: concurrency issues in per-file cachesKT-76237 Store File-level annotations in KLIB metadata separatelyKT-85162 Introduce diagnostics to refine numeric types castingKT-80060 False positive REDUNDANT_CALL_OF_CONVERSION_METHOD in case of overloadsKT-85289 False-positive smartcast from == with type parameter based variableKT-83890 return-value-checker: false positive “Unused return value of ‘context’” on kotlin.context() functionsKT-84106 False negative “NON_EXHAUSTIVE_WHEN”: “NoWhenBranchMatchedException” at runtime with sealed and platform typeKT-85005 Consider all: target in the checker of repeatable annotationsKT-85210 Enabling -XXLanguage:+IntrinsicConstEvaluation breaks highlighting on some broken codeKT-85217 Rework implementation supporting simple-to-suspend function conversionKT-85036 Introduce a proper handling of optional expectation annotations in platform checkers during metadata compilationKT-85086 False-negative JVM_EXPOSE_BOXED_CANNOT_BE_THE_SAMEKT-84082 [OPT_IN_USAGE_ERROR] duplicates for destructuring declarationKT-84732 Collection literals: “Expected FirCollectionLiteralImpl to be resolved” in RHS of equality operatorKT-84841 Collection literals: Drop special treatment of when with expected typeKT-85007 Properly implement special rules for kotlin.Result in @JvmExposeBoxed supportKT-74383 Support new callable reference nodes in JVM backendKT-84828 Cleanup JVM backend from the old callable references-related codeKT-85006 Refine error messages for INAPPLICABLE_ALL_TARGET diagnosticKT-84296 Support Companion Blocks in CFGKT-85058 Remove final field modification in DescriptorRendererOptionsImpl to prevent warnings on JDK 26+KT-85021 False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module projectKT-84727 [K/N] Segfault when returning null as generic Int type from dynamic frameworkKT-85062 Deprecate language version 2.1KT-83460 Deprecation from @all:Deprecated is not propagated to property accessors/backing fieldsKT-84859 Skip deprecation phase for generic arguments in qualifier receiver of static call for companion block members and extensionsKT-85050 [Swift Export] usage of inline classes with ref types crashes at runtimeKT-84983 Type parameter annotations are lost for local functionsKT-78800 Investigate FirMissingDependencySupertypeInQualifiedAccessExpressionsCheckerKT-73945 K2 IDE: Duplicated inspections for redundant ‘open’ in interface memberKT-84294 Ensure Context Sensitive Resolution works with Companion Blocks & ExtensionsKT-81675 Improve message for CONTEXTUAL_OVERLOAD_SHADOWEDKT-84994 Rework optimization for companion extension resolutionKT-81598 incorrect type mismatch error messages for generic calls with explicit type argumentsKT-83587 K2: Missing null-check when using == on Short! and Byte! platform typesKT-261 Can't specify function return type in a subclass
Compose compiler
New features
c1bbb47 Started inferring the stability of all interfaces to be Stability.Unknown, expect for those explicitly marked as known stable.
Fixes
b/504284805 Fix indentation for generated proguard mappingsb/422193018 Fix applier inference for nested composables of different types.b/497751457 Prevent a $stable property from being added to any object.b/427530633 Do not infer a getter call as static across when it is defined in another file.b/427530633 Started using Stability.Runtime more broadly. Now, when an element depends on the stability of an internal or public class defined in another file, the element will no longer infer the stability of that class and will depend on the runtime stability of that class instead.
IR. Actualizer
KT-84293 Expect Actual Matching for Companion Block Declarations & Extensions
IR. Inlining
KT-85605 “Local delegated property has not delegate” exception when calling inline function containing delegated property in a lambda from within an inline lambda
IR. Interpreter
KT-80804 Enable constant evaluation for more standard libraryKT-83514 Get rid of EvaluatedConstTracker
IR. Tree
KT-79663 KLIB-based compilers: Promote partial linkage to “always on”KT-76934 Drop old IR parameter APIKT-74763 Build: refactor ‘:compiler:backend.common’ and ‘:compiler:ir.backend.common’ modules
JVM. Reflection
KT-85550 Reflection: KParameter.type.classifier returns boxed KClass for non-nullable primitive typesKT-85285 Reflection: InvocationTargetException (UInt cannot be cast to Integer) when reading UInt annotation property via getterKT-85322 Reflection: KotlinReflectionInternalError when loading ProGuard-obfuscated code compiled before 2.3.20KT-84679 Reflection: confusing “Kotlin reflection is not yet supported for synthetic Java properties” for reference to Java enum's entries propertyKT-85025 KTypeParameter instances not equal to each other for the same type parameter in member specialization KFunctionKT-85091 Reflection: “KotlinReflectionInternalError: Unsupported parameter owner: null” on attempt to get annotations of annotation constructor parameterKT-84382 Reflection: raw list in Java type is transformed to List instead of MutableList
JavaScript
Fixes
KT-82395 Support top-level declarations from compiler plugins in JS incremental compilationKT-81787 KJS: Value class type lost when using JsExport on interfaceKT-85411 Fix conversionCombinations.kt tests for the JS targetKT-72198 KJS: ES2015 interop with ValueClassKT-15101 js: Same callable references are not equalKT-84810 [K/JS] Callable references operator produces duplicatesKT-85323 JsClass optimization doesn't work well for primitivesKT-60651 KJS / ES6: init block and constructor are not calledKT-84601 K/JS: KClass<> reference doesn't work in JS counterside as a new target in ES6 modeKT-85099 KotlinJS: JsPlainObject from the js-plain-objects plugin does not respect overridesKT-84615 KJS: Forbid @JsStatic on extension functions/propertiesKT-84633 Kotlin/JS: “Serializer for class not found” error when IR output granularity is whole-programKT-85038 Kotlin/JS: @JsExport on sealed external interface with companion object causes NPEKT-85047 Kotlin/JS: @JsStatic on suspend fun of class companion generates incorrect d.tsKT-84517 K/JS: bad mappings data in outputted Kotlin stdlib source map
Klibs
KT-84415 Ineffective hashMap usage in IrSymbolDeserializerKT-84511 [Native][Tests] Improve descriptor-related logic in NativeCliBasedFacades.ktKT-85017 [PL] Add test for added internal abstract funKT-84488 Export in previous version: Prohibit using on 2nd stageKT-85149 Klib Dump parser: fix parsing of qualified names adjacent to vararg symbolKT-85129 Klib Dump parser: fix enum names parsingKT-84684 Remove UserVisibleIrModulesSupport from IR linkerKT-84820 [K/N] Load libcallbacks and libllvmstubs from configured path
Language Design
KT-73821 Decide the future of the ForbidUsingSupertypesWithInaccessibleContentInTypeArguments language featureKT-80852 Version overloading: generate overloads corresponding to different versions of a function whose parameters are annotated with @IntroducedAt()KT-85120 @IntroducedAt on expect parameter cannot be properly actualized
Libraries
KT-85122 Deprecate kotlin.io.readLine with WARNINGKT-84970 Deprecate AbstractCoroutineContextKey and associated APIKT-84818 [Regex] Native and Wasm: Decomposed Unicode character are incorrectly process with CANON_EQ flagKT-80772 K/N: Regex: improve look behind matching performance for “fixed-length” patternsKT-81395 Stabilize kotlin.uuid.Uuid APIKT-85127 Remove kotlin.test.assert*NoInline hidden functionsKT-84264 Add appropiate @SinceKotlin to new contractsKT-84921 Add ‘returnsResultOf’ contract to appropriate declarations in the stdlibKT-84697 Update the list of JDKs the stdlib is tested with
Native
KT-83914 Native: when loading JNI libraries, java.library.path can contain system directories with libraries with same namesKT-84826 Bump the minimum deployment version of Apple targetsKT-83133 Native: don't use sun.misc.Unsafe in the compiler and cinterop when running on JDK 25+KT-84686 Removing x64 in gradle file breaks builds on certain platformsKT-83648 Native: don't use sun.misc.Unsafe in NativeMemoryAllocator when running on JDK 25+KT-83647 Native: don't use sun.misc.Unsafe in nativeMemUtils when running on JDK 25+
Native. Build Infrastructure
KT-85191 K/N: Dependency cycle in libclangInteropKT-84937 Kotlin/Native: non-reproducible .bc for mingw_x64
Native. C Export
KT-61748 KMM- warnings when compiling native targets (Kotlin 1.9.0)
Native. C and ObjC Import
KT-85705 Swift-generated headers with external_source_symbol produce duplicate enum declarationsKT-85399 Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabledKT-85508 K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20KT-84023 Modular import fails with an obscure error when the failing module is not the last one
Native. ObjC Export
KT-85171 Red Swift code in Native UI Multiplatform App project from Template Gallery
Native. Runtime
KT-84331 Kotlin/Native: RunLoopFinalizerProcessor needs initialized runtime before it has any jobs
Native. Runtime. Memory
KT-83670 K/N: gc concurrent mark phase assert Failed to terminate mark in STW in a single iteration
Native. Swift Export
New Features
KT-82705 Support convenient export of Flow types in Swift exportKT-85130 [Swift Export] Preserve TypeInfo on SharedFlowKT-84361 [Swift Export] Preserve TypeInfo on StateFlow
Fixes
KT-84317 Swift Export: “protocol members can only be marked unavailable in an ‘@objc’ protocol” in generated code for kotlinx-coroutinesKT-85380 [Swift Export] Attempt to bridge unbridgeable type: SirUnsupportedTypeKT-85704 [Swift Export] cannot infer generic type of function returning a generic typeKT-85711 [Swift Export] suspend function returning non-null generic fails to compileKT-85715 [Swift Export] generic interface in typealias fails to compileKT-85714 [Swift Export] unsupported input type param in functional receiverKT-85458 [Swift Export] value of a closure returning a closure generates invalid swift codeKT-85521 [Swift Export] conflicting overloads for generated Kotlin bridgesKT-85293 SwiftExportCoroutinesWithResultValidationTest.testCoroutines fails after cross-pushKT-84515 [Swift Export] suspend functional parameter generates invalid Swift codeKT-82282 Swift Export: suspend function returning Array leads to incompilable codeKT-81540 Swift Export: using interface in Set generates incompilable codeKT-80305 Support coroutines in Swift ExportKT-66873 Swift Export: suspendable contravariant functional typeKT-85272 [Swift Export] conflicting imports for kotlinx-coroutinesKT-85163 [Swift Export] Flow of Unit values crashesKT-85159 [Swift Export] Flow is not properly being cancelledKT-84226 [Swift Export] Flow in contrvariant position is not allowedKT-84485 [Swift Export] Flow with nullable elementsKT-83730 Generated Swift switch on bridged Kotlin enum crashes with fatalErrorKT-85016 [Swift Export] it's not OK to expose Flow as AsyncSequenceKT-84979 Swift Export Nullability: UnitKT-83821 Swift Export: suspend function returning Nothing leads to incompilable code
Tools. BCV
KT-83476 Use Maven publications as dump input [ABI Validation]
Tools. Build Tools API
New Features
KT-82791 BTA: introduce an option for ExecutionPolicy.WithDaemon to control the daemon log files pathKT-80963 BTA: Add structured information about reported messages to KotlinLoggerKT-73037 Add input (like compiler arguments) changes tracking
Fixes
KT-84228 BTA: Improving KDoc generation for Enums and Custom TypesKT-85738 BTA forward compatibility: NoSuchFieldError on X_IGNORED_ANNOTATIONS_FOR_BRIDGES when API 2.3.0 is used with impl 2.4.0KT-85082 Make Xignored-annotations-for-bridges type safeKT-82390 [BTA] Remove deprecated non-builder factory functions and classesKT-85072 AbstractMethodError when calling discoverScriptExtensionsOperationBuilder with pre-2.4.0 compilerKT-85447 BTA: deprecate JvmCompilerArguments.contains (warning)KT-85092 [BTA] Update BTA Backward Compatibility Testing: 2.3.20-RC → 2.3.20KT-85439 BTA: Warn or error when incompatible compiler arguments are passed via applyArgumentStringsKT-75540 Build Tools API Should Reject -Xbuild-file ArgumentKT-85391 [BTA] Hide boilerplate required to load isolated BTA implementationKT-80679 Add support for the Build Tools API [ABI Validation]KT-85035 Don't expose X_COMPILER_PLUGIN_ORDER in CommonCompilerArgumentsKT-84738 Make Xscript-resolver-environment type safeKT-85204 Make Xdump-directory type safeKT-85205 Make Xdump-perf type safeKT-85069 Make Xnullability-annotations type safeKT-85167 Make Xjsr305 type safeKT-85094 Make Xwarning-level type safeKT-85294 BTA: Replace hardcoded @since in KDoc with dynamic versioningKT-85333 Add BTA tests for BACKUP_CLASSES and KEEP_IC_CACHES_IN_MEMORY behavior after compilation errorKT-84770 BTA: default options cannot be retrieved from many option objectsKT-85224 Add @ExperimentalArgumentApi to compiler argument DSL typesKT-84322 Make X_PROFILE BTA compiler argument type safeKT-84953 Fail TC build if generated files changeKT-85189 Refactor path argument types: flatten hierarchy and improve namingKT-84984 Runtime NPEs caused by null return in CompilerMessageRenderer implementationKT-84015 Introduce detection of custom script names to new BTA API
Tools. CLI
KT-85414 Argument DSL: delimiter = KotlinCompilerArgument.Delimiter.PathSeparator generates invalid Kotlin codeKT-85001 Convert ImplicitJvmExposeBoxed language feature to analysis flagKT-84999 Don't poison binaries with ImplicitJvmExposeBoxed language featureKT-85004 Set proper since version for language feature about property annotation targetingKT-56850 Separate K/Wasm CLI entry point from K/JS CLI
Tools. Compiler Plugin API
KT-85133 Drop deprecated K1 specific methods from IrPluginContext
Tools. Compiler Plugins
KT-75656 PowerAssert: Create runtime libraryKT-75873 PowerAssert: display callable reference value under ‘::’KT-85151 PowerAssert: Surround string and character values with quotesKT-85184 PowerAssert: Annotation may only be used on expect and non-override functionsKT-69036 Power-Assert indent multiline valuesKT-85089 PowerAssert: Wasm CompileError when using PowerAssert.explanation
Tools. Gradle
New Features
KT-76197 Write Kotlin compiler warnings and errors to Problems API
Fixes
KT-85412 Module name is not sanitized with older Kotlin compiler versionsKT-65566 Use the new ConfigurationContainer consumable method to create consumable configurationsKT-85509 Remove deprecated API in the 2.4.0 releaseKT-83858 Compatibility with Gradle 9.4.0 releaseKT-69830 Support Gradle com.gradle.develocity plugin in KGPKT-85433 Gradle: deprecate non-BTA JVM compiler execution modeKT-80448 Remove internal & deprecated API from ExtrasProperty.ktKT-69701 Gradle: module name is passed inconsistently to different types of compilationsKT-83860 Run tests against Gradle 9.4.0KT-83859 Compile against Gradle API 9.4.0KT-84729 Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal
Tools. Gradle. BCV
KT-83999 ABI validation: Groovy DSL doesn’t deprecate included/excluded filters, allowing four filter configs instead of twoKT-84461 Remove the use of abi-tools-api from KGP [ABI Validation]KT-84100 Add Deprecated annotation to legacyDump block and property [ABI Validation]
Tools. Gradle. Compiler plugins
KT-85343 Update Compose Gradle plugin deprecations before 2.4
Tools. Gradle. JS
KT-84753 Deprecate KotlinJsCompilerType and KotlinProjectExtension methods using itKT-81033 K/JS, Wasm: Remove deprecated wasm declarations in “js” packageKT-81034 K/JS, Wasm: Remove deprecated public constructors of JS declarationsKT-81030 K/JS, Wasm: remove deprecated NodeJsExec.createKT-81037 K/JS, Wasm: Remove deprecated internal JS functions
Tools. Gradle. Multiplatform
KT-84767 K/N: associateWith triggers warning about friend-modules libs not included in -library argumentKT-69571 compileNativeMainKotlinMetadata not handling project/prebuilt substitutionsKT-84533 KMP: compileCommonMainKotlinMetadata: “Unresolved reference” for androidx.savedstate from Maven (works with project() dependency)KT-84669 SPM import: If iosApp dir located outside of the project, checkSyntheticImportProjectIsCorrectlyIntegrated will failKT-84085 Remove deprecated gradle property kotlin.kmp.isolated-projects.supportKT-84597 Remove trailing comma for dependencies blocks settings in Package.swiftKT-82895 kotlin-stdlib import is flaky in commonTest in 2.1.21
Tools. Gradle. Native
New Features
KT-83873 Redo how dynamic library linkage and promotion are handled
Fixes
KT-69896 Native: output to stderr ends up in the Gradle logKT-85708 [KGP] dSYM copy task ignores isStatic due to eager read before framework configurationKT-84262 integrateEmbedAndSign produces an incorrect Gradle call for the root projectKT-84730 Add Kdocs to SwiftPM import APIsKT-85502 Swift PM Import: “Library not loaded”: KotlinMultiplatformLinkedPackage.framework is not copied next to the executableKT-85510 Cleanup native tasks APIKT-82824 Make linker hack path relativeKT-85128 Refactor SwiftPM import lock tests and test utilsKT-83874 Linker hack doesn't work when clang uses response filesKT-83681 Parallelize parts of SwiftPM import pipeline that are called during import
Tools. Gradle. Wasm
KT-85046 K/Wasm: Wasm per-module Gradle integration tests on Windows
Tools. Incremental Compile
KT-85387 BTA: switch the default value of MONOTONOUS_INCREMENTAL_COMPILE_SET_EXPANSION to trueKT-85386 BTA JVM IC: ‘moduleName’ is null!KT-84450 Star imports are not reported via FirImportTrackerComponent
Tools. JPS
KT-81579 JPS: -Xwarning-level=DEPRECATION:warning not supported
Tools. Kapt
KT-32743 Kapt, Maven: Do not include compile classpath entries in the annotation processing classpathKT-41217 Running kapt with Maven does not seem to include the compilation classpath
Tools. Maven
KT-84386 Support Maven Toolchains in kotlin-maven-pluginKT-76062 Maven: remove Kotlin script execution supportKT-85317 Auto‑align jvmTarget with the project’s Java levelKT-84101 Maven: compile and test-compile handle sourceDirs inconsistentlyKT-84653 Add integration test for KAPT with smart defaults in mixed Kotlin+Java projectsKT-85121 Maven: enable configuration inputs tracking in BTAKT-84778 Add integration test for auto-bind execution order in mixed Kotlin+Java projectsKT-85146 Maven: Adding stdlib as smart-default may break maven dependency resolution for other pluginsKT-83109 Remove beanshell and groovy verification in kotlin-maven-plugin-test
Tools. REPL
KT-77816 REPL: Support for const propertiesKT-84483 [K2 Repl] NullPointerException in Analysis when using custom classesKT-84803 [REPL] FirReplSnippet: provide the eval function symbol instead of the name (evalFunctionName)
Tools. Scripts
KT-85105 Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous objectKT-85103 Exception while generating code when explain destructuring declsKT-85029 Kotlin Scripting: ScriptDiagnostic reports “at null” instead of error location
Tools. Statistics (FUS)
KT-85628 KGP: composite build FUS metrics fail on access of ‘configurationTimeMetrics’
Tools. Wasm
KT-75086 Wasm: Deprecate and remove D8 in js packages
2.4.0-Beta1
Analysis API
KT-83867 OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ repoKT-83723 [Analysis API] Enable experimental KDoc resolver by defaultKT-83388 Analysis API: properly support KMP in KotlinPackageProvider
Analysis API. Code Compilation
KT-78946 Evaluation of variable with local class in type parameter leads to InventNamesForLocalClasses exception
Analysis API. FIR
KT-84711 K2 IDE sometimes loses FIR plugin-generated declarations after file changesKT-84596 Improve K2 Jooq completion performanceKT-84525 KaValueParameterSymbol#getHasSynthesizedName returns false for FirDeclarationOrigin.SubstitutionOverride.DeclarationSiteKT-68260 K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION with text ::lam1, unexpected element of type: no element found” with illegal callable reference callKT-83546 Kotlin analysis reach ClsCustomNavigationPolicyKT-84259 Move CommonDefaultImportsProvider to the frontend independent moduleKT-82945 Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImplKT-71135 AA: exception from sealed inheritors checker when analyzeCopy
Analysis API. Infrastructure
KT-84776 The test data manager misses the redundancy check in the update modeKT-84962 The test data manager misses -ea flagKT-84388 Preserve the EOF status in the test data manager to avoid extra changesKT-83905 Analysis API: Improve UX with test dataKT-84362 Analysis API tests produce many warnings due to “not yet loaded registry”KT-84279 Test Data Manager fails on a clean buildKT-83913 Exclude compiler-based Analysis API tests from Git trackingKT-80379 Extract per-module test generators for AA testsKT-84120 Move CLI modules out of kotlin-compiler-fe10-for-ideKT-83200 Track external dependencies of the Analysis API modules
Analysis API. Light Classes
KT-82434 Light classes should prefer enum entries to propertiesKT-84200 SLC: return type is not boxed for delegated methods with generic original methodKT-72451 “CCE: class PsiPrimitiveType cannot be cast to class PsiClassType” with same-named enum class and typealias
Analysis API. PSI
Analysis API. Providers and Caches
KT-82731 Analysis API: Limit granular tree change processing to a few filesKT-79234 Analysis API: Usage of asMap() on Caffeine caches bypasses stats countersKT-74090 Analysis API: Support dumb mode (restricted analysis)
Analysis API. Standalone
KT-83801 Nested typealiases are not correctly indexed in standalone mode
Analysis API. Surface
New Features
KT-73534 SAM method APIKT-82993 Support explicit backing fields in the Analysis API
Fixes
KT-84397 KtDefaultAnnotationArgumentReference should return only results with value nameKT-84804 buildSubstitutor does not work correctly with Java type parametersKT-84389 Cover references with ABI and documentation checksKT-57042 K2, Analysis API: KaJavaInteroperabilityComponent#callableSymbol returns null for a Java getter implementing Kotlin propertyKT-80856 Analysis API: analysisContextModule incorrectly determines the module of an original file when used for dangling file context assignmentKT-84363 AA, isUsedAsExpression: Unhandled Non-KtExpression parent of KtExpression: class org.jetbrains.kotlin.psi.KtContractEffectKT-70476 Analysis API: “KtDefaultAnnotationArgumentReference.resolveToSymbols” does not work in FIR implementationKT-68499 Split KtDefaultAnnotationArgumentReference on K1 and K2 implementationKT-70521 Analysis API: Impossible to distinguish between ‘iterator’ operator calls dispatched with imports from objectsKT-77669 Context arguments are missed on implicit invoke callsKT-77670 resolveToCall: extensionReceiver is incorrectly chosed due to a conflict with context parameters for an implicit invoke callKT-68633 K2 AA: IAE “Expected class KaClassSymbol instead of class KaFirEnumEntrySymbol” with enum entry initializerKT-79186 KtCompletionExtensionCandidateChecker does not work for extensions when using callable references of a typeKT-83777 Analysis API: The resolution scope of a context module accepts elements from associated dangling filesKT-82571 No expected type for overridden property without explicit typeKT-83759 Analysis API: Mark platform interface APIs with @KaPlatformInterfaceKT-83223 Support “Explicit context arguments” in the Analysis APIKT-65186 K2: Analysis API: KtExpressionTypeProvider.getExpectedType works incorrectly for the right hand side of assignment expressionsKT-76011 KaFirNamedClassSymbol#companionObject doesn't provide generated objects generated by compiled pluginsKT-73290 Analysis API: Improve the architecture of content scopes and resolution scopes
Backend. Native. Debug
KT-83804 Native: debug information generator converts relative paths to absolute ones
Backend. Wasm
KT-83162 K/Wasm: renaming temporary and synthetic variables in the Chrome debuggerKT-85008 Develop and publish a demo app using an early version of the component model supportKT-65030 K/Wasm: memory allocator for Component Model ABIKT-83607 WasmJS: Production build eliminates ‘else if’ branch when ‘else’ is not wrapped with curly bracesKT-83728 [Wasm] Invalid Ir type while suspend call with blocked if null comprehansionKT-82803 Kotlin/WASM: Failed to compile the doResume function with if inside catch blockKT-83800 [Wasm] Closed world per-module compilation
Compiler
New Features
KT-84319 Add JVM target bytecode version 26KT-83165 Collection literals: treat Deprecated(HIDDEN) operators of reasonablyKT-84487 “-Xcollection-literals” compiler flagKT-84072 Collection literals: treat visibility of of during resolve correctlyKT-80500 Collection literals: Analyze ConeCollectionLiteralAtom in cases their expected type is not fully knownKT-80491 Implement fallback mechanism for collection literalsKT-80490 Implement overload resolution mechanism for collection literalsKT-84484 Companion Extensions Analysis & ResolutionKT-84199 Implement DontMakeExplicitNullableJavaTypeArgumentsFlexible featureKT-83765 Make -Xsuppress-version-warnings have a diagnostic IDKT-84288 Companion Blocks Analysis & ResolutionKT-84287 Build Raw FIR for Companion Blocks & ExtensionsKT-84286 Parse Companion Blocks & ExtensionsKT-66344 K1 & K2: False positive WRONG_NUMBER_OF_TYPE_ARGUMENTS in callable reference to inner class memberKT-76766 Warning is missing for wrong subclass checkingKT-74049 Introduce special override rule to allow overriding T! with T & Any
Performance Improvements
KT-84412 iOS release build time dramatically increases with 2.3.20-Beta2 compared to 2.3.10KT-80367 Reduce memory consumption of DevirtualizationAnalysisKT-82559 linkDebugTest*X64 tasks are slower for Kotlin 2.3 than for 2.2KT-84095 Improve Unit tail-call optimization to support inline generic functions similar to suspendCoroutine
Fixes
KT-84559 @OptIn on collection literal and context-sensitive does not workKT-84675 Collection literals: ‘Not singleClassifierType superType: TypeVariable(S)’ in PCLAKT-84547 Collection literals: “Expected expression ‘FirCollectionLiteralImpl’ to be resolved” in elvis expressionKT-83920 False positive “modifier ‘value’ is not applicable to ‘local variable’” with soft keyword in positional destructuring (square bracket) declarationKT-84190 Implement basic functionality for returnsResultOf contractKT-85058 Remove final field modification in DescriptorRendererOptionsImpl to prevent warnings on JDK 26+KT-72710 Incorrect behaviour of tail call suspend functions optimizationKT-80590 Drop language version 1.9 for JVMKT-83904 [Inliner] Inline function overrides an abstract method with a default value in an inheritance chainKT-77584 Support scripts built from LT in scripting APIKT-84185 Type arguments are wrongly allowed in receivers of static callsKT-83441 False positive: REDUNDANT_CALL_OF_CONVERSION_METHODKT-83587 K2: Missing null-check when using == on Short! and Byte! platform typesKT-84860 False positive UNINITIALIZED_ENUM_COMPANION in enum access with explicit receiver in enum initializer when enum class has a companionKT-84405 ClassCastException with conflicting projection on the LHS of a callable referenceKT-84866 Reserve CoroutineContext as context parameter for future useKT-84717 Provide information for qualified expressions that might be replaced with context-sensitive simple names in IDE modeKT-65239 K2: Render FIR declaration instead of IR-based descriptors in IR signature clash diagnosticsKT-84743 Type parameter declared as ‘in’ can be used in ‘out’ position in DNN & flexible typesKT-84720 “Unused return value” is not reported inside used if/when multi-statement blocksKT-84198 Support multiple embedded .let-like calls with returnsResultOf contractKT-84310 No Warning Emitted For Deprecated Java Enum Value UsageKT-81871 Drop context receiver testsKT-80113 Consider improving diagnostic messages related to ==/===/is/asKT-84714 KJS: Forbid exporting properties with context parametersKT-84380 Type alias to non-generic class can have (arbitrary number of) type arguments in LHS of ::classKT-84366 Invalid name for captured this in bytecodeKT-80701 Native: -Xbinary=cCallMode is not integrated with compiler cachesKT-84000 Native: test pre-codegen inliner on CIKT-57557 Implement getAndSet for AtomicNativePtr via getAndSetField intrinsicKT-84352 createUninitializedInstance generates invalid LLVM for value classesKT-84411 Confusing message for the class reference of the inner class with the type parameterKT-84280 Standalone Unit qualifier allows type arguments: Unit<Any>KT-84281 Standalone typealias-to-object qualifier allows type arguments and has type Unit in this caseKT-84594 EBF is smartcasted in inline function with @PiblishedApiKT-83938 Missing Tail call optimization in reference classes returning UnitKT-83989 Update coroutines-codegen.md after changes of Unit tailcall optimizationKT-83988 Remove extraneous POP+GETSTATIC Unit for calls of Unit-returning suspend functionsKT-80925 Replace “useless” in diagnostic messagesKT-83646 Native: don't use sun.misc.Unsafe in ByteArrayStream when running on JVM 24+KT-82122 Prohibit arbitrary placement of type parameters in callable reference LHSKT-82574 Fixation: consider preferring EQUALS constraints to LOWER onesKT-83564 Consider dropping HAS_PROPER_NON_NOTHING_NON_ILT_LOWER_CONSTRAINTKT-84213 Flaky incremental compilation behaviour with EBFKT-84133 Adopt initInstance to handle value classesKT-24840 Square bracket escaping in KDocKT-82123 KDoc: references that goes after markdown blocks don't have linksKT-84196 Handle multiple entry/exit points for returnsResultOf functionsKT-84195 Handle function references in returnsResultOfKT-84167 Invalid type references with type arguments in package parts compile without diagnosticsKT-37179 false-positive shadowing warning on local and member extension functions in presence of member extension property with invoke operatorKT-84209 False negative ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT on context parameters of function typesKT-83354 Wrong position for lambda context type errorKT-84206 Remove forcesPreReleaseBinaries = true from ExplicitBackingFieldsKT-83524 An anonymous function with named parameters throws FileAnalysisExceptionKT-84155 K2: NO_CONTEXT_ARGUMENT caused by stale value in NewConstraintSystemImpl.hasContradictionInForkPointsCacheKT-83829 False-negative INVALID_DEFAULT_FUNCTIONAL_PARAMETER_FOR_INLINEKT-83842 KIAEWA: Exception in expression checkers for @OptIn(markerClass=[…])KT-84045 Evaluate default arguments of annotation's parameters using FIR evaluatorKT-70562 @SubclassOptInRequired cannot accept multiple experimental markerKT-83987 Refactor/fix CoroutineCodegen.isReadOfInlineLambda()KT-83772 Create a language feature for wrapContinuationForTailCallFunctionsKT-84061 K2: IllegalStateException: FirResolvedNamedReference expected on plusAssign for array element with unresolved initializer inside buildListKT-83985 Drop arrayOf check from EscapeAnalysisChecker after bootstrap updateKT-78885 Current frame disappears from stack trace when debugging inline-heavy suspend codeKT-78727 Split KonanConfig into NativeFrontendConfig and NativeBackendConfigKT-83755 Support rendering of evaluated and original arguments in FirAnnotationRenderer#renderAnnotationKT-17763 Inner class constructor has incorrect generic signature in the bytecodeKT-83625 Initialize annotations on Java record componentsKT-83795 Compiler crash on suspend lambda as default parameter of inline functionKT-72880 Calls with incorrect VarHandle method signatures are generated with -Xjdk-release being usedKT-67809 Native: remove support for non-opaque LLVM pointer typesKT-82148 Suspend function returns the wrong value and not UnitKT-55559 JVM: ClassCastException with Unit returning suspend function and tail-call Non-Unit returning suspend function and callable referenceKT-70995 Kotlin/Native: Treat all @HasFinalizer types as escaping in Escape AnalysisKT-83903 ‘when’ with ‘val’ does not take previous nullability check into accountKT-83952 StackEntries for tail-call suspend functions have internal names for classes instead of FQ namesKT-83377 Investigate usage of declarationSymbols in resolve of local user typeKT-83770 Smartcast doesn't work for an explicit backing field with multiple intersectionsKT-83650 Native: don't use sun.misc.Unsafe in CastsOptimization when running on JVM 24+KT-83754 KotlinIllegalArgumentExceptionWithAttachments for explicit backing field with annotated typeKT-83756 Error while resolving FirNamedFunctionImpl with explicit backing field and implicit typeKT-83563 Consider dropping fixation readiness REIFIEDKT-83713 K2: No error with external primary constructor parameterKT-83104 K2: No error with external enum entryKT-83696 Consider dropping HAS_NO_RELATION_TO_ANY_OUTPUT_TYPE readinessKT-83308 K/N: “IllegalArgumentException: An interface expected but was Any”KT-81590 Switch latest stable version in Kotlin project to 2.4KT-66701 K2: Java interface method override via Kotlin class rejectedKT-56563 Inference within if stops working when changing expected type from Any to a different type
IR. Inlining
KT-84112 Intra-module inliner: No container found for type parameter ‘T’KT-84416 High memory usage for IrFileEntry after enabling inlinerKT-75396 [IR] Pass LoweringContext to inline and serialization checkersKT-73708 Use some marker in KLIBs produced with IR inliner
IR. Interpreter
KT-84561 K2: Convert evaluated constant by default in FIR2IR
IR. Tree
KT-79663 KLIB-based compilers: Promote partial linkage to “always on”KT-76634 PL: Don‘t report warnings in cases that don’t lead to runtime errorsKT-72950 Partial Linkage: Change the semantics of -Xpartial-linkage-loglevelKT-79801 KLIBs: Implement checks for symbols loaded by the compiler on 1st and 2nd phasesKT-72812 IR serializer: Don't serialize any cinterop fake overrides to Klibs
JVM. Reflection
KT-85091 Reflection: “KotlinReflectionInternalError: Unsupported parameter owner: null” on attempt to get annotations of annotation constructor parameterKT-84796 Reflection: mutable flexibility is lost for K1-based types in KClass.allSupertypesKT-84494 Reflection: Java Collections have differences in kotlin supertypes from old K1 reflectionKT-84382 Reflection: raw list in Java type is transformed to List instead of MutableListKT-84492 Reflection: supertypes of raw list in Java type are not rawKT-84076 Reflection: list in Java type is transformed to flexible instead of mutable listKT-14990 ‘callBy’ for inner class constructor fails at run-timeKT-82881 Reflection: update KCallable.callBy kdoc to mention vararg parametersKT-84075 Reflection: wildcard in Java type is transformed to out Any! instead of star projectionKT-82659 Reflection: IAE on a call to a Java inner class constructor
JavaScript
New Features
KT-51292 Proposed behavior of @JsExport on interfaces and classes with companion objectsKT-82128 [K/JS] Allow named companion objects in exported interfacesKT-21626 Support ES2015 syntax in js functionKT-83452 K/JS: Support ES6 array destructuring in js() callsKT-83451 K/JS: Support ES6 object destructuring in js() calls
Performance Improvements
KT-77646 KJS: optimize Byte/Char/Short/Int/Float/DoubleArray.copyOf(newSize)
Fixes
KT-84002 Bump version from 2.3 to 2.4 for JsNoRuntime-related annotationsKT-84090 Save variance in the generated TypeScriptKT-84332 KJS: Reconsider disallowing nested classes in exported interfacesKT-56618 KJS/IR: Support external interfaces from common code (via annotation?)KT-84474 Kotlin/JS: Long::class becomes null when passing the value to a generic function with -Xes-long-as-bigintKT-83701 Escaped identifier with a quote cause an invalid d.ts fileKT-84647 K/JS: Class expressions are not supported in js() callsKT-68281 K/JS: Order of classes in initMetadataForClass are not deterministicKT-84458 KJS: Fully support @JsStatic in Analysis API-based TypeScript ExportKT-84454 KJS: Generate protected overrides for abstract class inheritors in Analysis API-based TypeScript ExportKT-84490 KJS: Fix mutability of exported top-level variables Analysis API-based TS export with ES modulesKT-84459 KJS: Support default exportability in Analysis API-based TypeScript ExportKT-84456 KJS: Support deprecation comments in Analysis API-based TypeScript exportKT-82264 Implement exporting classes in Analysis API-based TypeScript ExportKT-84233 K/JS: exported collection views doesn't provide Iterator methodsKT-82127 Remove generator-based coroutines intrinsics after bootstrapKT-84003 Remove @Suppress from JsReference after bootstrapKT-44753 KJS / IR: @JsExport non-public fun exports nothingKT-83992 Drop K1 JS entry point and IC codeKT-69353 KJS / d.ts: Kotlin does not export base collection classes along with their mutable collection counterparts
Klibs
Performance Improvements
KT-84451 [Klib] Use varint encoding for element sizes in IR tablesKT-80903 [Klib] Optimize size of serialized IR element coordinatesKT-84400 [Klib] Optimize size of serialized IrExpressionKT-79675 K/N: Uncached ZipFIleSystemAccessor
Fixes
KT-82471 [K/N] Klib forward compatibility testing with codegen testsKT-83807 Restore non-nullability of symbols not available in 2.3.0 stdlibKT-83929 Add tests for IR signatures of static properties and functionsKT-83012 Export in previous version (Native): add the checker for incompatible Kotlin stdlib/compiler pairsKT-82469 [K/N] Klib backward compatibility testing with codegen testsKT-84341 Fix detection of box function in forward compatibility testsKT-81411 Merge KonanLibrary to KotlinLibrary to simplify adoption of KlibLoader in the Kotlin/Native compilerKT-83748 Bump versions in JS Klib compatibility testingKT-78188 [JS] Klib backward and forward compatibility testingKT-83724 Fix & unmute stdlib & kotlin-test compatibility testsKT-83151 Restore non-nullability of symbols available since 2.3
Language Design
KT-80852 Version overloading: generate overloads corresponding to different versions of a function whose parameters are annotated with @IntroducedAt()
Libraries
New Features
KT-73111 No UInt.toBigInteger() and ULong.toBigInteger() conversion functionKT-78499 Add isSorted() extension to standard library
Fixes
KT-83956 Clarify joinToString behavior when the receiver is emptyKT-71848 Kotlinx.metadata: Add CompilerPluginData into Km APIKT-61180 kotlin.ArrayIndexOutOfBoundsException on Native with Regex, works on Android/JVM thoughKT-84871 compareValues, nullsFirst, nullsLast return 0 for -0.0 and 0.0 on JSKT-84691 Add samples for toBigInteger extension functionsKT-84372 PathExtensionsTest.copyToRestrictedReadSource fails with JDK22+KT-84369 StringJVMTest.formatter fails with JDK13+KT-84613 String.toDouble() produces incorrect results on Wasm for large exponent valuesKT-76905 Add samples for kotlin.math functionsKT-84355 Reduce the number of iterations for the removeHashAtStressTestKT-83962 List.listIterator(Int) KDoc's exception condition is incorrectKT-83958 Improve enumValueOf documentationKT-83953 Add samples for kotlin.time extension functionsKT-83951 Rewrite stdlib samples to use assertPrints instead of assertEquals
Native
KT-84826 Bump the minimum deployment version of Apple targetsKT-78686 LLVM update Q1 2026KT-82674 Native: dyld[...]: Symbol not found: _mach_vm_reclaim_update_kernel_accounting_trap on macOSKT-81748 Create a phased CLI for Native klib compilationKT-82879 Native: DLLs in the Windows distribution are not reproducibleKT-83283 Test Kotlin/Native performance tests compilation in Gradle 9.0KT-82872 Native: make Kotlin/Native distribution compiler cache reproducible for LinuxKT-82871 Native: cstubs.bc for android_* platform libraries contain absolute paths in string literalsKT-34467 Cinterop: Clang crashes when -fmodule-map-file is specified (SIGSEGV)
Native. Build Infrastructure
KT-80072 Make Kotlin/Native distribution reproducibleKT-81771 konanc failing to load native librariesKT-84503 Duplicate META-INF/serialization.shadow.kotlin_module entry in kotlin-native-compiler-embeddable jar
Native. C and ObjC Import
KT-81433 Generate C-interop KLIBs in previous ABI version in Kotlin 2.4.0KT-82766 K/N: external_source_symbol clang attribute causes cinterops with -fmodules to downgrade to forward declarationKT-82402 Inter-cinterop type reuse with -fmodules uses forward declaration when an actual declaration is availableKT-82377 Fix ObjC forward declaration handling in modular cinteropsKT-81695 Repeated typedefs across multiple clang modules break cinterop with -fmodulesKT-81752 Native: investigate and remove filtering of -fmodule-map-file in cinteropKT-82379 Introduce lenient modular cinterop modeKT-83814 Native: includedHeaders= in platform libs manifests is not reproducible when modules= is used
Native. Runtime. Memory
KT-80770 Kotlin/Native: revise ObjC refcount methods called in runnable stateKT-84640 Native: comment for kotlin.native.runtime.SweepStatistics misses the word “number”
Native. Swift Export
New Features
KT-82598 Swift Export: Custom name translationKT-66821 Swift Export: value classKT-84263 [Swift Export] Context Parameters on Functional TypesKT-69431 Swift export: inline functions
Fixes
KT-81593 Swift Export: suspend function returning Unit leads to incompilable codeKT-84359 [Swift Export] nested functional type with Unit parameterKT-84358 [Swift Export] functional type with Unit parameterKT-84356 [Swift Export] functional type with single Unit parameterKT-83567 Swift Export: “IllegalStateException: Internal compiler error: doesn't correspond to any C type: kotlin.Unit”: invalid closure is generated for suspend function which returns UnitKT-83397 [Swift Export] Functional return type with Unit parameter is emitted as invalid void parameter list (‘void’ must be the first and only parameter)KT-83743 Swift export: type arguments expected for generic typealiasKT-84243 [Swift Export] Returning value of suspending functional type from suspending function yields invalid codeKT-82568 Swift Export: Context ParametersKT-83398 [Swift export] converting non-escaping parameter to generic parameter may allow it to escapeKT-83389 Swift Export: “ClassCastException” caused by suspend fun throwing ErrorKT-83116 Swift export generates bridges incompatible with language version 2.4KT-83749 [Swift Export] varargs and List uses the same mangling on bridgesKT-83712 Swift Export ignores internal setter and generates invalid bridge code
Tools. BCV
KT-78341 Outer scope's visibility is not considered when dumping const vals [ABI Validation JVM]KT-78305 Private constructor is written in ABI dumpKT-82724 BCV incorrectly reports generated @JvmOverloads declarations as publicKT-78367 Internal constructor infiltrated into a dumpKT-78366 Protected method of enum should not be included into a dump
Tools. Build Tools API
New Features
KT-80963 BTA: Add structured information about reported messages to KotlinLoggerKT-84453 SSoT: provide a unified way to convert Enums to Strings
Fixes
KT-82335 Promote the deprecation level for BTA prototype to the ERROR levelKT-84015 Introduce detection of custom script names to new BTA APIKT-83972 BTA: use isolated classloader for loading the BTA implementation in integration testsKT-84906 Make enum-based common arguments type-safeKT-75837 IC: Shrunk classpath snapshot name is hardcodedKT-84867 Make Xphases-to-* arguments type-safeKT-84850 Make kotlin-home type safeKT-84825 Make script-templates type safeKT-84546 Replace raw string path arguments with type-safe PathListTypeKT-84705 Make Xjdk-release to type-safeKT-84181 More verbose warning when CRI is enabled without using BTAKT-84436 Сompiler warnings are missing under Gradle -q option with -WerrorKT-84324 Make X_ADD_MODULES BTA compiler argument type safeKT-84338 Make enum BTA JVM compiler argument type safeKT-84325 Make JVM_DEFAULT BTA compiler argument type safeKT-84449 Platform-Specific File.pathSeparator Hardcoded During SSOT GenerationKT-84523 Add more forward compatibility testsKT-84249 Fix hardcoded path separator in -Xprofile argument to support absolute paths on WindowsKT-84187 [BTA] Add more build operation immutability testsKT-84219 [BTA] Add additional tests on basic metrics collectionKT-83781 Add additional tests for KT-79975 (BTA ability to cancel build operations)
Tools. CLI
KT-84188 Create CLI argument for explicit context parametersKT-84609 Remove Nullability from Array-based CLI Compiler ArgumentsKT-84220 Enable Context Parameters by default in LV 2.4KT-84132 CLI: regression in deduplication of same-value argumentsKT-83261 No error if pass an arbitrary string to a CLI argument that changes language featuresKT-83172 Boolean CLI argument for a language feature with explicit false value is allowed but has no effectKT-83341 Don't use the extension point registration mechanism from Intellij for K2 extensions
Tools. CLI. Native
KT-82482 Compiler plugins are not propagated to frontend environment in ONE_STAGE_MULTI_MODULE Native mode
Tools. Compiler Plugins
KT-66807 PowerAssert: Improve output diagram formattingKT-75266 PowerAssert: arrayOf() isn't displayed on the diagramKT-66808 PowerAssert: Add support for third-party assertion librariesKT-67332 “IndexOutOfBoundsException: Cannot pop operand off an empty stack.” caused by function referenceKT-83931 Power Assert: Compilation fails when using the metro pluginKT-83330 Lombok. An add methods with @Singular annotation in Java record doesn't work from kotlinKT-83204 Lombok. If @Data and @NoArgsConstructor are used together, then the constructor from @Data shouldn't be availableKT-83336 Lombok. IllegalAccessError for constructor if @Value and @Builder are applied and used from another packageKT-83352 Lombok. FileAnalysisException when @SuperBuilder is used with @BuilderKT-83325 Lombok. Constructor with parameters is unavailable for a class with @Builder
Tools. Gradle
Fixes
KT-74451 Deprecate access to Kotlin source sets in Android extensionKT-82847 Raise deprecation to error for LanguageSettings.enableLanguageFeature DSLKT-84053 Deprecate support for Gradle 7.6-8.13 versionsKT-78659 Remove ‘kotlin-android-extensions’ plugin idKT-79924 Make enableKotlinToolingMetadataArtifact deprecatedKT-82933 Add a tab with results in TCKT-83130 [ToolingDiagnostic] incorrect problem ID formatting for acronyms and undefined locations in Gradle8 problems reportsKT-84144 Bump the minimal supported AGP version to 8.5.2KT-84143 Reduce usage of Project in Tooling DiagnosticsKT-83126 Remove out-of-process compilation modeKT-80466 Gradle: remove getPluginArtifactForNative()KT-81834 Compile against AGP 8.13 APIKT-82960 Remove deprecated enableKotlinToolingMetadataArtifact in 2.4.0KT-75004 KGP: improve messaging when multiplatform tasks are disabled on incompatible OSesKT-77498 Test .swiftmodules more accurate in SwiftExportITKT-84377 Broken package-list file on KGP/CMPG documentation pageKT-84141 Add convenient host checkKT-83592 Enable AFU in FusStatisticsIT.testKotlinxPlugins test after next AFU releaseKT-83775 Migrate KGP functionalTest to junit5
Tools. Gradle. BCV
KT-83486 Create tasks only if abiValidation block called explicitly [ABI Validation]KT-84365 Gradle plugin of abi-validation should precisely define output filesKT-80685 Simplify Gradle DSL [ABI Validation]KT-82410 Remove word legacy from DSL [ABI Validation]KT-83898 Classes produced by JvmMultifileClass ignore filters
Tools. Gradle. Dokka
KT-82984 Support AGP9 in Dokka Gradle Plugin
Tools. Gradle. JS
KT-81036 K/JS, Wasm: Remove deprecated ExperimentalDceDslKT-64275 Gradle: remove deprecated symbols related to the legacy JS targetKT-81040 Gradle: Remove deprecated Kotlin/JS tasks constructors
Tools. Gradle. Multiplatform
KT-82265 Remove Android source set layout v1KT-82230 Cleanup ‘org.jetbrains.gradle.apple.applePlugin’ plugin usageKT-81958 Redundant “android target already exists” error when migrating to com.android.kotlin.multiplatform.library with androidTarget {}
Tools. Gradle. Native
KT-84558 Upstream SwiftPM import workKT-84656 Concurrent issue in downloadKotlinNativeDistributionKT-84508 Add a warning on usage macos_x64 as hostKT-84692 Misleading error message for disableNativeCache DSL without required Opt-InKT-83680 Remove trailing commas from the package manifest to be compatible with pre-16.3 Xcode
Tools. Gradle. Wasm
KT-83566 K/Wasm: Support Wasm per module/klib compilation in Gradle pluginKT-84137 K/Wasm: Support binaryen run with multiple filesKT-84230 Wasm: Fix test WasmYarnGradlePluginIT.testWasmUsePredefinedTooling
Tools. Kapt
KT-84094 Kotlin daemon holds file locks for too longKT-80569 K2 KAPT: Class Literals Missing in Explicit Annotation Value ParametersKT-18791 Kapt: Constants from R class should not be inlined
Tools. Maven
KT-84793 Use kotlin bootstrap to build kotlin-maven-pluginKT-83110 Remove dependency to intellij platform from kotlin-maven-plugin-testKT-83113 Configure kotlin.git/.idea to work nicely with maven-kotlin-plugin-test testsKT-83114 Migrate kotlin-maven-plugin-test from maven.invoker to junit6 + maven-verifier
Tools. Performance benchmarks
KT-82928 Support local run for new benchmarks infraKT-84283 Add scenario generator for performance testsKT-83257 Parse gradle profile report
Tools. REPL
KT-84160 [REPL] Resolve eval function during implicit bodyKT-74683 [K2 Repl] Does not support suspend functionsKT-83689 [K2 REPL] Create raw FIR tests for repl snippetsKT-82554 [REPL] Fix unresolved reference when using dataframe compiler-pluginKT-82578 [K2 REPL] Split snippet property declaration and initializationKT-82503 [K2 Repl] Nested class annotations are not available in the next snippet
Tools. Wasm
KT-84396 [Wasm] Support multimodule in incremental compilation