Changelog
Analysis API
KT-83867OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ repoKT-83723[Analysis API] Enable experimental KDoc resolver by defaultKT-83388Analysis API: properly support KMP in KotlinPackageProvider
Analysis API. Code Compilation
KT-78946Evaluation of variable with local class in type parameter leads to InventNamesForLocalClasses exception
Analysis API. FIR
KT-84711K2 IDE sometimes loses FIR plugin-generated declarations after file changesKT-84596Improve K2 Jooq completion performanceKT-84525KaValueParameterSymbol#getHasSynthesizedName returns false for FirDeclarationOrigin.SubstitutionOverride.DeclarationSiteKT-68260K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION with text::lam1, unexpected element of type: no element found” with illegal callable reference callKT-83546Kotlin analysis reach ClsCustomNavigationPolicyKT-84259Move CommonDefaultImportsProvider to the frontend independent moduleKT-82945Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImplKT-71135AA: exception from sealed inheritors checker whenanalyzeCopy
Analysis API. Infrastructure
KT-84776The test data manager misses the redundancy check in the update modeKT-84962The test data manager misses -ea flagKT-84388Preserve the EOF status in the test data manager to avoid extra changesKT-83905Analysis API: Improve UX with test dataKT-84362Analysis API tests produce many warnings due to "not yet loaded registry"KT-84279Test Data Manager fails on a clean buildKT-83913Exclude compiler-based Analysis API tests from Git trackingKT-80379Extract per-module test generators for AA testsKT-84120Move CLI modules out of kotlin-compiler-fe10-for-ideKT-83200Track external dependencies of the Analysis API modules
Analysis API. Light Classes
KT-82434Light classes should prefer enum entries to propertiesKT-84200SLC: 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-82731Analysis API: Limit granular tree change processing to a few filesKT-79234Analysis API: Usage ofasMap()on Caffeine caches bypasses stats countersKT-74090Analysis API: Support dumb mode (restricted analysis)
Analysis API. Standalone
KT-83801Nested typealiases are not correctly indexed in standalone mode
Analysis API. Surface
New Features
Fixes
KT-84397KtDefaultAnnotationArgumentReference should return only results with value nameKT-84804buildSubstitutor does not work correctly with Java type parametersKT-84389Cover references with ABI and documentation checksKT-57042K2, Analysis API: KaJavaInteroperabilityComponent#callableSymbol returns null for a Java getter implementing Kotlin propertyKT-80856Analysis API:analysisContextModuleincorrectly determines the module of an original file when used for dangling file context assignmentKT-84363AA, isUsedAsExpression: Unhandled Non-KtExpression parent of KtExpression: class org.jetbrains.kotlin.psi.KtContractEffectKT-70476Analysis API: "KtDefaultAnnotationArgumentReference.resolveToSymbols" does not work in FIR implementationKT-68499Split KtDefaultAnnotationArgumentReference on K1 and K2 implementationKT-70521Analysis API: Impossible to distinguish between 'iterator' operator calls dispatched with imports from objectsKT-77669Context arguments are missed on implicit invoke callsKT-77670resolveToCall: extensionReceiver is incorrectly chosed due to a conflict with context parameters for an implicitinvokecallKT-68633K2 AA: IAE "Expected class KaClassSymbol instead of class KaFirEnumEntrySymbol" with enum entry initializerKT-79186KtCompletionExtensionCandidateChecker does not work for extensions when using callable references of a typeKT-83777Analysis API: The resolution scope of a context module accepts elements from associated dangling filesKT-82571No expected type for overridden property without explicit typeKT-83759Analysis API: Mark platform interface APIs with@KaPlatformInterfaceKT-83223Support "Explicit context arguments" in the Analysis APIKT-65186K2: Analysis API: KtExpressionTypeProvider.getExpectedType works incorrectly for the right hand side of assignment expressionsKT-76011KaFirNamedClassSymbol#companionObjectdoesn't provide generated objects generated by compiled pluginsKT-73290Analysis API: Improve the architecture of content scopes and resolution scopes
Backend. Native. Debug
KT-83804Native: debug information generator converts relative paths to absolute ones
Backend. Wasm
KT-83162K/Wasm: renaming temporary and synthetic variables in the Chrome debuggerKT-85008Develop and publish a demo app using an early version of the component model supportKT-65030K/Wasm: memory allocator for Component Model ABIKT-83607WasmJS: 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-82803Kotlin/WASM: Failed to compile the doResume function with if inside catch blockKT-83800[Wasm] Closed world per-module compilation
Compiler
New Features
KT-84319Add JVM target bytecode version 26KT-83165Collection literals: treat Deprecated(HIDDEN) operatorsofreasonablyKT-84487"-Xcollection-literals" compiler flagKT-84072Collection literals: treat visibility ofofduring resolve correctlyKT-80500Collection literals: AnalyzeConeCollectionLiteralAtomin cases their expected type is not fully knownKT-80491Implement fallback mechanism for collection literalsKT-80490Implement overload resolution mechanism for collection literalsKT-84484Companion Extensions Analysis & ResolutionKT-84199Implement DontMakeExplicitNullableJavaTypeArgumentsFlexible featureKT-83765Make -Xsuppress-version-warnings have a diagnostic IDKT-84288Companion Blocks Analysis & ResolutionKT-84287Build Raw FIR for Companion Blocks & ExtensionsKT-84286Parse Companion Blocks & ExtensionsKT-66344K1 & K2: False positive WRONG_NUMBER_OF_TYPE_ARGUMENTS in callable reference to inner class memberKT-76766Warning is missing for wrong subclass checkingKT-74049Introduce special override rule to allow overriding T! with T & Any
Performance Improvements
KT-84412iOS release build time dramatically increases with 2.3.20-Beta2 compared to 2.3.10KT-80367Reduce memory consumption of DevirtualizationAnalysisKT-82559linkDebugTest*X64 tasks are slower for Kotlin 2.3 than for 2.2KT-84095Improve Unit tail-call optimization to support inline generic functions similar tosuspendCoroutine
Fixes
KT-84559@OptInon collection literal and context-sensitive does not workKT-84675Collection literals: 'Not singleClassifierType superType: TypeVariable(S)' in PCLAKT-84547Collection literals: "Expected expression 'FirCollectionLiteralImpl' to be resolved" in elvis expressionKT-83920False positive "modifier 'value' is not applicable to 'local variable'" with soft keyword in positional destructuring (square bracket) declarationKT-84190Implement basic functionality for returnsResultOf contractKT-85058Remove final field modification in DescriptorRendererOptionsImpl to prevent warnings on JDK 26+KT-72710Incorrect behaviour of tail call suspend functions optimizationKT-80590Drop language version 1.9 for JVMKT-83904[Inliner] Inline function overrides an abstract method with a default value in an inheritance chainKT-77584Support scripts built from LT in scripting APIKT-84185Type arguments are wrongly allowed in receivers of static callsKT-83441False positive: REDUNDANT_CALL_OF_CONVERSION_METHODKT-83587K2: Missing null-check when using == on Short! and Byte! platform typesKT-84860False positive UNINITIALIZED_ENUM_COMPANION in enum access with explicit receiver in enum initializer when enum class has a companionKT-84405ClassCastException with conflicting projection on the LHS of a callable referenceKT-84866Reserve CoroutineContext as context parameter for future useKT-84717Provide information for qualified expressions that might be replaced with context-sensitive simple names in IDE modeKT-65239K2: Render FIR declaration instead of IR-based descriptors in IR signature clash diagnosticsKT-84743Type 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-84198Support multiple embedded .let-like calls with returnsResultOf contractKT-84310No Warning Emitted For Deprecated Java Enum Value UsageKT-81871Drop context receiver testsKT-80113Consider improving diagnostic messages related to==/===/is/asKT-84714KJS: Forbid exporting properties with context parametersKT-84380Type alias to non-generic class can have (arbitrary number of) type arguments in LHS of::classKT-84366Invalid name for capturedthisin bytecodeKT-80701Native:-Xbinary=cCallModeis not integrated with compiler cachesKT-84000Native: test pre-codegen inliner on CIKT-57557Implement getAndSet for AtomicNativePtr via getAndSetField intrinsicKT-84352createUninitializedInstancegenerates invalid LLVM for value classesKT-84411Confusing message for the class reference of the inner class with the type parameterKT-84280StandaloneUnitqualifier allows type arguments:Unit<Any>KT-84281Standalone typealias-to-object qualifier allows type arguments and has typeUnitin this caseKT-84594EBF is smartcasted in inline function with@PiblishedApiKT-83938Missing Tail call optimization in reference classes returning UnitKT-83989Update coroutines-codegen.md after changes of Unit tailcall optimizationKT-83988Remove extraneous POP+GETSTATIC Unit for calls of Unit-returning suspend functionsKT-80925Replace "useless" in diagnostic messagesKT-83646Native: don't usesun.misc.UnsafeinByteArrayStreamwhen running on JVM 24+KT-82122Prohibit arbitrary placement of type parameters in callable reference LHSKT-82574Fixation: consider preferring EQUALS constraints to LOWER onesKT-83564Consider droppingHAS_PROPER_NON_NOTHING_NON_ILT_LOWER_CONSTRAINTKT-84213Flaky incremental compilation behaviour with EBFKT-84133AdoptinitInstanceto handle value classesKT-24840Square bracket escaping in KDocKT-82123KDoc: references that goes after markdown blocks don't have linksKT-84196Handle multiple entry/exit points for returnsResultOf functionsKT-84195Handle function references in returnsResultOfKT-84167Invalid type references with type arguments in package parts compile without diagnosticsKT-37179false-positive shadowing warning on local and member extension functions in presence of member extension property with invoke operatorKT-84209False negative ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT on context parameters of function typesKT-83354Wrong position for lambda context type errorKT-84206Remove forcesPreReleaseBinaries = true from ExplicitBackingFieldsKT-83524An anonymous function with named parameters throws FileAnalysisExceptionKT-84155K2: NO_CONTEXT_ARGUMENT caused by stale value inNewConstraintSystemImpl.hasContradictionInForkPointsCacheKT-83829False-negative INVALID_DEFAULT_FUNCTIONAL_PARAMETER_FOR_INLINEKT-83842KIAEWA: Exception in expression checkers for@OptIn(markerClass=[…])KT-84045Evaluate default arguments of annotation's parameters using FIR evaluatorKT-70562@SubclassOptInRequiredcannot accept multiple experimental markerKT-83987Refactor/fix CoroutineCodegen.isReadOfInlineLambda()KT-83772Create a language feature for wrapContinuationForTailCallFunctionsKT-84061K2:IllegalStateException: FirResolvedNamedReference expectedon plusAssign for array element with unresolved initializer inside buildListKT-83985DroparrayOfcheck fromEscapeAnalysisCheckerafter bootstrap updateKT-78885Current frame disappears from stack trace when debugging inline-heavy suspend codeKT-78727Split KonanConfig into NativeFrontendConfig and NativeBackendConfigKT-83755Support rendering of evaluated and original arguments inFirAnnotationRenderer#renderAnnotationKT-17763Inner class constructor has incorrect generic signature in the bytecodeKT-83625Initialize annotations on Java record componentsKT-83795Compiler crash on suspend lambda as default parameter of inline functionKT-72880Calls with incorrect VarHandle method signatures are generated with -Xjdk-release being usedKT-67809Native: remove support for non-opaque LLVM pointer typesKT-82148Suspend function returns the wrong value and not UnitKT-55559JVM: ClassCastException with Unit returning suspend function and tail-call Non-Unit returning suspend function and callable referenceKT-70995Kotlin/Native: Treat all@HasFinalizertypes as escaping in Escape AnalysisKT-83903'when' with 'val' does not take previous nullability check into accountKT-83952StackEntries for tail-call suspend functions have internal names for classes instead of FQ namesKT-83377Investigate usage ofdeclarationSymbolsin resolve of local user typeKT-83770Smartcast doesn't work for an explicit backing field with multiple intersectionsKT-83650Native: don't usesun.misc.UnsafeinCastsOptimizationwhen running on JVM 24+KT-83754KotlinIllegalArgumentExceptionWithAttachments for explicit backing field with annotated typeKT-83756Error while resolving FirNamedFunctionImpl with explicit backing field and implicit typeKT-83563Consider dropping fixation readinessREIFIEDKT-83713K2: No error withexternalprimary constructor parameterKT-83104K2: No error with external enum entryKT-83696Consider dropping HAS_NO_RELATION_TO_ANY_OUTPUT_TYPE readinessKT-83308K/N: "IllegalArgumentException: An interface expected but was Any"KT-81590Switch latest stable version in Kotlin project to 2.4KT-66701K2: Java interface method override via Kotlin class rejectedKT-56563Inference within if stops working when changing expected type from Any to a different type
IR. Inlining
KT-84112Intra-module inliner: No container found for type parameter 'T'KT-84416High memory usage for IrFileEntry after enabling inlinerKT-75396[IR] Pass LoweringContext to inline and serialization checkersKT-73708Use some marker in KLIBs produced with IR inliner
IR. Interpreter
KT-84561K2: Convert evaluated constant by default in FIR2IR
IR. Tree
KT-79663KLIB-based compilers: Promote partial linkage to "always on"KT-76634PL: Don't report warnings in cases that don't lead to runtime errorsKT-72950Partial Linkage: Change the semantics of-Xpartial-linkage-loglevelKT-79801KLIBs: Implement checks for symbols loaded by the compiler on 1st and 2nd phasesKT-72812IR serializer: Don't serialize any cinterop fake overrides to Klibs
JVM. Reflection
KT-85091Reflection: "KotlinReflectionInternalError: Unsupported parameter owner: null" on attempt to get annotations of annotation constructor parameterKT-84796Reflection: mutable flexibility is lost for K1-based types in KClass.allSupertypesKT-84494Reflection: Java Collections have differences in kotlin supertypes from old K1 reflectionKT-84382Reflection: raw list in Java type is transformed to List instead of MutableListKT-84492Reflection: supertypes of raw list in Java type are not rawKT-84076Reflection: list in Java type is transformed to flexible instead of mutable listKT-14990'callBy' for inner class constructor fails at run-timeKT-82881Reflection: update KCallable.callBy kdoc to mention vararg parametersKT-84075Reflection: wildcard in Java type is transformed toout Any!instead of star projectionKT-82659Reflection: IAE on a call to a Java inner class constructor
JavaScript
New Features
KT-51292Proposed behavior of@JsExporton interfaces and classes with companion objectsKT-82128[K/JS] Allow named companion objects in exported interfacesKT-21626Support ES2015 syntax injsfunctionKT-83452K/JS: Support ES6 array destructuring in js() callsKT-83451K/JS: Support ES6 object destructuring in js() calls
Performance Improvements
KT-77646KJS: optimize Byte/Char/Short/Int/Float/DoubleArray.copyOf(newSize)
Fixes
KT-84002Bump version from 2.3 to 2.4 for JsNoRuntime-related annotationsKT-84090Save variance in the generated TypeScriptKT-84332KJS: Reconsider disallowing nested classes in exported interfacesKT-56618KJS/IR: Support external interfaces from common code (via annotation?)KT-84474Kotlin/JS: Long::class becomes null when passing the value to a generic function with -Xes-long-as-bigintKT-83701Escaped identifier with a quote cause an invalid d.ts fileKT-84647K/JS: Class expressions are not supported in js() callsKT-68281K/JS: Order of classes in initMetadataForClass are not deterministicKT-84458KJS: Fully support@JsStaticin Analysis API-based TypeScript ExportKT-84454KJS: Generate protected overrides for abstract class inheritors in Analysis API-based TypeScript ExportKT-84490KJS: Fix mutability of exported top-level variables Analysis API-based TS export with ES modulesKT-84459KJS: Support default exportability in Analysis API-based TypeScript ExportKT-84456KJS: Support deprecation comments in Analysis API-based TypeScript exportKT-82264Implement exporting classes in Analysis API-based TypeScript ExportKT-84233K/JS: exported collection views doesn't provide Iterator methodsKT-82127Remove generator-based coroutines intrinsics after bootstrapKT-84003Remove@Suppressfrom JsReference after bootstrapKT-44753KJS / IR:@JsExportnon-public fun exports nothingKT-83992Drop K1 JS entry point and IC codeKT-69353KJS / 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-79675K/N: Uncached ZipFIleSystemAccessor
Fixes
KT-82471[K/N] Klib forward compatibility testing with codegen testsKT-83807Restore non-nullability of symbols not available in 2.3.0 stdlibKT-83929Add tests for IR signatures of static properties and functionsKT-83012Export in previous version (Native): add the checker for incompatible Kotlin stdlib/compiler pairsKT-82469[K/N] Klib backward compatibility testing with codegen testsKT-84341Fix detection of box function in forward compatibility testsKT-81411MergeKonanLibrarytoKotlinLibraryto simplify adoption ofKlibLoaderin the Kotlin/Native compilerKT-83748Bump versions in JS Klib compatibility testingKT-78188[JS] Klib backward and forward compatibility testingKT-83724Fix & unmute stdlib & kotlin-test compatibility testsKT-83151Restore non-nullability of symbols available since 2.3
Language Design
KT-80852Version overloading: generate overloads corresponding to different versions of a function whose parameters are annotated with@IntroducedAt()
Libraries
New Features
KT-73111No UInt.toBigInteger() and ULong.toBigInteger() conversion functionKT-78499Add isSorted() extension to standard library
Fixes
KT-83956Clarify joinToString behavior when the receiver is emptyKT-71848Kotlinx.metadata: AddCompilerPluginDatainto Km APIKT-61180kotlin.ArrayIndexOutOfBoundsException on Native with Regex, works on Android/JVM thoughKT-84871compareValues, nullsFirst, nullsLast return 0 for -0.0 and 0.0 on JSKT-84691Add samples for toBigInteger extension functionsKT-84372PathExtensionsTest.copyToRestrictedReadSource fails with JDK22+KT-84369StringJVMTest.formatter fails with JDK13+KT-84613String.toDouble() produces incorrect results on Wasm for large exponent valuesKT-76905Add samples for kotlin.math functionsKT-84355Reduce the number of iterations for the removeHashAtStressTestKT-83962List.listIterator(Int) KDoc's exception condition is incorrectKT-83958Improve enumValueOf documentationKT-83953Add samples for kotlin.time extension functionsKT-83951Rewrite stdlib samples to use assertPrints instead of assertEquals
Native
KT-84826Bump the minimum deployment version of Apple targetsKT-78686LLVM update Q1 2026KT-82674Native: dyld[...]: Symbol not found: _mach_vm_reclaim_update_kernel_accounting_trap on macOSKT-81748Create a phased CLI for Native klib compilationKT-82879Native: DLLs in the Windows distribution are not reproducibleKT-83283Test Kotlin/Native performance tests compilation in Gradle 9.0KT-82872Native: make Kotlin/Native distribution compiler cache reproducible for LinuxKT-82871Native: cstubs.bc for android_* platform libraries contain absolute paths in string literalsKT-34467Cinterop: Clang crashes when -fmodule-map-file is specified (SIGSEGV)
Native. Build Infrastructure
KT-80072Make Kotlin/Native distribution reproducibleKT-81771konanc failing to load native librariesKT-84503Duplicate META-INF/serialization.shadow.kotlin_module entry in kotlin-native-compiler-embeddable jar
Native. C and ObjC Import
KT-81433Generate C-interop KLIBs in previous ABI version in Kotlin 2.4.0KT-82766K/N: external_source_symbol clang attribute causes cinterops with -fmodules to downgrade to forward declarationKT-82402Inter-cinterop type reuse with -fmodules uses forward declaration when an actual declaration is availableKT-82377Fix ObjC forward declaration handling in modular cinteropsKT-81695Repeated typedefs across multiple clang modules break cinterop with -fmodulesKT-81752Native: investigate and remove filtering of-fmodule-map-filein cinteropKT-82379Introduce lenient modular cinterop modeKT-83814Native: includedHeaders= in platform libs manifests is not reproducible when modules= is used
Native. Runtime. Memory
KT-80770Kotlin/Native: revise ObjC refcount methods called in runnable stateKT-84640Native: comment forkotlin.native.runtime.SweepStatisticsmisses the word "number"
Native. Swift Export
New Features
KT-82598Swift Export: Custom name translationKT-66821Swift Export: value classKT-84263[Swift Export] Context Parameters on Functional TypesKT-69431Swift export: inline functions
Fixes
KT-81593Swift 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-83567Swift 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-83743Swift export: type arguments expected for generic typealiasKT-84243[Swift Export] Returning value of suspending functional type from suspending function yields invalid codeKT-82568Swift Export: Context ParametersKT-83398[Swift export] converting non-escaping parameter to generic parameter may allow it to escapeKT-83389Swift Export: "ClassCastException" caused by suspend fun throwing ErrorKT-83116Swift export generates bridges incompatible with language version 2.4KT-83749[Swift Export] varargs and List uses the same mangling on bridgesKT-83712Swift Export ignores internal setter and generates invalid bridge code
Tools. BCV
KT-78341Outer scope's visibility is not considered when dumping const vals [ABI Validation JVM]KT-78305Private constructor is written in ABI dumpKT-82724BCV incorrectly reports generated@JvmOverloadsdeclarations as publicKT-78367Internal constructor infiltrated into a dumpKT-78366Protected method of enum should not be included into a dump
Tools. Build Tools API
New Features
KT-80963BTA: Add structured information about reported messages to KotlinLoggerKT-84453SSoT: provide a unified way to convert Enums to Strings
Fixes
KT-82335Promote the deprecation level for BTA prototype to the ERROR levelKT-84015Introduce detection of custom script names to new BTA APIKT-83972BTA: use isolated classloader for loading the BTA implementation in integration testsKT-84906Make enum-based common arguments type-safeKT-75837IC: Shrunk classpath snapshot name is hardcodedKT-84867Make Xphases-to-* arguments type-safeKT-84850Make kotlin-home type safeKT-84825Make script-templates type safeKT-84546Replace raw string path arguments with type-safe PathListTypeKT-84705Make Xjdk-release to type-safeKT-84181More verbose warning when CRI is enabled without using BTAKT-84436Сompiler warnings are missing under Gradle -q option with -WerrorKT-84324Make X_ADD_MODULES BTA compiler argument type safeKT-84338Make enum BTA JVM compiler argument type safeKT-84325Make JVM_DEFAULT BTA compiler argument type safeKT-84449Platform-Specific File.pathSeparator Hardcoded During SSOT GenerationKT-84523Add more forward compatibility testsKT-84249Fix 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-83781Add additional tests for KT-79975 (BTA ability to cancel build operations)
Tools. CLI
KT-84188Create CLI argument for explicit context parametersKT-84609Remove Nullability from Array-based CLI Compiler ArgumentsKT-84220Enable Context Parameters by default in LV 2.4KT-84132CLI: regression in deduplication of same-value argumentsKT-83261No error if pass an arbitrary string to a CLI argument that changes language featuresKT-83172Boolean CLI argument for a language feature with explicit false value is allowed but has no effectKT-83341Don't use the extension point registration mechanism from Intellij for K2 extensions
Tools. CLI. Native
KT-82482Compiler plugins are not propagated to frontend environment in ONE_STAGE_MULTI_MODULE Native mode
Tools. Compiler Plugins
KT-66807PowerAssert: Improve output diagram formattingKT-75266PowerAssert: arrayOf() isn't displayed on the diagramKT-66808PowerAssert: Add support for third-party assertion librariesKT-67332"IndexOutOfBoundsException: Cannot pop operand off an empty stack." caused by function referenceKT-83931Power Assert: Compilation fails when using the metro pluginKT-83330Lombok. An add methods with@Singularannotation in Java record doesn't work from kotlinKT-83204Lombok. If@Dataand@NoArgsConstructorare used together, then the constructor from@Datashouldn't be availableKT-83336Lombok. IllegalAccessError for constructor if@Valueand@Builderare applied and used from another packageKT-83352Lombok. FileAnalysisException when@SuperBuilderis used with@BuilderKT-83325Lombok. Constructor with parameters is unavailable for a class with@Builder
Tools. Gradle
Fixes
KT-74451Deprecate access to Kotlin source sets in Android extensionKT-82847Raise deprecation to error for LanguageSettings.enableLanguageFeature DSLKT-84053Deprecate support for Gradle 7.6-8.13 versionsKT-78659Remove 'kotlin-android-extensions' plugin idKT-79924Make enableKotlinToolingMetadataArtifact deprecatedKT-82933Add a tab with results in TCKT-83130[ToolingDiagnostic] incorrect problem ID formatting for acronyms and undefined locations in Gradle8 problems reportsKT-84144Bump the minimal supported AGP version to 8.5.2KT-84143Reduce usage of Project in Tooling DiagnosticsKT-83126Remove out-of-process compilation modeKT-80466Gradle: remove getPluginArtifactForNative()KT-81834Compile against AGP 8.13 APIKT-82960Remove deprecated enableKotlinToolingMetadataArtifact in 2.4.0KT-75004KGP: improve messaging when multiplatform tasks are disabled on incompatible OSesKT-77498Test .swiftmodules more accurate in SwiftExportITKT-84377Broken package-list file on KGP/CMPG documentation pageKT-84141Add convenient host checkKT-83592Enable AFU in FusStatisticsIT.testKotlinxPlugins test after next AFU releaseKT-83775Migrate KGP functionalTest to junit5
Tools. Gradle. BCV
KT-83486Create tasks only if abiValidation block called explicitly [ABI Validation]KT-84365Gradle plugin of abi-validation should precisely define output filesKT-80685Simplify Gradle DSL [ABI Validation]KT-82410Remove wordlegacyfrom DSL [ABI Validation]KT-83898Classes produced by JvmMultifileClass ignore filters
Tools. Gradle. Dokka
KT-82984Support AGP9 in Dokka Gradle Plugin
Tools. Gradle. JS
KT-81036K/JS, Wasm: Remove deprecated ExperimentalDceDslKT-64275Gradle: remove deprecated symbols related to the legacy JS targetKT-81040Gradle: Remove deprecated Kotlin/JS tasks constructors
Tools. Gradle. Multiplatform
KT-82265Remove Android source set layout v1KT-82230Cleanup 'org.jetbrains.gradle.apple.applePlugin' plugin usageKT-81958Redundant “android target already exists” error when migrating to com.android.kotlin.multiplatform.library with androidTarget {}
Tools. Gradle. Native
KT-84558Upstream SwiftPM import workKT-84656Concurrent issue in downloadKotlinNativeDistributionKT-84508Add a warning on usage macos_x64 as hostKT-84692Misleading error message for disableNativeCache DSL without required Opt-InKT-83680Remove trailing commas from the package manifest to be compatible with pre-16.3 Xcode
Tools. Gradle. Wasm
KT-83566K/Wasm: Support Wasm per module/klib compilation in Gradle pluginKT-84137K/Wasm: Support binaryen run with multiple filesKT-84230Wasm: Fix test WasmYarnGradlePluginIT.testWasmUsePredefinedTooling
Tools. Kapt
KT-84094Kotlin daemon holds file locks for too longKT-80569K2 KAPT: Class Literals Missing in Explicit Annotation Value ParametersKT-18791Kapt: Constants from R class should not be inlined
Tools. Maven
KT-84793Use kotlin bootstrap to build kotlin-maven-pluginKT-83110Remove dependency to intellij platform from kotlin-maven-plugin-testKT-83113Configure kotlin.git/.idea to work nicely with maven-kotlin-plugin-test testsKT-83114Migrate kotlin-maven-plugin-test from maven.invoker to junit6 + maven-verifier
Tools. Performance benchmarks
KT-82928Support local run for new benchmarks infraKT-84283Add scenario generator for performance testsKT-83257Parse 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