fix(deps): update all dependencies #9
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "renovate/all"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
2.3.10→2.4.02.3.10→2.4.02.3.10→2.4.02.3.10→2.4.04.0.3→4.0.6Release Notes
JetBrains/kotlin (org.jetbrains.kotlin:kotlin-maven-allopen)
v2.4.0Compare Source
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 KotlinPackageProviderKT-65683Analysis API: Dangling file session creation causes acomputeIfAbsentcontract violationAnalysis API. Code Compilation
KT-78946Evaluation of variable with local class in type parameter leads to InventNamesForLocalClasses exceptionAnalysis 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 whenanalyzeCopyAnalysis API. Infrastructure
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 modulesAnalysis 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 typealiasAnalysis API. PSI
KT-84715removeModifier doesn't delete whitespaces around the removed modifierKT-84564KtEnumEntry.delete deletes semicolonKT-84781Use computed properties in KotlinElementTypeProviderImplKT-83846Set up guidelines for PSIKT-84135Deprecate KtSelfTypeAnalysis 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 modeAnalysis API. Stubs and Decompilation
KT-85371StackOverflowError from LLKotlinStubBasedLibrarySymbolProvider and StubBasedClassDeserializationKT-83935Support KDoc loading in decompiled stubsAnalysis API. Surface
New Features
KT-85239Streaming version of collectDiagnostics()KT-82519Automatically recognize the appropriate analysis mode for in-memory file copies based on their contentKT-73534SAM method APIKT-82993Support explicit backing fields in the Analysis APIFixes
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 scopesBackend. 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 treeBackend. Native. Debug
KT-83804Native: debug information generator converts relative paths to absolute onesBackend. 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 compilationCompiler
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 & AnyPerformance 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 tosuspendCoroutineFixes
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 subclassCompose compiler
New features
c1bbb47Started inferring the stability of all interfaces to beStability.Unknown, expect for those explicitly marked as knownstable.
Fixes
b/511102714Made the default stability of non-final classesUnknowninstead of
Stableb/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 anelement depends on the stability of an
internalorpublicclassdefined 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 & ExtensionsIR. 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 checkersIR. Interpreter
KT-86083Create a new CLI flag to enableIntrinsicConstEvaluationfeatureKT-80804Enable constant evaluation for more standard libraryKT-83514Get rid ofEvaluatedConstTrackerKT-84561K2: Convert evaluated constant by default in FIR2IRIR. 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 KlibsJVM. Reflection
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 projectionJavaScript
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 interfacesPerformance 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 counterpartsKlibs
Performance Improvements
KT-84415Ineffective hashMap usage in IrSymbolDeserializerKT-80903[Klib] Optimize size of serialized IR element coordinatesKT-84451[Klib] Use varint encoding for element sizes in IR tablesKT-84400[Klib] Optimize size of serialized IrExpressionKT-79675K/N: Uncached ZipFIleSystemAccessorFixes
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.3Language 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 actualizedLibraries
New Features
KT-84921Add 'returnsResultOf' contract to appropriate declarations in the stdlibKT-73111No UInt.toBigInteger() and ULong.toBigInteger() conversion functionKT-78499Add isSorted() extension to standard libraryPerformance Improvements
KT-70750Kotlin's Regex implementation on Kotlin Native is painfully slowKT-67731Regular expressions works slowly on iOSKT-80772K/N: Regex: improve look behind matching performance for "fixed-length" patternsFixes
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 assertEqualsNative
New Features
KT-78686LLVM update Q1 2026KT-84826Bump the minimum deployment version of Apple targetsFixes
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 librariesNative. 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 usedNative. ObjC Export
KT-86068Native: add support for ObjCEnum.EntryNameKT-85171Red Swift code in Native UI Multiplatform App project from Template GalleryNative. Runtime
KT-84331Kotlin/Native: RunLoopFinalizerProcessor needs initialized runtime before it has any jobsNative. Runtime. Memory
KT-83670K/N: gc concurrent mark phase assert Failed to terminate mark in STW in a single iterationKT-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-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 TypesFixes
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 codeTools. 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 dumpTools. Build Tools API
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 StringsFixes
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 WindowsTools. CLI
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 effectTools. CLI. Native
KT-82482Compiler plugins are not propagated to frontend environment in ONE_STAGE_MULTI_MODULE Native modeTools. Compiler Plugin API
KT-85969KtLint incompatible with Kotlin 2.4.0-Beta2 (parsing errors / Extensions storage issue)KT-85133Drop deprecated K1 specific methods from IrPluginContextTools. Compiler Plugins
New Features
KT-66808PowerAssert: Add support for third-party assertion librariesKT-69036Power-Assert indent multiline valuesKT-75656PowerAssert: Create runtime libraryFixes
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@BuilderTools. Compiler plugins. Serialization
KT-85963IncompatibleClassChangeError: Expected non-static field $stableon deserialization of@Serializabledata class when Compose compiler plugin is applied before Serialization pluginKT-85554Serialization: "IndexOutOfBoundsException" on property generated by Compose pluginTools. Gradle
New Features
KT-76197Write Kotlin compiler warnings and errors to Problems APIFixes
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 releaseTools. 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 filtersTools. Gradle. Compiler plugins
KT-85343Update Compose Gradle plugin deprecations before 2.4Tools. Gradle. Dokka
KT-82984Support AGP9 in Dokka Gradle PluginTools. 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" packageTools. Gradle. Multiplatform
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 {}Tools. Gradle. Native
New Features
KT-83873Redo how dynamic library linkage and promotion are handledKT-83863Persist Package.resolved files and reuse them in incremental SwiftPM importFixes
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 XcodeTools. 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.testWasmUsePredefinedToolingTools. Incremental Compile
KT-85387BTA: switch the default value ofMONOTONOUS_INCREMENTAL_COMPILE_SET_EXPANSIONtotrueKT-85386BTA JVM IC: 'moduleName' is null!KT-84450Star imports are not reported via FirImportTrackerComponentTools. JPS
KT-81579JPS: -Xwarning-level=DEPRECATION:warning not supportedTools. 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 inlinedTools. Maven
New Features
KT-85121Maven: enable configuration inputs tracking in BTAKT-84386Support Maven Toolchains in kotlin-maven-pluginKT-85317Auto‑align jvmTarget with the project’s Java levelFixes
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-verifierTools. Performance benchmarks
KT-82928Support local run for new benchmarks infraKT-84283Add scenario generator for performance testsKT-83257Parse gradle profile reportTools. 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 snippetTools. Wasm
KT-84396[Wasm] Support multimodule in incremental compilationKT-75086Wasm: Deprecate and remove D8 in js packagesv2.3.21: Kotlin 2.3.21Compare Source
Changelog
Backend. Wasm
KT-84610[Wasm] Failed to compile klibs in IC modeCompiler
KT-84566Prevent launching Default dispatcher threads from IJ SDK in kotlin compilerKT-85358Native: roll back the workaround for KT-84678 once MapLibre has been properly fixedKT-85626@JvmRecordin commonMain breaks compileCommonMainKotlinMetadata with "Cannot access 'java.lang.Record'"KT-85405Postpone/RevertDontIgnoreUpperBoundViolatedOnImplicitArgumentsKT-84678K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS targetKT-85021False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module projectJavaScript
KT-82395Support top-level declarations from compiler plugins in JS incremental compilationKT-84475K/JS: false-positive exportability warnings in multi-module projectKT-84633Kotlin/JS: "Serializer for class not found" error when IR output granularity iswhole-programKT-85047Kotlin/JS:@JsStaticon suspend fun of class companion generates incorrect d.tsKT-84517K/JS: bad mappings data in outputted Kotlin stdlib source mapLibraries
KT-71848Kotlinx.metadata: AddCompilerPluginDatainto Km APINative. C and ObjC Import
KT-85399Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabledKT-85508K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20Tools. Gradle
KT-84729Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portalTools. Gradle. Compiler plugins
KT-85257AGP/Compose: MergeMappingFileTask clears R8 artifacts due to@OutputDirectoryannotation on AGP 9.1+Tools. Scripts
KT-85105Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous objectKT-85103Exception while generating code when explain destructuring declsKT-84842scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20KT-85029Kotlin Scripting: ScriptDiagnostic reports "at null" instead of error locationTools. Statistics (FUS)
KT-85628KGP: composite build FUS metrics fail on access of 'configurationTimeMetrics'v2.3.20: Kotlin 2.3.20Compare Source
Changelog
Analysis API. FIR
New Features
KT-78090Implement stubs support for new conditional returns and holdsIn contractsFixes
KT-82948'FirRegularClass' expected as a containing declaration, got 'FirTypeAliasImpl'KT-83467Package-level JSpecify annotations are ignored when coming from jars or librariesKT-82057K2. Cannot infer type parameter 'R' in Ktor routing post() function with explicit response typeKT-82846AA: unresolved KtExpression.expressionType for the reference to the parameter with default valueKT-80485False positive UNRESOLVED_REFERENCE on nested interface from super-super class in the super type position inside an anonymous objectKT-82772Flaky false positive deprecation warning on PersistentMap.put in Kotlin repo in IDE modeKT-76487StdLibSourcesLazyDeclarationResolveTestGenerated.testWrappedInt is unstableKT-82618Various tests are failing with NPE in kt-master after updating the compiler on 19.11.25KT-82076Error querying members of JavaClass created for SymbolLightClassForAnnotationClass during library analysisKT-71596Include Js/Wasi checkers in AbstractLLFirDiagnosticsCollectorKT-82085No OUTER_CLASS_ARGUMENTS_REQUIRED on type parameter bound in IDEKT-81873Provide a way of including traces in phase JFR eventsKT-71929Consider leaving the non-post-compute version at EnhancementSymbolsCache.enhancedFunctionsAnalysis API. Infrastructure
KT-83173Analysis API Tests: Library names with RC versions aren't sanitisedKT-65140LL FIR: Implement AbstractFirPsiJsDiagnosticTest for LL FIRKT-82212[Analysis API, LL FIR] Implement AbstractDiagnosticsFirWasmTest and AbstractDiagnosticsFirWasmWasiTest for LL FIRAnalysis API. Light Classes
KT-82227Value classes should expose regular static methodsAnalysis API. PSI
KT-81710'KtTypeReference.getTypeText' does not account for 'suspend' modifier on suspend lambdasKT-82258Prepare PSI for migration from context receivers to context parametersKT-81074KDoc: List rendering is brokenAnalysis API. Providers and Caches
KT-82449K2 IDE Analysis Freezes During Gradle Sync (Recursive Module Dependency Computation in KotlinModuleDependentsProviderBase.computeTransitiveDependents)KT-82629'collectDiagnostics' returns stale syntax error after editor fixKT-74907Analysis API: Apply platform-based library module content restrictions consistentlyAnalysis API. Standalone
KT-81107AA: KtSourceModuleBuilder.sourceRoots doesn't works with symbolic linksAnalysis API. Stubs and Decompilation
KT-82792Stub for KtValueArgumentList inside KtAnnotationEntry should be present if it is present in psiKT-82527TypeClsStubBuilder.createFunctionTypeStub throws NullPointerExceptionKT-82558Deserialized DNN type should have a fully qualified AnyKT-81928KaArrayAnnotationValueImpl.values missing first elementKT-82139Support contracts for property accessorsKT-82198Support context parameters in contractsAnalysis API. Surface
New Features
KT-82851Property accessors should inherit KDoc from the parent propertyKT-63339Analysis API: Provide a way to extract KDoc for symbolsKT-79070KaTypeProvider: add API to build a default type with star projectionsKT-66566AA: api to create functional typesKT-66043KtTypeCreator doesn't provide a way for creating annotated typesPerformance Improvements
KT-83694Provide psi-based implementation ofKaDeclarationSymbol#isExternalKT-70868KaSymbol: support PSI-only visibility and modality for the case without compiler pluginsKT-81627KaFirSymbolDeclarationOverridesProvider#processOverrides should process only relevant declarationsFixes
KT-83152[Analysis API, KDoc] Make class name links on constructors point to the classKT-83695DeprecateKaSymbolInformationProvider#{getter, setter}DeprecationStatusKT-82853Add a convenience property for testing declarations for effective external-nessKT-83226Support "Collection literals" in the Analysis APIKT-83225Support "@IntroduceAt" in the Analysis APIKT-83222Support "Improve use-site defaulting for annotations" in the Analysis APIKT-83351Rename KaSession context parameter from 's' in bridges to something nicerKT-83199Clarify API around extension pointsKT-83074Inner enum entry class has incorrect default visibilityKT-82442Add Ka prefix to org.jetbrains.kotlin.analysis.api.symbols.AdditionalKDocResolutionProviderKT-82443Add Ka prefix to org.jetbrains.kotlin.analysis.api.symbols.DebugSymbolRendererKT-82441Add Ka prefix to org.jetbrains.kotlin.analysis.api.compile.CodeFragmentCapturedValueKT-82439Add Ka prefix to org.jetbrains.kotlin.analysis.api.components.DebuggerExtensionKT-82438Add Ka prefix to org.jetbrains.kotlin.analysis.api.components.DefaultTypeClassIdsKT-68577asPsiTypeandmapTypeToJvmType: leading delimiter for class in a root packageKT-81734MIssing "ARGUMENT_TYPE_MISMATCH" caused by self-referential generic typeKT-82856Redesign KotlinReferenceProviderContributor to make it extensibleKT-82615ClarifyKtReference#resolvesByNamescontractKT-82534No expected type for property accessor without bodyKT-82406Add a test to ensure that all top-level classes in the Analysis API Surface haveKaprefixKT-78397investigate if there is a need in Extra support for the "various little features in contracts"KT-74009Analysis API: Expose "isOverloadable" check for callable symbols similar to "OverloadChecker.isOverloadable"KT-78399Check return value - check how we see from Java(+Stub) we see “annotated” signaturesKT-80357[Analysis API]KaType.enhancedTypedoesn't enhance type parametersKT-73659Analysis API: The name ofKaType.enhancedTypeis too generalKT-80545[Analysis API] DeprecateKaFunctionType.arityKT-77708K2 Mode: Potentially redundant smart cast highlighing when passing smartcasted expressions as argumentsKT-81264K2 AA:KaValueParameterSymbol.hasDefaultValueis false for overriding or actual functionsKT-81166Forbid the usage of KaSessionComponent implementation types directlyKT-74801Analysis API: Publish/subscribe to modification events with a single message bus topicBackend. Native. Debug
KT-81741Native: stepping into data class hashCode in lldb goes to line 1Backend. Wasm
New Features
KT-81485[Wasm] DebuggerCustomFormatters generation support for single module modeKT-81483[Wasm] Typescript generation support for single module modeKT-81484[Wasm] Dwarf generation support for single module modePerformance Improvements
KT-83839K/Wasm: CMP. Load time on Safari significantly increased with Kotlin = 2.3.20-Beta1KT-81524Unnecessary Any-JsAny conversions are generated for external instanceofsFixes
KT-82732K/Wasm runtime crash when using fun reference: convertKotlinClosureToJsClosureKT-82649K/Wasm: Rewrite StringBuilder to use JsStringKT-73240K/Wasm: consider using JS String Builtins proposal in String implementation for wasm-js targetKT-83995K/Wasm: 2.3.0 -> 2.3.20-Beta1 degradation in arrow testsKT-82309K/Wasm: refactor _initialize functionKT-70075Wasm: "OutOfMemoryError: GC overhead limit exceeded" during testsKT-83046K/Wasm: don't use StringBuilder implicitly for string concatenationsKT-82645K/Wasm: wasmJs use js "String" for number2String conversionKT-79937K/Wasm: support kotlin.js.nativeInvoke annotationKT-67461Use new lowering phase creation API in Wasm backendKT-83664Wasm: Colon and space are not sanitized in output file namesKT-65779JsExport declaration name clashKT-82202[Wasm] SourceMap generation support for single module modeKT-82162[Wasm] Run single module tests with standalone vm'sKT-81325[Wasm] Remove string pool initialiser dependent codeKT-73238K/Wasm: stop using linear memory inside our codeKT-83025Wasm: Compose application is not loadingKT-73239K/Wasm: use JS String Builtins proposal to transfer strings to and from JSKT-83194K/Wasm: create WasmIR test infrastructureKT-65234K/Wasm Ensure that fp operations are aligned with other b-endsKT-81856K/JS/Wasm interop: external instanceofs do not link in singleModule modeKT-81610[Wasm] Add CLI test for performance metrics for klibs->binary scenarioKT-81550Incorrect generation of .wat filesKT-71533K/Wasm + K2: no error on KClass::qualifiedName usagesCompiler
New Features
KT-75736Enable reading/writing annotations in metadata on JVM by defaultKT-79330Implement the first version of inference for Collection LiteralsKT-83401Collection literals: support different types of expected types for CLKT-55548JSR-305: Overload resolution ambiguity: Platform Types vs Kotlin TypesKT-74860Support Unit coercion (incl. fun refs) in unused return value checkerKT-13968Support vertx nullable annotationKT-79656Useorg.jetbrains.annotations.UnmodifiableViewand/ororg.jetbrains.annotations.Unmodifiableto infer read-only types for Java entitiesKT-81684Implement explicit passing of context arguments using named syntax [TEST_ONLY]KT-80492Checkers for operatorofKT-82638Collection literals: resolve to factory functions for standard library classesKT-82467Improve binary and JVM compatibility by generating bridges for abstract interface methodsKT-82655Bridges generated for non-fake overrides shall include annotations from target methodsKT-74223Move Kotlin/Native TestProcessor phase to the first phaseKT-27090Support contracts in getter and setter for top-level extension propertiesKT-74809Support unnamed local variablesKT-45683Allow generics in contract type assertionsPerformance Improvements
KT-81974Do not eagerly initialize reflection for KProperty objects for delegated propertiesKT-83697Native: increased bitcode produced with enabled safe castsKT-83036Native: too many casts emitted with -Xgeneric-safe-casts=trueKT-80061Compiler (or IDEA) hangs due to importing large Kotlin reflect functions (e.g. KFunction999999999)KT-68592Investigate performance implications of enabling -Xjvm-default for ir.tree moduleKT-73687Inefficient KtCommonFile#getFileAnnotationListKT-71673Consider making EnhancementSymbolsCache. enhancedFunctions using simple cacheFixes
KT-84773Annotations not persisted in IR for internal external functionsKT-78783K2: absence of warning for KTLC-284 migrationKT-81553INITIALIZER_TYPE_MISMATCH and ASSIGNMENT_TYPE_MISMATCH is reported on the entire initializerKT-83395Kotlin/Native 2.3.0 iOS release framework fails with Invalid LLVM module (PHI node type mismatch)KT-84620Incorrect optimization of property delegationKT-81567Add a use-site warning if a@DslMarker-marked annotation is used on entities where it is a no-opKT-81700flaky overload resolution behaviors (false-positive errors, different final candidates, compile-time failures)KT-83372compileDebugKotlinAndroid hangs in 2.3.0 with SQLDelightKT-82579Update specificity rule for context parametersKT-83590Some explicit backing fields must still be considered private-to-thisKT-83849False-positive NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS forOptional.orElse(null)callKT-84192"Member overrides different '@Throws' filter from" caused by overriding in different moduleKT-72994K2: Remove resolution to context receiversKT-80247No diagnostic on unresolved type annotation from a dependency in an inferred typeKT-78730Move more LLVM-agnostic code to compiler/ir/backend.native or compiler/ir/backend.commonKT-74051Add a Continuation for tail-call suspend functionsKT-83984Data races around kotlinx.serialization plugin protobuf extensions registrationKT-83317ClassCastException: with cast kotlin.UInt to java.lang.Number when defining constantKT-83031K2: unstable resolution of EnhancedNullability from type-use NotNull in presence of unused codeKT-83824Delegated property in Gradle DSL fails to compileKT-83657[K/N] Pre-codegen inline produces invalid bitcodeKT-81555Kotlin scripts: top-level name-based destructuring with _ = prop fails with “exception while generating code”KT-83314JSpecify@NullMarkedchanges Java equals(Object) to equals(Any?) causing override conflict in Kotlin 2.3KT-83282JvmExposeBoxed: Duplicate annotation interface kotlin.coroutines.jvm.internal.DebugMetadata in class %class%$1 for suspend inline class valueKT-78443Refactor session component initialization for multi-target compilationKT-83427Arguments of plugin-generated annotations are serialized incorrectlyKT-83538OPERATOR_RENAMED_ON_IMPORT is not reported for 'provideDelegate' operatorKT-83537OPERATOR_RENAMED_ON_IMPORT is not reported for 'of' operatorKT-82721Inconsistent explicit backing fields behaviorKT-83589Explicit backing fields don't likely work with intersection overridesKT-81951K2: Another false positive "Assigned value is never read" in composable functionKT-83588Explicit backing field is falsely accessible from a subclass via a substitution overrideKT-82849Collection literals (minor): collection literal should only be resolved to operatorKT-83363VerifyError: "Bad type on operand stack" on multi-line suspending call with default parameter value since API version 2.4KT-83570K2: Resolve problematic IR when referencing Kotlin const from annotation in JavaKT-83362Starting from 2.3 DefaultImpls bridge functions deprecated with the level HIDDEN are no longer syntheticKT-9182Java interoperability: Overload resolution ambiguity on Java's@NotNulland primitivesKT-83633Forbid inline functional context parameters in inline functionsKT-83449compile-time IR failure on smart cast information leaking from capturing closureKT-82375AddATOMIC_REF_WITHOUT_CONSISTENT_IDENTITYwarning for any argument without consistent identityKT-82524Access to a companion that requires opt-in is possible without opt-inKT-83367VolatileFieldsLowering may emit wrong parameter types for atomic intrinsic callsKT-83382K2: Unreachable method exit breaks MUST_BE_INITIALIZED checks for succeeding value declarationsKT-82211False positive SENSELESS_NULL_IN_WHEN with nullable varKT-83157ExplicitBackingFields: "Property with explicit backing field should be final" in 2.3.0KT-83269K2: Wrong types in IR for explicit backing fieldsKT-68606Argument type mismatch, despite being from the same star-projected typeKT-83324Native: problem with loops handling in types computation passKT-83241K2: "NoSuchElementException: List is empty" with top-level destructuring declaration and lambda initializerKT-82277MisleadingInapplicable candidate(s): fun <K> WHEN_CALL(vararg branches: K): Kwhen a when expression branch contains an unresolved referenceKT-80839Get rid of an obsolete -Xcompile-builtins-as-part-of-stdlib flag once previous changes are bootstrappedKT-82900Language Feature EnhancedBridgesGenerationKT-82651Do not generate self-recursive bridges in JVM backendKT-5486Better errors for integers with leading zeroKT-83185Kotlin repeatable annotations are incorrectly deserialized from bytecodeKT-82863@NoInferregression since 2.2.20KT-82376Header mode: Index out of bounds when generating bodies of data classKT-82311Header mode: Error expression when assigning function declaration to a propertyKT-82408Header mode: Java files are not compiled successfullyKT-82378Header mode: Sequence contains no element matching the predicateKT-82407Header mode: Backend Internal error: Exception during IR loweringKT-81763Incorrect comparison result when using elvis ?: with nullable Long valuesKT-83153Properly ignore contract statements in the Return Value CheckerKT-83076Don't reportWRONG_JS_INTEROP_TYPEon expect types during metadata compilationKT-78589"Class does not have member field" caused by delegation from a Java to Kotlin classKT-82640K2: CCE on green codeKT-82684"Don't know how to compile annotation value ERROR_EXPR" on incorrect array literal in annotation default argumentsKT-81948K2: ClassCastException: "java.lang.String cannot be cast to java.lang.Void" when calling@NullableJava functionKT-82788false-positive duplicate JVM class name error in IJ monorepoKT-82841"kotlin.NoWhenBranchMatchedException" inwhenwith!ischeck & non-sealed class in the middle of hierarchyKT-82844"when" with no branches does not evaluate subject (side effects ignored)KT-81625Incorrect empty parameters parsing (comma is highlighted in red)KT-81193K2: SOE fromAbstractTypeApproximator.approximateToSuperTypewith local enum classKT-65059Stack overflow when typechecking an Elvis expression with deeply generic valuesKT-82555@Deprecated(HIDDEN)` objects not skipped when resolving qualifiersKT-82737Leaked type variable in diagnostic when top-level lambda with uninferred type parameter has non-functional expected typeKT-78019Change K1 API deprecation level from Warning to ErrorKT-82683K2: FIR2IR: compile-time JVM codegen failure on an argument of function subtype for a KSuspendFunction parameterKT-82671Do not report ignorability mismatch on override/actualization if the function returns Unit typeKT-82506Misleading compilation warning: "This class is not recommended for use in Kotlin. Use 'java.util.Map' instead"KT-52498Test privateSuperType.kt is failing with caches enabledKT-82336Header mode: Cannot infer argument for type parameter TKT-69326Inference chooses controversial order to fix variablesKT-82545Handle data class with extra components in migration warning for name-based destructuringKT-82303Improve UNSUPPORTED_FEATURE message when compiler argument has a parameterKT-81866K2: False positive ILLEGAL_RESTRICTED_SUSPENDING_FUNCTION_CALL caused by smart-casted@RestrictsSuspensionreceiverKT-13412Improve error message on callable reference with expression of nullable typeKT-82466KotlinIllegalArgumentExceptionWithAttachment when return is used in explicit delegation expressionKT-82454Local types aren't approximated in public declaration typesKT-82487False positive REDUNDANT_VISIBILITY_MODIFIER inside private classKT-82369[K2 REPL] Crash in the serialization plugin backend with "unable to transform declaration"KT-82243Usage of nested type aliases is forbidden despite the feature flagKT-62900K2: Expected expression to be resolved during Fir2IrKT-81941IllegalArgumentException: class org.jetbrains.kotlin.psi.KtValueArgument is not a subtype of class org.jetbrains.kotlin.psi.KtExpression for factory POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATIONKT-80741Fix rendering of inner classes with generic outer classesKT-82331Do not propagate context parameters from classes to constructorsKT-77276K2: Wrong scope for annotation arguments for the parameters of a secondary constructor headerKT-77275Inconsistency between scopes for primary/secondary constructor headersKT-15152Improve error message for unresolved reference for delegation specifier and primary constructor callKT-81498Make Kotlin/Native stdlib in distribution reproducibleKT-81408Allow local-variable-target annotations on destructuring declarationsKT-82012Annotations without parentheses on full form of name-based destructuring don't workKT-81915Exception when analysing 'when' expression with annotated expression as a subjectKT-78364Static methods are not generated for companion object JvmStatic property accessors with JvmExposeBoxedKT-81838Prohibit usage of nested type aliases (from lib) for sources with LV < 2.3KT-81357Forbid compilation of code with explicit root_ide_package in CLI modeKT-73138K2: "Assignment type mismatch" when class name is underscore_KT-82169Add quotes to message of WRONG_NUMBER_OF_TYPE_ARGUMENTSKT-78386JvmExposeBoxed (with no name) + JvmOverloads + JvmName produces ambiguityKT-78358Propagated JvmExposeBoxed annotation doesn't copy JvmName argumentKT-81699Move native klib compilation to a separate moduleKT-81692Decouple compilation of Native klib from the Native backendKT-80673Consider forbidding/minimizing usages of ClassId.isLocal and CallableId.isLocalKT-81376False negative UNEXPECTED_TRAILING_LAMBDA_ON_A_NEW_LINE & bad positioningKT-81946false-positive JAVA_CLASS_ON_COMPANION in case of an explicit companion referenceKT-74461K2: Render function types nicelyKT-81875NCDFE: kotlinx/coroutines/internal/intellij/IntellijCoroutines at :compiler:multiplatform-parsing:jvmTestKT-49722Report NOT_YET_SUPPORTED_IN_INLINE for inherited default parameters with inline functionKT-81913Inapplicable candidate when vararg-adaption for callable reference might be used (array parameter)KT-81841Inapplicable candidate when vararg-adaption for callable reference might be used (generic parameter)KT-39697"Cannot infer type parameter" in map with java static or global method referenceKT-81896Improve RedundantCallOfConversionMethod inspection for@UnsafeNumberannotated typealiasesKT-66413Incorrect line mapping in suspendable code before suspend call without parametersKT-80525Update IntelliJ SDK dependency to 251.27812.49KT-81808Setting hasDefaultValue = true in irValueParameter() crashes the compilerKT-78927False positive 'USELESS_JVM_EXPOSE_BOXED'KT-81703Drop obsolete K1 frontend code from Kotlin/NativeKT-81698DecoupleSpecialBackendChecksTraversalfrom Native backendKT-81687Different LightTree and PSI outputs when annotated class-like declaration is used as an expressionKT-81302False positive: Type Mismatch caused by context parameters, lambdas, and genericsKT-81584IAE "Collection contains more than one matching element" in FirElementSerializer on contextual property with same name as primary value class propertyKT-77237JvmExposeBoxed breaks compilation with a secondary constructor with value classKT-81262False positive: Access declaration type exposure: during access to public function class from internal inline declarationKT-80112Kotlin Debugger: “Cannot find local variable” on evaluating default lambda inside inline functionKT-76806K2: AIOOBE in FirEqualityCompatibilityCheckerKT-81693Introduce lightweight versions of KonanConfig and PhaseContextKT-72446K/N: inline function's default values aren't lowered with cachesKT-81521Anonymous function in context parameters breaks parserKT-80853Class reference in context parameters breaks parserKT-81441Missing type checks when class has deeply generic supertypeKT-79116Wrong parameter arguments mapping (compiler skips empty arguments)KT-81422False negative in full-form name-based destructuring: annotations before val/var not rejectedKT-80652K2: USELESS_IS_CHECK is not detected inwhenKT-80049MangleERROR_TYPEs in diagnostics reported to userKT-73786Evaluator: cannot evaluate inline methods with reified parameterKT-75828Store backing field/delegate annotations and extension receiver annotations in metadataKT-74572Context parameters: contracts don't work with context parametersKT-42824FIR: false INAPPLICABLE_CANDIDATE when using in variance on a Java classCompose compiler
b/481953005,b/481769383Cache stability inference results during sessionb/481735904Fix Compose codegen crash in inline functionb/479646393Add groups to inline functions with two or more inline parametersb/458234821Disable Compose K1 tests on CIb/456948687Force resolution of declarations when looking up SAM functions in FIRb/445426829Add a diagnostic forkeycall with no argumentsIR. Actualizer
KT-82418KMP Separate Compilation: NPE caused by actualization of NsCalendar.getEraKT-82313ACTUAL_ANNOTATION_CONFLICTING_DEFAULT_ARGUMENT_VALUE checks throwconflicting values in expected and actual annotationsIR. Inlining
Fixes
KT-82017[Inliner] Inline function overrides abstract method with default valueKT-80814[IR Inliner] Space: jsBrowserProductionWebpack task failed with HookWebpackErrorKT-83280SplitLibrarySpecialCompatibilityChecksTestinto pure JS and pure Wasm testsKT-81766K/N: Recursive inline expect/actual causes StackOverflowErrorKT-80953[Inliner] Eliminate excessive IMPLICIT_CAST after IR Inliner on 2nd stage.KT-79899[IR Inliner] Split single-module tests havinginline funinto filesKT-83148KLIB inliner: Make both "inliner" language features to require Api Version = 2.3KT-80791classFunctionsAndFieldsWithCrossModuleInliner fails per-file with cross-module inlinerKT-80696Can not get instance of singleton 'Obj': No class found for symbolKT-82065IR inliner: Inline function's default value argument may get wrong offsets in a temporary variableKT-81753Review diagnosticReporters usage in pre-serialization loweringsKT-80793TestfriendDependencyWithCrossModuleInlinerfails per-file with cross-module inlinerKT-80698[IC][WASM] Mismatched file statsKT-80697[IC][JS per file] Mismatched rebuilt modulesKT-80660[Inliner] Bodyless functions should not be inlined at 1st compilation stageKT-79064Try to get rid ofTypeOfPostProcessorIR. Interpreter
KT-82161Enable Enum.name and KCallable.name to constant evaluationKT-80646Enable unsigned conversion functions when bootstrapped compiler is availableIR. Tree
KT-82765Kotlin/Native: Internal compiler error when building DFGKT-82829IR deserializer: Don't deserialize any cinterop fake overrides from KlibsKT-83236PeopleInSpace_mpp compilation error: The symbol table has been sealedKT-81154[IrValidator] Fine-tune IrVisibilityChecker on 2nd stageKT-80243Support Name Based Destructuring in loop with withIndex()KT-79436KLIB stdlib symbols loading: Drop all functions from SymbolFinder except for loading the whole collection of (potentially unbound) symbols by nameKT-79435KLIB stdlib symbols loading: Load symbols and and filter/map them lazily in BuiltinSymbolsBase hierarchy when accessed by IRKT-69082Migrate maps of IR elements to IR attributesKT-67457Introduce a way to simplify IR lowering phase creationJVM. Reflection
New Features
KT-22265Support for inherited annotationsPerformance Improvements
KT-84600Performance regression around Kotlin properties JVM reflection during instantiationFixes
KT-83608Kotlin-reflect: "Unknown origin of public abstract operator fun invoke(p1: P1, p2: P2): R"KT-57357Reflection: "KotlinReflectionInternalError" when usingcallByon constructor that has inline class parameter with nullable valueKT-83361"KotlinReflectionInternalError: Type parameter not found: 0" on super types with Kotlin 2.3.0KT-42199"KotlinReflectionInternalError: Unknown origin of public abstract operator fun invoke" on function reference to FunctionN.invokeKT-81024Reflection: New KType implementation fails on arguments comparison for a Nothing type parameterKT-83067Reflection: IAE "argument type mismatch" on callBy with vararg of generic type parameter with primitive upper boundKT-82699Reflection: incorrect behavior of KFunction.isExternal for Java native methodsKT-82350Reflection: incorrect behavior of KType.javaType on a type obtained from KType.withNullabilityKT-29203KType.javaType always returns void class for local delegated propertyKT-81899Reflection: incorrect javaType for local delegated property setter return typeKT-82093Reflection: IAE from defaultType for inner class of generic classKT-77312KotlinReflectionInternalError: "Container of deserialized member is not resolved" on computing type parameter captured in a local delegated propertyKT-82316Reflection: type parameters of top-level declarations behave incorrectlyKT-81987Reflection: error when calling function in inline class with inherited default valueKT-81870Reflection: Error when calling function with default parameters and extension receiverKT-81880Reflection: Error when calling function with default & context parametersKT-81907Reflection: incorrect result when calling function with default values and context parametersKT-81859Reflection: do not use descriptors in ValueClassAwareCallerKT-81854Reflection: incorrect type for instance receiver of inner class constructorKT-81855Reflection: IAE "object is not an instance of declaring class" on function with context and extension receiver of inline classKT-81843Reflection: NPE on accessing property accessor returnType for Java fieldKT-81588Reflection: KotlinReflectionInternalError "Inconsistent number of parameters" on calling contextual declaration with value class type in the signatureKT-81111Reflection: suspend function types are loaded incorrectly by the new implementationKT-81206Reflection: non-substituted Function type in suspend function supertypesKT-81804Reflection: remove support for multi-field value classesKT-81664Reflection: IAE "argument type mismatch" on calling member extension with value class in the signatureJavaScript
New Features
KT-83454K/JS: Support ES6 classes in js() callsKT-83455K/JS: Support ES6 default function arguments in js() callsKT-83453K/JS: Support ES6 concise methods in js() callsKT-83457K/JS: Support ES6 spread operators in js() callsKT-83456K/JS: Support ES6 rest function parameters in js() callsKT-54504K/JS: Support ECMAScript tagged string templatesKT-82327KJS: Export parameter names of function types if present in .d.ts filesKT-82371KJS: Generate more concrete TypeScript for members of an uninhabited enumPerformance Improvements
KT-16379KotlinJs - ArrayList get is now slowFixes
KT-64951Kotlin-Multiplatform does not allow JSExport of expectKT-83528K/JS: Array holes in array literals are ignored in the new js() parserKT-84134KJS/CMP: "IrLinkageError: Function 'get' can not be called: No function found for symbol"KT-65802How to implement Interfaces in Javascript/Typescript?KT-83830Relocate org.antlr.v4 to an internal packageKT-83572KJS/Wasm: Cannot access@JsModule-declared class from non-modular projectKT-83930Kotlin/JS: JsStatic on property of interface companion generates incorrect d.tsKT-70986Add Swc into the compilation pipeline of Kotlin/JSKT-78742Investigate the usage of the ANTLR-generated parser for thejsfunctionKT-60554KJS: rethink JS_*_NAME_CLASH diagnosticsKT-82552KJS: "Non-abstract class does not implement inherited abstract member from class" errors in generated .d.tsKT-82652KJS: Exported abstract inner classes can be constructed from TypeScriptKT-82542KJS: Inner class can be constructed from TypeScript without passing an outer instanceKT-82499KJS: Omit parameters in private constructors in .d.ts filesKT-41082KJS: 'Reflection is not supported on JavaScript target, so you won't be able to read this annotation in runtime' warning is inconvenient and misleadingKT-82279KJS: DCE removes external members overrides without reasonKT-52800KJS / IR: sealed interface with nested data classes not accessibleKT-67460Use new lowering phase creation API in JS backendKT-82667Kotlin/JS: ESM TypeScript definitions for exported nested Enums do not compileKT-82553KJS: Incorrect .d.ts generated for generic inner classesKT-82263Implement exporting top-level properties in Analysis API-based TypeScript ExportKT-82362KJS: Incorrect types generated in .d.ts for JsName-annotated enum entryKT-82262Implement exporting top-level functions in Analysis API-based TypeScript ExportKT-82144K/JS: 'meta' identifier usage in js() inline calls prevents expression from parsingKT-82149K/JS:newcalls without arguments produce exceptions in js() inline callsKT-81730Optimize suspend functions compilations via JS generatorsKT-79243[JS] Drop K1-specific tests, testrunners and test directivesKlibs
New Features
KT-83101Implement experimental KLib ABI dump parserFixes
KT-82586Export in previous version (JS, Wasm): adjust the checker for incompatible Kotlin stdlib/compiler pairsKT-84273[Klib] Added IrOffsetsChecker broke backward klib compatibilityKT-80910[Klib] Ensure serialized source coordinates are correctKT-81955[JS] Support testing of forward compatibility with export in previous versionKT-81957[JS] Create a common Gradle test taskKT-82736False positiveIR_PRIVATE_CALLABLE_REFERENCED_BY_NON_PRIVATE_INLINE_FUNCTION_ERRORon referenece to local declarationKT-82758[PL] Change the behavior of getting name of removed propertyKT-81470Simplify inline function deserialization after the bootstrap updateKT-81466Enable KlibAnnotationsInMetadata by default in LV 2.5KT-82208K/Wasm: allow using newer stdlib with older compilerKT-83328kotlin-wasm-benchmarks: Compilation errors due to missing KLIB dependenciesKT-83071Failure on Native NightlyKT-78365[PL] Change the behavior of getting name of removed functionKT-81977Klib compatibility tests: Implement sanity checksKT-81410Klib metadata: migrate to using the common annotations instead of klib-specific extensions in kotlinx-metadata-klibKT-82577Don't use KLIB resolver in the KLIB toolKT-82213IR linker doesn't complain when a private value class constructor is used from another moduleKT-81003KLIBs: Eliminate excessive implicit casts in common prefix on the 1st stageKT-81670K/N: Many Section still use none cacheable zip when Xklib-zip-file-accessor-cache-limit flag setKT-81954[JS] All forward compatibility tests failKT-81709[KLIB Reproducibility] KLIB zip file generation is non-deterministic due to unsorted file system traversalKT-81474[Tests][Klibs] Migrate Klib evolution tests to PL tests engineLanguage Design
KT-83009Exposing of non-exportable API from interfacesKT-73502Context parameters: it is not possible to declare local function with a contextLibraries
New Features
KT-81997Method to create a detached copy of a Map entryKT-79093Expose FirResolvedStatus.hasMustUseReturnValue in kotlin-metadataPerformance Improvements
KT-75801Optimize Array to list conversion using array copy instead of a loopKT-82038K/N: iterating over Array.asList is slower compared to ArrayListFixes
KT-78115Investigate the current situation with 22kotlin.contextstandard library overloadsKT-82363AddassertIsto the list of ignorable functionsKT-80666K/N and K/Wasm: Regex: unassigned category is excluded from other charsKT-80665K/N and K/Wasm: Regex: unicode category Symbol matches some punctuation marksKT-78089K/N: Regex: Quantified groups matching is causing a stack overflowKT-82783HashMap (K/N, Wasm), MapBuilder (all targets) duplicate keysKT-52400Deprecate@BuilderInferenceKT-80786Annotate kotlin-stdlib-jdk7/8 with@IgnorableReturnValueKT-83181Remove@IgnorableReturnValuefrom contract DSL functionsKT-82033Array<Array>.flatten fails with obscure error when total length exceeds List's size limitKT-83290Remove unnecessary ExperimentalTime annotation from Uuid functionsKT-83026Specify compareTo behavior for BooleanKT-82868Restore accidentally deleted JS-specific note in ArrayList documentationKT-81563Document kotlin.collections.HashMap and HashSetKT-81562Document kotlin.collections.ArrayListKT-60535Mark SubclassOptInRequired and RequiresOptIn with MustBeDocumentedKT-64649Add explanation to "A compileOnly dependency is used in the Kotlin/Native target" warning messageNative
KT-83542Switch the default GC back to PMCS in 2.3.20-RCKT-82387Kotlin <-> Xcode compatibility issueKT-75806KN Compiler with debug build can not produce executable with debug infoKT-81828Update exception messages regarding disabling native cacheKT-81495Consider making Kotlin/Native distribution compiler cache reproducibleKT-81501Make Kotlin/Native distribution runtime .bc and fingerprint reproducibleKT-80790'Argument list too long' error when using dynamic_cachesKT-48566ExceptionInInitializerError when configuring Gradle project with kotlin-multiplatform plugin on a host unsupported by Kotlin/NativeNative. Build Infrastructure
KT-82886KonanTarget's clinit causes deadlockKT-81345Temporary turned off Swift Export execution testsKT-80869Extract per-module test generators for Native testsKT-82028Kotlin/Native: move runtime building flags to runtime building codeKT-81500Make Kotlin/Native distribution shared libraries reproducibleKT-72011Kotlin/Native: consider building platform libraries with bootstrap compilerKT-81666Kotlin/Native: build stdlib with the bootstrap compilerNative. C and ObjC Import
KT-79741Native: implement type checking against Objective-C protocols withoutprotocolGetterKT-83039Native: mark header-defined functions and globals unavailable with-Xccall-mode directKT-82200Native: implement type checking against Objective-C protocols withobjc_runtime_namewithoutprotocolGetterKT-82669Kotlin/Native: cinterop tests failure with no class for metaclassKT-79742Native: import C global variables without C wrappersKT-81937Native: switch cinterop to-Xccall-mode bothby default for custom cinterop klibsKT-81548Native: compiler doesn't sanitize CCall.Direct symbol names in C stubsKT-81538Native: InteropBridgesNameInventor doesn't handle legitimate '$' characters in function namesKT-81017Native: compiler can't call CCall.Direct with '$' in the symbol nameNative. ObjC Export
KT-82160K/N: bridge for fake override is not built but requestedKT-83736Objective-C export withobjcExportBlockExplicitParameterNamesgenerates invalid block signature when lambda parameter is namedidKT-83014Native: experimental support for generating an NS_ENUM in addition to an Objective-C class for Kotlin classesKT-76637ObjCExport: K1 + K2 integration testNative. Runtime
KT-82077Kotlin/Native: in runtime make main module depend on mm moduleNative. Runtime. Memory
KT-82635Enable CMS GC by default in 2.3.20-Beta1KT-83470Potential race condition in TryRequestThreadsSuspension due to initialization orderKT-83549Provide an experimental Platform property which returns information about object allocation modeKT-83535Typo in out-of-memory error messageKT-81152Kotlin/Native: deprecate isMemoryLeakCheckerActiveKT-81156Kotlin/Native: deprecate forceCheckedShutdownNative. Swift Export
New Features
KT-82908Swift Export: bridges for FT should be recursiveFixes
KT-82054Swift Export:private setis ignored by swift exportKT-83499Swift Export: trampoulines w/ varargs results in a broken swift codeKT-83655Typealias to a closure receiving a closure results in broken swift codeKT-82053Swift Export: Returning generic on top level function produces uncompilable codeKT-80971Swift Export: Support exception throwingKT-83141Swift Export: suspendable covariant functional typeKT-82907Swift Export: attributes are not printed for parameters of closuresKT-80970Swift Export: Support cancellationKT-82726Swift Export: filters out wrong module for coroutinesKT-81591Custom type translation rules in Swift exportKT-81270K/N - Build fails when exposing suspend functionsTools. BCV
KT-80938Binary compatibility validation: can't exclude container types of Repeatable annotations byfilters.excluded.byNamesKT-83484Create fat-jar artifact for abi-tools [ABI Validation]KT-80747Refactor API of ABI tools [ABI Tools]Tools. Build Tools API
New Features
KT-80681BTA: introduce a special argument for passing compiler pluginsKT-80338Kotlin CRI generationKT-78198BTA: implement basic metrics collectionKT-79975BTA: add ability to cancel build operationsKT-81790[BTA] Make build operations and configuration immutable after executeKT-82702BTA: Allow collecting compiler lookups in non-incremental modeKT-81847Add CRI <-> BTA integrationKT-81845Add CRI <-> Maven integrationFixes
KT-84577BTA: API 2.3.20 incompatible with compiler 2.3.10KT-82682BTA: reading non-nullable arguments may return null or throw NPEKT-81729BTA: loading from a classloader without implementation fails with CNFE instead of error with explanationKT-83971BTA: OperationCancelledException cannot be thrown properly from isolated classloaderKT-82167Add BuildTimeMetric for the CRI data generationKT-81846Add FUS for CRI usage in Gradle / MavenKT-82399[BTA] JvmClasspathSnapshottingOperationImpl doesn't use Option defaultsKT-82039BuildEvent compilation error missing with KGP 2.3.0-Beta1KT-81887Implement the CRI lookup data generationKT-81886Implement the CRI data serializationKT-81780Add Gradle <-> CRI integration testsKT-81645BTA prints unreadable version in "option available only since" error (shows KotlinReleaseVersion@hashinstead of 2.x.y)Tools. CLI
KT-83044Report redundant CLI arguments when they have no effectKT-83202Report all errors during parsing CLI arguments instead of a single oneKT-73320Migrate the main JS CLI pipeline to the phased structureKT-81898Introduce a CLI option to disable source file sortingKT-73606Provide a unified interface for managing the reporting of compiler warningsKT-48419Using a@RequiresOptInAPI that does not exist should have an option to not output a warningKT-81861Introduce a mechanism that allows suppressing CLI diagnosticsKT-82321KMP Separate Compilation: Common fragments are missing forward declaration symbol providersKT-81551Introduce an experimental CLI option for enabling local type aliasesKT-74196Remove patched copy of com.intellij.util.lang.JavaVersion from the Kotlin repoTools. CLI. Native
KT-64509Refactor Kotlin/Native compiler setup: run FE without KonanConfigTools. Compiler Plugin API
KT-83823DeprecatePreprocessedVirtualFileFactoryExtensionKT-82809[FIR][IC] New containingFileName parameter API is not actually compatible with ICKT-46709IR plugin lookups don't work as expected for expect class with actual typealiasKT-82518Disable automatic body generation of the plugin-generated callablesKT-82159[FIR] Automatically add expressions to properties or functionsKT-58886K2: compiler plugin generated top level declarations cause AssertionError on K/JS and K/NativeTools. Compiler Plugins
New Features
KT-71893Support@Builderlombok annotation on methodsKT-28594Add a 'jpa' pre-defined flavor to the allOpen compiler plugin.KT-81604Lombok Kotlin compiler plugin and -Werror: Unable to ignore warning for the plugin applianceFixes
KT-83119Lombok. canEqual is not available from kotlin for a class with@DataannotationKT-83334Lombok. Builder function is unavailable for a generic classKT-83063Lombok: Setter/getter is not available with a protected access levelKT-83217Lombok. With method is available for the static fieldKT-83120Lombok. A constructor is available for a class with an existing constructor and@Data/@ValueannotationKT-83256Lombok. Setter is available for non-final fields if@Valueand@Data/@Setterare used togetherKT-83251Lombok. Constructor from@Valueincludes fields that are initialized in declarationKT-83252Lombok. Class marked with@Valueisn't finalKT-83085Lombok: getter/setter is available for a static field if class is annotatedKT-83078Lombok: getter and setter are not available for a static Java fieldKT-82341Migrate official compiler plugins to IC-safe reference... APITools. Compiler plugins. Compose
KT-84218[2.3.20-Beta1] "IllegalStateException: no implementation for FUN MISSING_DECLARATION" during bitcode loweringKT-84055Reference to lambda in lambda in function 'TextField' can not be evaluatedTools. Compiler plugins. Serialization
KT-82351Migrate kotlinx.serialization to IC-safe reference... APIKT-76949Serialization: "IllegalStateException: Serializer for element of type kotlin.Any has not been found" on custom serializer forMap<String, Any?>KT-73107Serialization: "IllegalStateException: Serializer for element of type kotlin.Any? has not been found" with star projectionTools. Gradle
New Features
KT-79389Add allopen plugin + JPA preset to kotlin.plugin.jpaKT-78200Gradle: enable JVM compilation through BTA by defaultKT-81844Add CRI <-> Gradle integrationPerformance Improvements
KT-84152Memory Leak and OOM Errors in Kotlin Gradle Plugin 2.3.20-Beta2 within-processexecution modeFixes
KT-80186Remove usage of deprecated Gradle API Project.container(...)KT-78754KGP: Remove usages of isVisible/setVisibleKT-80356Compatibility with Gradle 9.2.0 releaseKT-78763Compatibility with Gradle 9.1.0 releaseKT-83316[BTA] Build Reports missing information when JVM compilation uses Build Tools APIKT-82885Run tests against Gradle 9.3.0KT-83125Deprecate out-of-process compilation modeKT-82323Deprecate LanguageSettings.enableLanguageFeature DSLKT-83323Run integration tests against Gradle 9.2KT-82884Compile against Gradle API 9.3.0KT-78104Deprecate CleanableStore infrastructureKT-80096Strange "Inconsistent JVM Target Compatibility" warningKT-82715Declaring dependencies using multi-string notation has been deprecatedKT-83161CRI: it is not clear that CRI generation requires BTA being enabledKT-82717Specifying 'org.gradle.java.installations.auto-detect' as a project property on the command line has been deprecatedKT-81830Create autogenerated kotlin version constants to be used with disableNativeCache DSLKT-83322Compile against Gradle 9.2 APIKT-81831Verify Problems API implementation with Gradle guidelinesKT-80120Support colored value for --console command in Gradle 9.1KT-81400ToolingDiagnosticFactory: check if documentationLink set multiple timesKT-83070The KGP api reference is missing a descriptionKT-82459Improve iOS simulator boot implementationKT-80008Track cross compilation status from project dependenciesKT-78764Compile against Gradle 9.1 APITools. Gradle. BCV
KT-80674Rename tasks to avoid usinglegacyword [ABI Validation]KT-80614Add dependency on abi check from gradle's check task [ABI Validation]KT-80827Delete DSL for working with dump variants [ABI Validation]KT-80823Stabilize DSL for filtering [ABI Validation]Tools. Gradle. Cocoapods
KT-80641EXECUTABLE_DEBUG_DYLIB_PATH problemKT-80644Cocoapod plugin builds a synthetic project for "generic/platform=iOS Simulator"Tools. Gradle. JS
KT-84772Bundled yarn.lock for kotlinWasmToolingSetup does not include@swc/helpers@0.5.17KT-82946Js, Wasm: Upgrade NPM dependenciesTools. Gradle. Multiplatform
New Features
KT-77258Query status of cross-compilation or compilation taskKT-81849Replace kotlin-test-common and kotlin-test-annotations-common with just kotlin-testFixes
KT-83917compileCommonMainKotlinMetadata fails in CMP core repository with Kotlin 2.3.20-Beta1KT-82090Kotlin JVM + Android Shared Source set fails Import with the Project Isolation enabledKT-81973NPE with Cannot invoke "java.util.List.get(int)" because "path" is null in KMP + Android projectKT-79257Consider deprecating and removing kotlin.kmp.isolated-projects.supportKT-81944Legacy KMP Android uses wrong configurations to infer common dependenciesKT-83687Revert deprecation of 'androidTarget' for AGP lower than 9KT-81536"Couldn't resolve dependency in 'commonMain' for all target platforms" in 2.2.20-Beta2KT-81724IntelliJ successfully resolves imports that are not actually available in the given moduleKT-79073compileTest* tasks pass separateCompilation parameters but don't behave accordinglyKT-71130Enable Isolated Projects support by default for KMPTools. Gradle. Native
KT-84759iosX64 should not be marked as deprecated in Kotlin Gradle DSLKT-83598KotlinNativeDownloadTask build caching is unsafeKT-80715Deprecatekotlin.native.cacheKindand introduce DSL insteadKT-83353DisableNativeCache breaks up-to-date checks for non-cacheable K/N targetsKT-81443ConfigurationCacheErroron Linux arm64 due to disabled iOS targetsKT-82970Warning about disabled K/N caches for non-cacheable targets is printed twiceKT-82786Warning about disabled K/N caches is displayed twiceTools. Gradle. Swift Export
KT-82727Swift Export: generated kotlin bridges don't see neighboring modulesTools. Gradle. Wasm
KT-82525K/Wasm: kotlinToolingSetup does not depend on package manager installationTools. Incremental Compile
KT-80483Incorporate IC lookups intoreference...methods ofIrPluginContextTools. JPS
KT-76927Switching from VAL to VAR does not trigger recompilation of usage in Kotlin-uses-KotlinKT-79362JPS/NoArg: Failed to build project with 'java.lang.NoClassDefFoundError: org/jetbrains/kotlin/com/intellij/psi/PsiElement'Tools. Kapt
KT-81691K2: KAPT: "ClassCastException: IrErrorTypeImpl cannot be cast to class IrSimpleType"KT-82338K2 KAPT: ISE "Cannot evaluate IR expression in annotation" on unresolved enum usageTools. Maven
KT-83565Maven: auto‑detect src/main|test/kotlinKT-79304Maven: Automatically add kotlin-stdlib dependencyKT-83111Add JavaVersion argument resolver for kotlin-maven-plugin-testKT-83112Add MavenVersion argument resolver for kotlin-maven-plugin-testTools. REPL
KT-82575[K2 REPL] Redesign frontend resolution for REPL snippetsKT-82741[K2 Repl] OOM inFirJavaElementFinderKt.collectAllDependentSourceSessionsTowhen rerunning the same cell multiple timesTools. Scripts
KT-81679Script explain: while loop explanation may lead to the hanging codeKT-81677Script explain: Contents of the if/when branches are not explainedKT-67063LauncherReplTest flaky on WindowsTools. Statistics (FUS)
KT-82877Add performance measurement for KLIB sizeKT-79576Included build subprojects produce FUS files with unknown_id when configuration cache is enabledspring-projects/spring-boot (org.springframework.boot:spring-boot-dependencies)
v4.0.6Compare Source
🐞 Bug Fixes
@Ssldon't work on@Beanmethods when using@ServiceConnection#50064@EnableEnversRepositoriesrather than configuring the JPA counterpart #50039📔 Documentation
🔨 Dependency Upgrades
❤️ Contributors
Thank you to all the contributors who worked on this release:
@GollapudiSrikanth, @MohammedGhallab, @bachhs, @dlwldnjs1009, @edwardsre, @kodama-kcc, @kwondh5217, @ppapaj, @quaff, @refeccd, @scordio, and @xxxxxxjun
v4.0.5Compare Source
🐞 Bug Fixes
@NestedConfigurationPropertywhen using constructor binding #49738@ConditionalOnWebApplicationto NettyReactiveWebServerAutoConfiguration #49695@GraphQlTestdoes not include@ControllerAdvice#49672📔 Documentation
🔨 Dependency Upgrades
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Joowon-Seo, @deejay1, @dlwldnjs1009, @kwondh5217, @ljrmorgan, and @quaff
v4.0.4Compare Source
⚠️ Attention Required
server.tomcat.max-part-counthas been increased from 10 to 50. This aligns it with Tomcat's own default and the default in Spring Boot 3.x. #49311🐞 Bug Fixes
@AutoConfigureWebTestClientprevents separate configuration of spring.test.webtestclient.timeout from taking effect #49344📔 Documentation
🔨 Dependency Upgrades
❤️ Contributors
Thank you to all the contributors who worked on this release:
@FBibonne, @answndud, @bbbbooo, @chandanv89, @giyeon95, @itsmevichu, @jayychoi, @l2yujw, @ngocnhan-tran1996, @qnnn, @quaff, and @sbrannen
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Renovate Bot.
e173231d9c65dbc91c68fix(deps): update all dependencies to v2.3.20to fix(deps): update all dependencies65dbc91c68661d45518a661d45518a9b51f719bb9b51f719bbdacdb6a91cView command line instructions
Checkout
From your project repository, check out a new branch and test the changes.