2.4.02026-06-03T09:31:47Z
Release notesAnalysis 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 KotlinPackageProviderKT-65683Analysis API: Dangling file session creation causes acomputeIfAbsentcontract violation
Analysis API. Code Compilation
KT-78946Evaluation of variable with local class in type parameter leads to InventNamesForLocalClasses exception
Analysis API. FIR
KT-68260K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION with text::lam1, unexpected element of type: no element found” with illegal callable reference callKT-70896AA: False positive deprecation warning with override of built-in method in JDK mapped classKT-84711K2 IDE sometimes loses FIR plugin-generated declarations after file changesKT-84625Analysis API: collectDesignationPath fails for nested classes inside plugin-generated top-level classesKT-84596Improve K2 Jooq completion performanceKT-84525KaValueParameterSymbol#getHasSynthesizedName returns false for FirDeclarationOrigin.SubstitutionOverride.DeclarationSiteKT-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
Fixes
KT-83905Analysis API: Improve UX with test dataKT-84913Extract compiler classes used by the PSI & Analysis API to a separate moduleKT-64986Analysis API: Implement Analysis API tests for different KMP PlatformsKT-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-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
Analysis API. PSI
Analysis API. Providers and Caches
Analysis API. Standalone
KT-83801Nested typealiases are not correctly indexed in standalone mode
Analysis API. Stubs and Decompilation
New Features
Fixes
KT-79186KtCompletionExtensionCandidateChecker does not work for extensions when using callable references of a typeKT-83759Analysis API: Mark platform interface APIs with@KaPlatformInterfaceKT-83921Extend KaKDocProvider to read Kdoc from KLIB metadataKT-77426KaFirCompilerFacility uses an arbitrary JVM counterpart for common sourcesKT-84737KaCallableSymbol#directlyOverriddenSymbols doesn't work for java overrides of kotlin propertiesKT-84621Migrate symbol tests to ManagedTest properlyKT-80575KaFirJavaInteroperabilityComponent#getJavaGetterName should not throw exception on incomplete codeKT-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-83777Analysis API: The resolution scope of a context module accepts elements from associated dangling filesKT-82571No expected type for overridden property without explicit typeKT-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. J2KLIB
KT-86368[JKLIB] MetadataJVMModuleDeserializer tries to deserialize all symbolsKT-86367[JKLIB] kotlin.Cloneable built-in class not foundKT-84877[J2KLIB] Remove withKotlinBuiltinsHack present in JKlibIrLinker.ktKT-85846Tests failing with fake override property missing accessors or backing fieldKT-85717IllegalStateException due to already bound symbolKT-86204[JKlib] Propagate private members from dependecies in the IR tree
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-76205K/Wasm: stabilize and turn on incremental compilation by defaultKT-83728[Wasm] Invalid Ir type while suspend call with blocked if null comprehansionKT-81637K/JS/Wasm interop: Inconsistent behavior ofis/asoperations forJsReference<C>andCKT-65030K/Wasm: memory allocator for Component Model ABIKT-83607WasmJS: Production build eliminates 'else if' branch when 'else' is not wrapped with curly bracesKT-82803Kotlin/WASM: Failed to compile the doResume function with if inside catch blockKT-83800[Wasm] Closed world per-module compilation
New Features
KT-84487"-Xcollection-literals" compiler flagKT-84072Collection literals: treat visibility ofofduring resolve correctlyKT-83165Collection literals: treat Deprecated(HIDDEN) operatorsofreasonablyKT-80500Collection literals: AnalyzeConeCollectionLiteralAtomin cases their expected type is not fully knownKT-80491Implement fallback mechanism for collection literalsKT-80490Implement overload resolution mechanism for collection literalsKT-84298K2: Generate IR for Companion Blocks & ExtensionsKT-83765Make -Xsuppress-version-warnings have a diagnostic IDKT-84484Companion Extensions Analysis & ResolutionKT-84199Implement DontMakeExplicitNullableJavaTypeArgumentsFlexible featureKT-84319Add JVM target bytecode version 26KT-84297Serialize & Deserialize Companion Block Declarations & Extensions to/from MetadataKT-84288Companion Blocks Analysis & ResolutionKT-84286Parse Companion Blocks & ExtensionsKT-84292Enforce Companion Blocks & Extensions Language Feature during ResolutionKT-84291Companion Blocks & Extensions CheckersKT-84290Callable References to Companion Block Declarations & ExtensionsKT-84287Build Raw FIR for Companion Blocks & ExtensionsKT-73256Implementallmeta-target for annotationsKT-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-84941Skip linking klibs for generating ObjC headersKT-80367Reduce memory consumption of DevirtualizationAnalysisKT-84412iOS release build time dramatically increases with 2.3.20-Beta2 compared to 2.3.10KT-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-77726Move FirUnusedExpressionChecker to the default checkers listKT-84841Collection literals: Drop special treatment ofwhenwith expected typeKT-84732Collection literals: "ExpectedFirCollectionLiteralImplto be resolved" in RHS of equality operatorKT-84675Collection literals: 'Not singleClassifierType superType: TypeVariable(S)' in PCLAKT-84559@OptInon collection literal and context-sensitive does not workKT-84547Collection literals: "Expected expression 'FirCollectionLiteralImpl' to be resolved" in elvis expressionKT-80489Collection literals: experimental version (Frontend)KT-84768[K/N] switch thread state inorg_jetbrains_skia_Canvas__1nDrawPictureto workaround the deadlockKT-52673Don't report deprecation warning/error on last segments of importsKT-83988Remove extraneous POP+GETSTATIC Unit for calls of Unit-returning suspend functionsKT-77584Support scripts built from LT in scripting APIKT-80113Consider improving diagnostic messages related to==/===/is/asKT-85392Native: concurrency issues in per-file cachesKT-83938Missing Tail call optimization in reference classes returning UnitKT-78432No-arg constructor should be generated for regular classes with a value class parameter in case of JvmExposeBoxedKT-86130False positive UNINITIALIZED_ENUM_COMPANION on LV 2.3 and lowerKT-84860False positive UNINITIALIZED_ENUM_COMPANION in enum access with explicit receiver in enum initializer when enum class has a companionKT-86210Update -Xannotation-default-target CLI parameter docKT-80590Drop language version 1.9 for JVMKT-85948Contracts in 2.4 stdlib is not compatible with 2.3 compilerKT-82123KDoc: references that goes after markdown blocks don't have linksKT-85957Contract on function is getting discarded if any of effect declarations is unknownKT-84931Incorrect type nullability in SAM super type in anonymous class-based SAM conversionKT-83766K2: Wrong sourcePsi is set forSymbolPsiLiteralin SLC for annotation arguments referencing a const valKT-85062Deprecate language version 2.1KT-79729Kotlin should warn about orphaned block expressions, e.g. // if () \n { .... }KT-83884The unused return value checker doesn't report a coercion from reference to UnitKT-85825Context parameter lambda loses context type when wrapped in nestedrunblocksKT-37179false-positive shadowing warning on local and member extension functions in presence of member extension property with invoke operatorKT-84366Invalid name for capturedthisin bytecodeKT-84960Property contract leaks unsubstituted type parameter in smart castKT-84281Standalone typealias-to-object qualifier allows type arguments and has typeUnitin this caseKT-84280StandaloneUnitqualifier allows type arguments:Unit<Any>KT-84380Type alias to non-generic class can have (arbitrary number of) type arguments in LHS of::classKT-84190Implement basic functionality for returnsResultOf contractKT-83920False positive "modifier 'value' is not applicable to 'local variable'" with soft keyword in positional destructuring (square bracket) declarationKT-84991ImproveArgument type mismatchdiagnosticsKT-82216Sanitize '.kotlin_module' filenameKT-85354checkPsiTypeConsistency: add psi text attachmentsKT-85479Improve diagnostic messages for upper bound violationsKT-84585Upper bound violated warning for expansion of type alias in LHSKT-84924Native: stdlib-cache.lock used by mulitple processesKT-85244False positive DUPLICATE_BRANCH_CONDITION_IN_WHEN with guard conditionKT-85487Investigate why WrapContinuationForTailCallFunctions does not work in Android TestKT-59633K2: Implement running AndroidRunner tests with FIRKT-76237Store File-level annotations in KLIB metadata separatelyKT-84198Support multiple embedded .let-like calls with returnsResultOf contractKT-84196Handle multiple entry/exit points for returnsResultOf functionsKT-84195Handle function references in returnsResultOfKT-85162Introduce diagnostics to refine numeric types castingKT-80060False positive REDUNDANT_CALL_OF_CONVERSION_METHOD in case of overloadsKT-85289False-positive smartcast from == with type parameter based variableKT-83890return-value-checker: false positive "Unused return value of 'context'" on kotlin.context() functionsKT-84106False negative "NON_EXHAUSTIVE_WHEN": "NoWhenBranchMatchedException" at runtime with sealed and platform typeKT-84717Provide information for qualified expressions that might be replaced with context-sensitive simple names in IDE modeKT-38983Bridges are not generated in interfaces, which leads to counterintuitive behavior of java.lang.reflect.ProxyKT-85005Considerall:target in the checker of repeatable annotationsKT-85210Enabling -XXLanguage:+IntrinsicConstEvaluation breaks highlighting on some broken codeKT-85217Rework implementation supporting simple-to-suspend function conversionKT-85036Introduce a proper handling of optional expectation annotations in platform checkers during metadata compilationKT-85086False-negative JVM_EXPOSE_BOXED_CANNOT_BE_THE_SAMEKT-84082[OPT_IN_USAGE_ERROR] duplicates for destructuring declarationKT-85007Properly implement special rules forkotlin.Resultin@JvmExposeBoxedsupportKT-74383Support new callable reference nodes in JVM backendKT-84828Cleanup JVM backend from the old callable references-related codeKT-85006Refine error messages forINAPPLICABLE_ALL_TARGETdiagnosticKT-84296Support Companion Blocks in CFGKT-85058Remove final field modification in DescriptorRendererOptionsImpl to prevent warnings on JDK 26+KT-72710Incorrect behaviour of tail call suspend functions optimizationKT-84727[K/N] Segfault when returning null as generic Int type from dynamic frameworkKT-83460Deprecation from@all:Deprecated is not propagated to property accessors/backing fieldsKT-84859Skip 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-84983Type parameter annotations are lost for local functionsKT-78800Investigate FirMissingDependencySupertypeInQualifiedAccessExpressionsCheckerKT-73945K2 IDE: Duplicated inspections for redundant 'open' in interface memberKT-84294Ensure Context Sensitive Resolution works with Companion Blocks & ExtensionsKT-83904[Inliner] Inline function overrides an abstract method with a default value in an inheritance chainKT-81675Improve message for CONTEXTUAL_OVERLOAD_SHADOWEDKT-84994Rework optimization for companion extension resolutionKT-81598incorrect type mismatch error messages for generic calls with explicit type argumentsKT-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-84405ClassCastException with conflicting projection on the LHS of a callable referenceKT-84866Reserve CoroutineContext as context parameter for future useKT-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-84310No Warning Emitted For Deprecated Java Enum Value UsageKT-81871Drop context receiver testsKT-84714KJS: Forbid exporting properties with context parametersKT-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-84234RenameCONST_VAL_WITHOUT_INITIALIZERdiagnostic for properties with EBFKT-84411Confusing message for the class reference of the inner class with the type parameterKT-84594EBF is smartcasted in inline function with@PiblishedApiKT-83989Update coroutines-codegen.md after changes of Unit tailcall optimizationKT-84452EBF is smartcasted in the default argument with noinline modifierKT-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-84167Invalid type references with type arguments in package parts compile without diagnosticsKT-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-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 typeKT-261Can't specify function return type in a subclass
New features
c1bbb47Started inferring the stability of all interfaces to beStability.Unknown, expect for those explicitly marked as known- stable.
Fixes
b/511102714Made the default stability of non-final classesUnknown- instead of
Stable b/509945632Do not generate groups in inline lambdas without@Composablecalls.b/504284805Fix indentation for generated proguard mappings.b/422193018Fix applier inference for nested composables of different types.b/497751457Prevent a$stableproperty from being added to any object.b/427530633Do not infer a getter call as static across when it is defined in another file.b/427530633Started usingStability.Runtimemore broadly. Now, when an- element depends on the stability of an
internalorpublicclass - 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-84293Expect Actual Matching for Companion Block Declarations & Extensions
IR. Inlining
KT-73708Use some marker in KLIBs produced with IR inlinerKT-85605"Local delegated property has not delegate" exception when calling inline function containing delegated property in a lambda from within an inline lambdaKT-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 checkers
IR. Interpreter
IR. Tree
KT-79663KLIB-based compilers: Promote partial linkage to "always on"KT-76934Drop old IR parameter APIKT-72950Partial Linkage: Change the semantics of-Xpartial-linkage-loglevelKT-74763Build: refactor ':compiler:backend.common' and ':compiler:ir.backend.common' modulesKT-76634PL: Don't report warnings in cases that don't lead to runtime errorsKT-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
Fixes
KT-86017KClass.constructors returns all java.lang.String constructors for mapped type kotlin.StringKT-85550Reflection: KParameter.type.classifier returns boxed KClass for non-nullable primitive typesKT-82659Reflection: IAE on a call to a Java inner class constructorKT-85999Reflection: ByteArray KType incorrectly has type arguments in Kotlin 2.4.0KT-85285Reflection: InvocationTargetException (UInt cannot be cast to Integer) when reading UInt annotation property via getterKT-85091Reflection: "KotlinReflectionInternalError: Unsupported parameter owner: null" on attempt to get annotations of annotation constructor parameterKT-85322Reflection: KotlinReflectionInternalError when loading ProGuard-obfuscated code compiled before 2.3.20KT-84679Reflection: confusing "Kotlin reflection is not yet supported for synthetic Java properties" for reference to Java enum's entries propertyKT-85025KTypeParameterinstances not equal to each other for the same type parameter in member specializationKFunctionKT-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 projection
New Features
KT-51292Proposed behavior of@JsExporton interfaces and classes with companion objectsKT-21626Support ES2015 syntax injsfunctionKT-83451K/JS: Support ES6 object destructuring in js() callsKT-83452K/JS: Support ES6 array destructuring in js() callsKT-82128[K/JS] Allow named companion objects in exported interfaces
Performance Improvements
KT-77646KJS: optimize Byte/Char/Short/Int/Float/DoubleArray.copyOf(newSize)
Fixes
KT-84332KJS: Reconsider disallowing nested classes in exported interfacesKT-72198KJS: ES2015 interop with ValueClassKT-84090Save variance in the generated TypeScriptKT-56618KJS/IR: Support external interfaces from common code (via annotation?)KT-85038Kotlin/JS:@JsExporton sealed external interface with companion object causes NPEKT-81787KJS: Value class type lost when using JsExport on interfaceKT-85411Fix conversionCombinations.kt tests for the JS targetKT-83701Escaped identifier with a quote cause an invalid d.ts fileKT-68281K/JS: Order of classes in initMetadataForClass are not deterministicKT-15101js: Same callable references are not equalKT-84810[K/JS] Callable references operator produces duplicatesKT-85323JsClass optimization doesn't work well for primitivesKT-60651KJS / ES6: init block and constructor are not calledKT-84601K/JS:KClass<>reference doesn't work in JS counterside as anewtarget in ES6 modeKT-85099KotlinJS: JsPlainObject from the js-plain-objects plugin does not respect overridesKT-84615KJS: Forbid@JsStaticon extension functions/propertiesKT-84002Bump version from 2.3 to 2.4 for JsNoRuntime-related annotationsKT-84474Kotlin/JS: Long::class becomes null when passing the value to a generic function with -Xes-long-as-bigintKT-84647K/JS: Class expressions are not supported in js() callsKT-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-83722K/JS: NON_EXPORTABLE_TYPE in the exported file with name-based destructuring declarationsKT-69353KJS / d.ts: Kotlin does not export base collection classes along with their mutable collection counterparts
Performance Improvements
Fixes
KT-78188[JS] Klib backward and forward compatibility testingKT-82471[K/N] Klib forward compatibility testing with codegen testsKT-83929Add tests for IR signatures of static properties and functionsKT-81411MergeKonanLibrarytoKotlinLibraryto simplify adoption ofKlibLoaderin the Kotlin/Native compilerKT-82469[K/N] Klib backward compatibility testing with codegen testsKT-84511[Native][Tests] Improve descriptor-related logic in NativeCliBasedFacades.ktKT-85017[PL] Add test for addedinternal abstract funKT-84488Export in previous version: Prohibit using on 2nd stageKT-85149Klib Dump parser: fix parsing of qualified names adjacent to vararg symbolKT-85129Klib Dump parser: fix enum names parsingKT-84684RemoveUserVisibleIrModulesSupportfrom IR linkerKT-84820[K/N] Loadlibcallbacksandlibllvmstubsfrom configured pathKT-84819K/N: Segfault on xctest when using internal abstract on a parent classKT-83807Restore non-nullability of symbols not available in 2.3.0 stdlibKT-83012Export in previous version (Native): add the checker for incompatible Kotlin stdlib/compiler pairsKT-84341Fix detection of box function in forward compatibility testsKT-83748Bump versions in JS Klib compatibility testingKT-83724Fix & unmute stdlib & kotlin-test compatibility testsKT-83151Restore non-nullability of symbols available since 2.3
Language Design
KT-14663Support having a "public" and a "private" type for the same propertyKT-80852Version overloading: generate overloads corresponding to different versions of a function whose parameters are annotated with@IntroducedAt()KT-73821Decide the future of the ForbidUsingSupertypesWithInaccessibleContentInTypeArguments language featureKT-85120@IntroducedAton expect parameter cannot be properly actualized
New Features
Performance Improvements
Fixes
KT-83525Introduce support window for Kotlin Stdlib versionsKT-86027Hide returnsResultOf under a separate flag and remove its usages from kotlin stdlibKT-84818[Regex] Native and Wasm: Decomposed Unicode character are incorrectly process with CANON_EQ flagKT-83131Testing: assertNull has no contractKT-85122Deprecate kotlin.io.readLine with WARNINGKT-84970Deprecate AbstractCoroutineContextKey and associated APIKT-81395Stabilize kotlin.uuid.Uuid APIKT-85127Remove kotlin.test.assert*NoInline hidden functionsKT-84264Add appropiate@SinceKotlinto new contractsKT-84697Update the list of JDKs the stdlib is tested withKT-83956Clarify joinToString behavior when the receiver is emptyKT-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
New Features
Fixes
KT-84686Removing x64 in gradle file breaks builds on certain platformsKT-71278Enable Concurrent Mark and Sweep (CMS) GC by defaultKT-81748Create a phased CLI for Native klib compilationKT-84733LLVM Update: rebase LLVM once the upstream stabilizesKT-83914Native: when loading JNI libraries, java.library.path can contain system directories with libraries with same namesKT-83133Native: don't usesun.misc.Unsafein the compiler and cinterop when running on JDK 25+KT-83648Native: don't usesun.misc.UnsafeinNativeMemoryAllocatorwhen running on JDK 25+KT-83647Native: don't usesun.misc.UnsafeinnativeMemUtilswhen running on JDK 25+KT-82674Native: dyld[...]: Symbol not found: _mach_vm_reclaim_update_kernel_accounting_trap on macOSKT-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-85803K/N: build not reproducible - platformLibs cachesKT-84503Duplicate META-INF/serialization.shadow.kotlin_module entry in kotlin-native-compiler-embeddable jarKT-85191K/N: Dependency cycle in libclangInteropKT-84937Kotlin/Native: non-reproducible .bc for mingw_x64KT-80072Make Kotlin/Native distribution reproducibleKT-81771konanc failing to load native libraries
Native. C Export
KT-61748KMM- warnings when compiling native targets (Kotlin 1.9.0)
Native. C and ObjC Import
KT-85705Swift-generated headers with external_source_symbol produce duplicate enum declarationsKT-82379Introduce lenient modular cinterop modeKT-81695Repeated typedefs across multiple clang modules break cinterop with -fmodulesKT-82766K/N: external_source_symbol clang attribute causes cinterops with -fmodules to downgrade to forward declarationKT-84023Modular import fails with an obscure error when the failing module is not the last oneKT-81433Generate C-interop KLIBs in previous ABI version in Kotlin 2.4.0KT-82402Inter-cinterop type reuse with -fmodules uses forward declaration when an actual declaration is availableKT-82377Fix ObjC forward declaration handling in modular cinteropsKT-81752Native: investigate and remove filtering of-fmodule-map-filein cinteropKT-83814Native: includedHeaders= in platform libs manifests is not reproducible when modules= is used
Native. ObjC Export
Native. Runtime
KT-84331Kotlin/Native: RunLoopFinalizerProcessor needs initialized runtime before it has any jobs
Native. Runtime. Memory
New Features
KT-84361[Swift Export] Preserve TypeInfo on StateFlowKT-85130[Swift Export] Preserve TypeInfo on SharedFlowKT-82705Support convenient export of Flow types in Swift exportKT-66821Swift Export: value classKT-82598Swift Export: Custom name translationKT-69431Swift export: inline functionsKT-84263[Swift Export] Context Parameters on Functional Types
Fixes
KT-80305Support coroutines in Swift ExportKT-85380[Swift Export] Attempt to bridge unbridgeable type: SirUnsupportedTypeKT-84317Swift Export: "protocol members can only be marked unavailable in an '@objc' protocol" in generated code for kotlinx-coroutinesKT-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-83743Swift export: type arguments expected for generic typealiasKT-85458[Swift Export] value of a closure returning a closure generates invalid swift codeKT-85521[Swift Export] conflicting overloads for generated Kotlin bridgesKT-85293SwiftExportCoroutinesWithResultValidationTest.testCoroutines fails after cross-pushKT-84515[Swift Export] suspend functional parameter generates invalid Swift codeKT-82282Swift Export: suspend function returning Array leads to incompilable codeKT-81540Swift Export: using interface in Set generates incompilable codeKT-66873Swift 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-83730Generated Swift switch on bridged Kotlin enum crashes with fatalErrorKT-85016[Swift Export] it's not OK to expose Flow as AsyncSequenceKT-84979Swift Export Nullability: UnitKT-83821Swift Export: suspend function returning Nothing leads to incompilable codeKT-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-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-83476Use Maven publications as dump input [ABI Validation]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
New Features
KT-83794Make BTA JVM Compiler Arguments Type-SafeKT-80963BTA: Add structured information about reported messages to KotlinLoggerKT-73037Add input (like compiler arguments) changes trackingKT-82791BTA: introduce an option forExecutionPolicy.WithDaemonto control the daemon log files pathKT-84453SSoT: provide a unified way to convert Enums to Strings
Fixes
KT-86395[BTA] forward-compatibility violation: NoSuchMethodError on JvmSnapshotBasedIncrementalCompilationConfiguration. breaks ICKT-80679Add support for the Build Tools API [ABI Validation]KT-85294BTA: Replace hardcoded@sincein KDoc with dynamic versioningKT-85035Don't expose X_COMPILER_PLUGIN_ORDER in CommonCompilerArgumentsKT-85391[BTA] Hide boilerplate required to load isolated BTA implementationKT-85447BTA: deprecate JvmCompilerArguments.contains (warning)KT-82390[BTA] Remove deprecated non-builder factory functions and classesKT-84850Make kotlin-home type safeKT-84867Make Xphases-to-* arguments type-safeKT-85094Make Xwarning-level type safeKT-85205Make Xdump-perf type safeKT-85204Make Xdump-directory type safeKT-84906Make enum-based common arguments type-safeKT-84322Make X_PROFILE BTA compiler argument type safeKT-84825Make script-templates type safeKT-84546Replace raw string path arguments with type-safe PathListTypeKT-84705Make Xjdk-release to type-safeKT-85167Make Xjsr305 type safeKT-85069Make Xnullability-annotations type safeKT-84738Make Xscript-resolver-environment type safeKT-85082Make Xignored-annotations-for-bridges type safeKT-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-75837IC: Shrunk classpath snapshot name is hardcodedKT-84228BTA: Improving KDoc generation for Enums and Custom TypesKT-85738BTA forward compatibility: NoSuchFieldError on X_IGNORED_ANNOTATIONS_FOR_BRIDGES when API 2.3.0 is used with impl 2.4.0KT-84436Сompiler warnings are missing under Gradle -q option with -WerrorKT-85072AbstractMethodError when calling discoverScriptExtensionsOperationBuilder with pre-2.4.0 compilerKT-84523Add more forward compatibility testsKT-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)KT-85092[BTA] Update BTA Backward Compatibility Testing: 2.3.20-RC → 2.3.20KT-85439BTA: Warn or error when incompatible compiler arguments are passed via applyArgumentStringsKT-75540Build Tools API Should Reject -Xbuild-file ArgumentKT-85333Add BTA tests for BACKUP_CLASSES and KEEP_IC_CACHES_IN_MEMORY behavior after compilation errorKT-84770BTA: default options cannot be retrieved from many option objectsKT-85224Add@ExperimentalArgumentApito compiler argument DSL typesKT-84953Fail TC build if generated files changeKT-85189Refactor path argument types: flatten hierarchy and improve namingKT-82335Promote the deprecation level for BTA prototype to the ERROR levelKT-84984Runtime NPEs caused by null return in CompilerMessageRenderer implementationKT-84015Introduce detection of custom script names to new BTA APIKT-83972BTA: use isolated classloader for loading the BTA implementation in integration testsKT-84181More verbose warning when CRI is enabled without using BTAKT-84449Platform-Specific File.pathSeparator Hardcoded During SSOT GenerationKT-84249Fix hardcoded path separator in -Xprofile argument to support absolute paths on Windows
Fixes
KT-84609Remove Nullability from Array-based CLI Compiler ArgumentsKT-85414Argument DSL:delimiter = KotlinCompilerArgument.Delimiter.PathSeparatorgenerates invalid Kotlin codeKT-85004Set proper since version for language feature about property annotation targetingKT-84220Enable Context Parameters by default in LV 2.4KT-84188Create CLI argument for explicit context parametersKT-84999Don't poison binaries withImplicitJvmExposeBoxedlanguage featureKT-85001ConvertImplicitJvmExposeBoxedlanguage feature to analysis flagKT-83341Don't use the extension point registration mechanism from Intellij for K2 extensionsKT-56850Separate K/Wasm CLI entry point from K/JS CLIKT-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 effect
Tools. CLI. Native
KT-82482Compiler plugins are not propagated to frontend environment in ONE_STAGE_MULTI_MODULE Native mode
Tools. Compiler Plugin API
New Features
Fixes
KT-83931Power Assert: Compilation fails when using the metro pluginKT-86170PowerAssert: Stabilize runtime ABI for initial releaseKT-85250PowerAssert: Automatically add runtime library dependencyKT-75873PowerAssert: display callable reference value under '::'KT-85151PowerAssert: Surround string and character values with quotesKT-85184PowerAssert: Annotation may only be used on expect and non-override functionsKT-85178PowerAssert: Crash when transforming IrCall without CallableIdKT-66807PowerAssert: Improve output diagram formattingKT-85089PowerAssert: Wasm CompileError when usingPowerAssert.explanationKT-75266PowerAssert: arrayOf() isn't displayed on the diagramKT-67332"IndexOutOfBoundsException: Cannot pop operand off an empty stack." caused by function referenceKT-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. Compiler plugins. Serialization
New Features
KT-76197Write Kotlin compiler warnings and errors to Problems API
Fixes
KT-86346Compiler warnings printed twice in console — once asw:and again as Gradle "Problem found:" blockKT-69701Gradle: module name is passed inconsistently to different types of compilationsKT-85373Compile against Gradle API 9.5.0KT-85374Run tests against Gradle 9.5.0KT-80448Remove internal & deprecated API from ExtrasProperty.ktKT-69830Support Gradlecom.gradle.develocityplugin in KGPKT-85509Remove deprecated API in the 2.4.0 releaseKT-83858Compatibility with Gradle 9.4.0 releaseKT-84144Bump the minimal supported AGP version to 8.5.2KT-85562Failed to invoke getCompilation on org.jetbrains.kotlin.gradle.tasks.KotlinNativeLink_Decorated on project importKT-85590Gradle: cannot create task MainKt.main() due to missing defaultSourceSetNameKT-74451Deprecate access to Kotlin source sets in Android extensionKT-82960Remove deprecated enableKotlinToolingMetadataArtifact in 2.4.0KT-84377Broken package-list file on KGP/CMPG documentation pageKT-85412Module name is not sanitized with older Kotlin compiler versionsKT-65566Use the new ConfigurationContainer consumable method to create consumable configurationsKT-83775Migrate KGP functionalTest to junit5KT-85433Gradle: deprecate non-BTA JVM compiler execution modeKT-83860Run tests against Gradle 9.4.0KT-75004KGP: improve messaging when multiplatform tasks are disabled on incompatible OSesKT-83859Compile against Gradle API 9.4.0KT-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-84143Reduce usage of Project in Tooling DiagnosticsKT-83126Remove out-of-process compilation modeKT-80466Gradle: remove getPluginArtifactForNative()KT-81834Compile against AGP 8.13 APIKT-77498Test .swiftmodules more accurate in SwiftExportITKT-84141Add convenient host checkKT-83592Enable AFU in FusStatisticsIT.testKotlinxPlugins test after next AFU release
Tools. Gradle. BCV
KT-86268ABI validation tasks fail with Unsupported platform toolchain type when using kotlin.compilerVersion pointing to an older compiler after BTA migration in 2.4.0-Beta2KT-80685Simplify Gradle DSL [ABI Validation]KT-83486Create tasks only if abiValidation block called explicitly [ABI Validation]KT-82410Remove wordlegacyfrom DSL [ABI Validation]KT-83999ABI validation: Groovy DSL doesn’t deprecate included/excluded filters, allowing four filter configs instead of twoKT-84461Remove the use of abi-tools-api from KGP [ABI Validation]KT-84100Add Deprecated annotation to legacyDump block and property [ABI Validation]KT-84365Gradle plugin of abi-validation should precisely define output filesKT-83898Classes produced by JvmMultifileClass ignore filters
Tools. Gradle. Compiler plugins
KT-85343Update Compose Gradle plugin deprecations before 2.4
Tools. Gradle. Dokka
KT-82984Support AGP9 in Dokka Gradle Plugin
Tools. Gradle. JS
KT-81037K/JS, Wasm: Remove deprecated internal JS functionsKT-81034K/JS, Wasm: Remove deprecated public constructors of JS declarationsKT-81030K/JS, Wasm: remove deprecated NodeJsExec.createKT-81036K/JS, Wasm: Remove deprecated ExperimentalDceDslKT-81040Gradle: Remove deprecated Kotlin/JS tasks constructorsKT-64275Gradle: remove deprecated symbols related to the legacy JS targetKT-84753DeprecateKotlinJsCompilerTypeandKotlinProjectExtensionmethods using itKT-81033K/JS, Wasm: Remove deprecated wasm declarations in "js" package
Fixes
KT-84767K/N: associateWith triggers warning about friend-modules libs not included in -library argumentKT-82265Remove Android source set layout v1KT-82230Cleanup 'org.jetbrains.gradle.apple.applePlugin' plugin usageKT-81117Withandroid.builtInKotlin=true(AGP 9.0), usingkotlin-multiplatformplugin will fail withCannot add extension with name 'kotlin'KT-86174Project sync from cached checkout fails in convertSyntheticImportProjectIntoDefFileIphoneos with 'fatal: Needed a single revision'KT-85877The number of SPM direct dependencies is multiplied on number on targetsKT-85706SwiftPM Import: Updating package version in build script updates version in the lock fileKT-84085Remove deprecated gradle property kotlin.kmp.isolated-projects.supportKT-83370Incorrect metadata transformation for stdlib's webMain source setKT-69571compileNativeMainKotlinMetadata not handling project/prebuilt substitutionsKT-84533KMP: compileCommonMainKotlinMetadata: "Unresolved reference" for androidx.savedstate from Maven (works with project() dependency)KT-84669SPM import: If iosApp dir located outside of the project, checkSyntheticImportProjectIsCorrectlyIntegrated will failKT-84597Remove trailing comma for dependencies blocks settings in Package.swiftKT-82895kotlin-stdlib import is flaky in commonTest in 2.1.21KT-81958Redundant “android target already exists” error when migrating to com.android.kotlin.multiplatform.library with androidTarget {}
New Features
Fixes
KT-85984linkReleaseFrameworkIosSimulatorArm64 is executed during Debug iOS build since 2.4.0-Beta2KT-85510Cleanup native tasks APIKT-84656Concurrent issue in downloadKotlinNativeDistributionKT-85502Swift PM Import: "Library not loaded": KotlinMultiplatformLinkedPackage.framework is not copied next to the executableKT-85561SwiftPM lock-files metadata resolution fails with NoMatchingGraphVariantsException in external KMP projectsKT-85128Refactor SwiftPM import lock tests and test utilsKT-83681Parallelize parts of SwiftPM import pipeline that are called during importKT-83874Linker hack doesn't work when clang uses response filesKT-86024Empty main compilations cause w: [COMPILER_ARGUMENTS_WARNING] There are libraries in -friend-modules CLI argument that are not included in -library CLI argument:KT-69896Native: output to stderr ends up in the Gradle logKT-85708[KGP] dSYM copy task ignoresisStaticdue to eager read before framework configurationKT-84262integrateEmbedAndSign produces an incorrect Gradle call for the root projectKT-84730Add Kdocs to SwiftPM import APIsKT-84558Upstream SwiftPM import workKT-82824Make linker hack path relativeKT-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-86457[Wasm, Gradle] BinaryenExec.standardOutput is silently ignored after migration to Gradle WorkersKT-84137K/Wasm: Support binaryen run with multiple filesKT-85974K/Wasm: Do not set -Xir-per-module for Wasm tasksKT-83566K/Wasm: Support Wasm per module/klib compilation in Gradle pluginKT-85046K/Wasm: Wasm per-module Gradle integration tests on WindowsKT-84230Wasm: Fix test WasmYarnGradlePluginIT.testWasmUsePredefinedTooling
Tools. Incremental Compile
Tools. JPS
KT-81579JPS: -Xwarning-level=DEPRECATION:warning not supported
Tools. Kapt
KT-84094Kotlin daemon holds file locks for too longKT-32743Kapt, Maven: Do not include compile classpath entries in the annotation processing classpathKT-41217Running kapt with Maven does not seem to include the compilation classpathKT-80569K2 KAPT: Class Literals Missing in Explicit Annotation Value ParametersKT-18791Kapt: Constants from R class should not be inlined
New Features
Fixes
KT-74001Support monotonous dirtySet expansion in MavenKT-76062Maven: remove Kotlin script execution supportKT-84101Maven: compile and test-compile handle sourceDirs inconsistentlyKT-84653Add integration test for KAPT with smart defaults in mixed Kotlin+Java projectsKT-84778Add integration test for auto-bind execution order in mixed Kotlin+Java projectsKT-85146Maven: Adding stdlib as smart-default may break maven dependency resolution for other pluginsKT-84793Use kotlin bootstrap to build kotlin-maven-pluginKT-83109Remove beanshell and groovy verification in kotlin-maven-plugin-testKT-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
Tools. REPL
KT-77816REPL: Support forconstpropertiesKT-74683[K2 Repl] Does not support suspend functionsKT-84483[K2 Repl] NullPointerException in Analysis when using custom classesKT-84803[REPL] FirReplSnippet: provide the eval function symbol instead of the name (evalFunctionName)KT-84160[REPL] Resolve eval function during implicit bodyKT-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