Changelog
Analysis API
KT-71907K2 debugger evaluator failed when cannot resolve unrelated annotationKT-57733Analysis API: Use optimizedModuleWithDependenciesScopes in combined symbol providersKT-69128K2 IDE: "Unresolved reference in KDoc" reports existing Java class in reference to its own nested classKT-71613KaFirPsiJavaTypeParameterSymbol cannot be cast to KaFirTypeParameterSymbolKT-71741K2 IDE. Classifier was found in KtFile but was not found in FirFile inlibraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.ktsinkotlin.gitand broken analysisKT-71942Need to rethrow Intellij Platform exceptions, like ProcessCanceledExceptionKT-70949Analysis API: "containingDeclaration" does not work on nested Java classes in K2 implementationKT-69736K2 IDE: False positive resolution from KDoc forvalueKT-69047Analysis API: Unresolved KDoc reference to extensions with the same nameKT-70815Analysis API: Implement stop-the-world session invalidation
Analysis API. Code Compilation
KT-71263K2 evaluator: Error in evaluating self property with extension receiver
Analysis API. FIR
Performance Improvements
KT-73017Analysis API:FirReferenceResolveHelper.getSymbolsByResolvedImportsearches for classes even when the selectedFqNameis a known packageKT-72025FileStructureElement: reduce redundant resolve
Fixes
KT-72148K2: KISEWA: Expected FirResolvedArgumentList for FirAnnotationCallImpl of FirValueParameterImpl(DataClassMember) but FirArgumentListImpl foundKT-66132K2: FirRegularClass expected, but FirFileImpl found | Containing declaration is not foundKT-72196K2. KMP. IllegalStateException: expect-actual matching is only possible for code with sourcesKT-72652FirProvider#getContainingClassshould supportFirDanglingModifierSymbolKT-73105Lazy resolve contract violation (BODY_RESOLVE from BODY_RESOLVE)KT-66261K2: Analysis API: "FirDeclaration was not found for class org.jetbrains.kotlin.psi.KtProperty, fir is null" with MULTIPLE_LABELS_ARE_FORBIDDEN K2 errorKT-72315K2. KIWA on usage of always-true OR in guard conditionKT-65707K2 IDE: unresolved calls of callables imported with typealias as qualifierKT-61516K2: Provide an LL FIR implementation forgetContainingClassSymbol(inFirHelpers)KT-72853Expected FirResolvedArgumentList for FirAnnotationCallImpl of FirContextReceiverImpl(Source) but FirArgumentListImpl foundKT-64215K2: do not resolve type annotations of receiver if it is used as an implicit return typeKT-64248K2: do not resolve type annotations of context receiver if it is used as an implicit return typeKT-72821Add assertion to diagnostic tests to check that all declarations have BODY_RESOLVE phase at the endKT-64056K2: K2: FirLazyBodiesCalculator shouldn't calculate annotation arguments on type phaseKT-71651K2 IDE: False positive NON_LOCAL_SUSPENSION_POINT in suspend function callKT-72164K2. IllegalArgumentException when pre and post increment are used simultaneously in assignmentKT-71174Illegal scope usedKT-72407FirImplementationByDelegationWithDifferentGenericSignatureChecker: FirLazyExpression should be calculated before accessingKT-72228K2: Reformat doesn't work in project with Kotlin2.0.21KT-72308getOrBuildFir returns null for this expression for plusAssign operatorKT-71348K2: KotlinIllegalStateExceptionWithAttachments: 'By now the annotations argument mapping should have been resolved' during code inspectionKT-72024FirClassVarianceChecker: Expected FirResolvedTypeRef with ConeKotlinType but was FirImplicitTypeRefImplWithoutSourceKT-71746K2 IDE.ISE: Zero or multiple overrides found for descriptor in FirRegularClassSymbol serializing/ExternalSerializerand red code on@Serializer(forClass) ` usage
Analysis API. Infrastructure
KT-72922KotlinFakeClsStubsCache project leakageKT-71988Improve scripts test coverage by LL FIRKT-64687K2: Analysis API: migrate AbstractFirLibraryModuleDeclarationResolveTest to kotlin repo
Analysis API. Light Classes
KT-66763K2: Get rid of context receivers in Analysis API and LL APIKT-71781SLC: migrate SLC from KotlinModificationTrackerService to KotlinModificationTrackerFactoryKT-67963K2: PsiInvalidElementAccessException on redeclaration of class with constructorKT-71407K2: Do not report@JvmFielddefault value as PsiField initializer in K2KT-72078K2 PSI change for constructor parameter with value class type
Analysis API. Providers and Caches
KT-73395Analysis API:JavaElementPsiSourceWithSmartPointercontains strong references to PSIKT-72390Kotlin project full of red codeKT-72388KaFirStopWorldCacheCleaner: Control-flow exceptionsKT-72644"PSI has changed since creation" reason is misleading
Analysis API. Standalone
KT-70346Analysis API Standalone: Remove the custom class loader option in Standalone session creation
Analysis API. Stubs and Decompilation
KT-69398K2 IDE: SOE on editing top level private variable nameKT-72897Analysis API: Smart PSI element pointers forKtEnumEntrystubs cannot be restoredKT-71565KtClassOrObject should use isLocal from greenStub
Analysis API. Surface
New Features
KT-70301Analysis API: 'KaSamConstructorSymbol' does not allow to find the constructed SAM typeKT-68236Analysis API: addisExternalproperty for KtPropertySymbolKT-68598Analysis API: missed getClassLikeSymbolByClassId API
Performance Improvements
KT-60486Analysis API: optimize KaExpressionTypeProvider.returnType for simple cases
Fixes
KT-72099Analysis API: implement an API to retrieve default importsKT-70356analyzeCopy with IGNORE_SELF cannot find private membersKT-66783Analysis API:KtFirSymbolProvidercreates symbols when given PSI from unrelated modulesKT-72937Migrate KaFirReceiverParameterSymbol to KaFirSymbol/KaFirKtBasedSymbolKT-70243K2 IDE: PsiMethod.callableSymbol returnsnullfor constructorKT-66608SupportOperatorFunctionChecks#isOperatorin AAKT-73068Analysis API: AKaFirJavaFieldSymbolfor a static Java field is open instead of finalKT-73055Get rid of the deprecated Analysis API APIKT-65065ProvideKtTypeReference#getShortTypeText()KT-63800AA: this reference shortener doesn't simplify labelKT-72793Analysis API: 'expressionType' returns raw type for typealiased constructors callsKT-72658resolveToCalldoesn't work forKtSafeQualifiedExpressionKT-69930K2 IDE: Kotlin/JS project: ISE: "Unsupported type DYNAMIC_TYPE"KT-71373Make KaSessionProvider the internal APIKT-71869KaClassSymbol.superTypes for kotlin.Any contains kotlin.Any itself (K1-only)KT-64190K2 IDE: Analysis API: KDoc link leads to a function instead of interfaceKT-72075defaultTypeshould be available forKaClassifierSymbolinstead ofKaNamedClassSymbolKT-72002Analysis API: psi KaTypeParameterSymbol for default Java constructor is null
Apple Ecosystem
KT-66894XCFramework task fails when name passed to xcframework DSL is different from framework's nameKT-65675XCFrameworkTask produces an xcframework with mismatched casing in embedded frameworks
Backend. Native. Debug
KT-73306Native: add a way to specify a dir for the debug compilation unit fileKT-68536Native: bridges and trampolines affect stepping in the debuggerKT-72398Native: useDW_AT_trampolineforobjc2kotlin_*functions instead ofKonanHookinkonan_lldb.py
Backend. Wasm
KT-72232Wasm, IC: Compilation exception on renaming of fileKT-72223Compiler generates an invalid glue-code for externals with backquoted identifiersKT-73015[Wasm, IC] Implement possibility for readonly IC cacheKT-71763K/Wasm: compiler generates incorrect code for is check on JsAnyKT-72156custom-formatters.js exists in JAR after publishToMavenLocal but not in the published artifact in Maven publicKT-71037[Wasm, IC] Investigate how make kotlin.test not fully loaded in IC
Compiler
New Features
KT-67034Warning when a property hides a Java field from superclassKT-71092Native: Write out used dependenciesKT-71094Kotlin/Native incremental compilation: fail compilation if cache build failedKT-71569Improve diagnostic precision for OPT_IN_ARGUMENT_IS_NOT_MARKER
Performance Improvements
KT-45452K/N optimization: inline simple functions that aren't marked withinlinekeywordKT-64898K2: toFirProperty call in PsiRawFirBuilder forces AST loadingKT-71673Consider making EnhancementSymbolsCache. enhancedFunctions using simple cacheKT-71973KtPsiUtil#getEnclosingElementForLocalDeclaration shouldn't iterate over directories
Fixes
KT-72222Context parameters parsing & resolution part 1KT-71767Generate default compatibility bridges in -Xjvm-default=all/all-compatibility modeKT-70233Implement a deprecation error for FIELD-targeted annotations on annotation propertiesKT-72996false-positive unresolved reference error on an overloaded callable reference in a lambda return position on the left-hand size of an elvis operatorKT-68131K2: build Grazie monorepo main branchKT-73339K2: "VerifyError: Bad type on operand stack" because of missing implicit cast on generic field receiver with star projectionKT-72585K2: Compilation failure when upgrading to Kotlin 2.0.20+: Cannot replace top-level type with star projection: SKT-73202Annotation on getter breaks the smartcast stabilityKT-67480K/N: a separate inlining phase after the loweringsKT-73399compile-time JVM codegen failure on a KProperty argument of a KSuspendFunction parameterKT-72281K/N: "Failed to wait for cache to be built"KT-73049Kotlin Debugger: CNFE on evaluating local function inside lambdaKT-72725KMP: Unsupported actualization of inherited java field in expect classKT-72814FIR: don't use function references in FirThisReferenceKT-73143Context parameters resolution leftoversKT-71425IR Inliner: investigate return type of an inlined blockKT-71649K2: Put operator on mutableMap<T?, V>() causes crashes on null keyKT-72930K2 IDE / Kotlin Debugger: ISE “couldn't find inline method” on evaluating internal inline function from main module in test moduleKT-73095K2: "Failed to find functional supertype for ConeIntersectionType"KT-70366K2: "KotlinIllegalArgumentExceptionWithAttachments: Failed to find functional supertype for class "KT-73260Rename context receivers to context parameters in frontendKT-73375K2/JVM: -Xuse-type-table generates incorrect metadata for local delegated propertiesKT-72470Annotations on effect declarations are unresolvedKT-73146Context parameters CLI & diagnosticsKT-71226K2 Evaluator: Code fragment compilation with unresolved classes does not fail with exceptionKT-72409False negative "Type parameter is forbidden for catch parameter"KT-72723K2: Replace unused FIR properties required by inheritence with computed propertiesKT-73251Warn users about removal of context classes and constructorsKT-72246Exception from FirReceiverAccessBeforeSuperCallChecker on red codeKT-47289No error on companion object inside inner class in enum constructor callKT-46120No error reported when Java interface method is implemented by delegation to Java class where corresponding method has different generic signatureKT-72746K2: No IR overriddens generated for Nothing.toStringKT-70389K2: StackOverflowError at org.jetbrains.kotlin.fir.resolve.calls.CreateFreshTypeVariableSubstitutorStage.shouldBeFlexibleKT-72537[FIR Analysis] 'IllegalArgumentException: source must not be null' when typing '++++' (four pluses)KT-73010K2: RefactorDispatchReceiverMemberScopeTowerLevel.processMembersKT-72924Extension property declaration shouldn't be possible in whenKT-72618Cannot define operator inc/dec in class contextKT-72826UNUSED_LAMBDA_EXPRESSION compiler warning missing in K2KT-25513Report compilation error when in generated JVM bytecode there is a need for CHECKCAST to inaccessible interfaceKT-73153K2: Standalone diagnostics on type arguments are not reportedKT-71252JVM: Set the proper visibility to backing fields of lateinit propertiesKT-73213K2: Initialize outer type parameter refs for inner (local) type aliases during FIR buildingKT-73215Set up isInner property for inner type aliases during FIR buildingKT-73088K2: Introduce NestedTypeAliases experimental featureKT-73192K2: FirJavaField has incorrect modalityKT-60310K2: introduce FirErrorContractDescription to distinguish unresolved contract from error oneKT-73008K2: Resolve nested type aliases in derived classesKT-73009K2: Treat nested type aliases as classes during supertypes resolution (they are not inner by default)KT-59886K2: Disappeared ERROR_IN_CONTRACT_DESCRIPTIONKT-72839Rewrite processConstraintStorageFromExpression using resolution atomsKT-73147Context parameters FIR2IR supportKT-72789Fix inconsistent IR produced by ScriptsToClassesLowering for script instance featureKT-66711K2: INITIALIZER_TYPE_MISMATCH is reported on the whole lambda instead of RETURN_TYPE_MISMATCH on each return expressionKT-73011K2: Allow overloads resolution for callable references based on expected type variable with constraintsKT-73031K2: Callable reference unresolved inside elvis with a complex function typeKT-66161K2: False-positive REDUNDANT_VISIBILITY_MODIFIER for protected modifier in private classKT-73065CCE with context receiversKT-68768K2: unsuccessful inference fork with jspecify annotationsKT-72345K2: Method 'get' without@Overrideannotation not calledKT-72040Extra checkers: false-positive unused parameter warnings on anonymous lambda parametersKT-69981K2: Refactor ResolutionMode.WithExpectedType.expectedType to be a ConeKotlinTypeKT-70507Should parentheses prevent from plus/set operator desugaring?KT-68363ABSTRACT_MEMBER_NOT_IMPLEMENTEDdiagnostic reported only for the first not implemented functionKT-72105JVM: typeOf() result is sometimes incorrectly optimized to null in bytecodeKT-72813FIR: fix containing declaration for annotations of a receiver parameterKT-72552AutoboxingTransformer fails on during linkage on nested lambdas with cinteroped typesKT-71751K2: Skipping code in last statement of lambdaKT-72863K2: failed compilation for a context receiver with an annotated typeKT-68984K2: Typealiased SAM constructors resolve to the expanded interfaceKT-57471K2: Wrong diagnostics for named lambda argumentsKT-69560Tidy up test data that affected byPrioritizedEnumEntriesorProperUninitializedEnumEntryAccessAnalysisfeaturesKT-72894"Placeholder projection cannot be mapped." error from resolve when using placeholder in a typealiasKT-61175K2: FirReceiverParameter does not extend FirDeclarationKT-70886FIR/AA: Reduce strong memory footprint of cached symbol names providersKT-72238Argument type mismatch in builder inside extension function after ?:KT-72738Simplify naming scheme for function referencesKT-72340K1/K2 difference in de-duplication of OPT_IN_USAGE and OPT_IN_TO_INHERITANCEKT-61272Frontend: error message "feature ... is experimental and should be enabled explicitly" does not explain how to do itKT-72664K2: Function type kind is not propagated for parameters of incomplete callsKT-64247K2: FirContextReceiver does not extend FirDeclarationKT-67383Incorrect optimisation when optimising for loop with UByteKT-70975K2: Confusing INVISIBLE_REFERENCE message when accessing nested class in private-in-file classKT-72743CCE inFirUninitializedEnumChecker:FirPropertySymbolcannot be cast toFirEnumEntrySymbolKT-71708False negative UNSUPPORTED for collection literals as trailing return valueKT-63720Coroutine debugger: do not optimise out local variablesKT-67707K2: CCE "ArrayMapImpl cannot be cast to class OneElementArrayMap" from FIR evaluatorKT-71966Seemingly bug in SupertypeComputationSession#breakLoopForKT-17455Confusing error message "There's a cycle in the inheritance hierarchy for this type" when outer class inherits nested classKT-71119K2: "AssertionError: Should be primitive or nullable primitive type" caused by comparing Double/Float and Any successor typeKT-57527K1/K2: "IllegalArgumentException: Some properties have the same names" with inline classKT-57851Wrong ValueClassRepresentation inside value classKT-67998K2: CANNOT_INFER_PARAMETER_TYPE on incomplete call inside if in a Java SAMKT-71961K2 debugger evaluation ClassCastException in IrElementsCreationUtilsKt#createFilesWithBuiltinsSyntheticDeclarationsIfNeededKT-72504OptimizeKotlinLocalVirtualFile.isDirectoryfor parent virtual filesKT-71399Kotlin Script: NPE on type resolveKT-69283Incorrect synthetic line numbers when inlining suspend funsKT-57696Deprecate JvmDefault annotation with level HIDDENKT-52929Java cannot extend instantiations of generic Kotlin collections in the presence of instantiated Kotlin subclassesKT-71885K2: confusing message when lateinit var is assigned onceKT-69920K2: java.lang.IllegalArgumentException: FirNamedArgumentExpressionImpl.replaceConeTypeOrNull() during Space project compilationKT-55894NI: Compile errors for out-projected types are more cryptic than previouslyKT-72231K2: NONE_APPLICABLE instead of NAMED_ARGUMENTS_NOT_ALLOWED for non-Kotlin functions with overloadsKT-72422KMP: False-positive report of ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT on SublcassOptInRequiredKT-72257'javaClass' method cannot be evaluated in Kotlin project itselfKT-69407K2: Compiler crash (Shouldn't be here) due to unresolved reference in FirProjectionRelationCheckerKT-72408Introduce new TYPE_VARIANCE_CONFLICT diagnosticsKT-71508JAVA_CLASS_INHERITS_KT_PRIVATE_CLASS isn't reported when java class is inherited from an effectively private classKT-72177K2: Argument type mismatch when using star projectionKT-72245K2: When Java source roots are passed by file, fully qualified deep packages are unresolvedKT-63923Confusing error messages for TYPE_MISMATCH from inferenceKT-57708Unclear TYPE_MISMATCH messages in certain situations with genericsKT-72178K2: "Unexpected FirPlaceholderProjectionImpl" exception when using "_" as key type in EnumMapKT-62455"NullPointerException" with 'multi-field value class'KT-72302K2: no error on type operator in annotation parameter default valueKT-72212[Scripting] Guava dependency is not packaged correctlyKT-71662PCLA: a type variable is not fixed on demand to a type containing a not-fixed type variableKT-72229K2: Change LV of ProhibitConstructorAndSupertypeOnTypealiasWithTypeProjection to 2.2KT-70256K2: Check forMISSING_BUILT_IN_DECLARATIONnot only for JVM but for all platformsKT-71752K2: Absent non-null check for platform typesKT-72154Dokka fails withnot array: KClass<out Annotation>on Kotlin 2.1.20-dev with@SubclassOptInRequiredKT-72173K2: simple object names from root package are resolved without imports in non-root packages when used as valuesKT-71480JAVA_CLASS_INHERITS_KT_PRIVATE_CLASS isn't reported while java object isn't createdKT-60034K2: Introduced NO_GET_METHODKT-72199K1: Match the shape of references to synthetic Java properties to the shape of their gettersKT-15672Improve diagnostics for accessing Enum companion object from enum constructorKT-71321K2: ClassCastException caused by missed type mismatch when passing a method referenceKT-71959NO_VALUE_FOR_PARAMETER should use actual lambda parameter nameKT-69985K2: simple classifier names from root package are resolved without imports in non-root packagesKT-70139Remove dependencies of debugger on K1 and old JVM backendKT-72142PSI: unrelated enums are treated as equivalentKT-71943K2: IAE "source must not be null" in FirJvmModuleAccessibilityQualifiedAccessCheckerKT-71753PCLA: false-negative operator ambiguity error on fixing a type variable on demand for an operator assignmentKT-70844K2 IDE: deprecated marker shouldn't highlight not deprecated type argumentKT-70854K2 IDE: annotation on delegation causes illegal argument exceptionKT-56901NI: Missing error on passing star-projection to reified type argumentKT-70856K2: IllegalStateException: Non-empty unresolved argument listKT-71897K2: Don't erase in projections in SAM conversion if -Xsam-conversion=class like in K1KT-66464IntroduceisInlineableparameter forFunctionTypeKindKT-71590K2: false alarm fromUselessCallOnNotNullCheckerKT-71919Wrapped ProcessCanceledException in GenerationState#loadClassBuilderInterceptorsKT-70922PSI for KtPropertyAccessor is inconsistent with KtNamedFunctionKT-28598Type is inferred incorrectly to Any on a deep generic type with out projectionKT-71490K2: missing REDUNDANT_ELSE_IN_WHENKT-36107Remove deprecated mod operator conventionKT-71166Generic synthetic property is unresolved when parameterized with UnitKT-71738K2: False negative REDECLARATION inside object expressionKT-59908K2: Disappeared RECURSIVE_TYPEALIAS_EXPANSIONKT-69937Define & enforce user-friendly terminology for extended checkersKT-68834Parentheses don't influence calls of any convention operators (except invoke operator) after safe navigation operator
Compose compiler
b/378697545Avoid using ComposableSingletons inside public inline functionsb/376148043Use remember function source key for intrinsic rememberb/345204571Remove IR offsets for conditions generated by Compose compilerb/376058538Fix stack overflow when inferring stability of indirect generic loopb/339322843Transform @composable property delegate references
IDE
KT-59445Recursion detected on input: JavaAnnotationImpl
IR. Actualizer
KT-68830Compiler crash on missing actual classKT-71809Kotlin-to-Java direct actualization: the property isn't actualized by overridden getterKT-71817Actualization of static members is broken for non-JVM platforms
IR. Inlining
Fixes
KT-73987Cherry-pick the fix for KT-73482 to 2.1.20-Beta1KT-72915UseLoweringContextinstead ofCommonBackendContextfor the first stage of compilationKT-73101Try to unboundJsIntrinsicfromJsIrBackendContextKT-73110Unbind JS version ofSymbolsfromSymbolTableKT-73108Unbind JS version ofSymbolsfrom contextKT-71864[JS] Run IrValidator as the first lowering in 1st compilation phaseKT-73103SwitchInlineCallableReferenceToLambdaPhaseto useLoweringContextKT-73098UseLoweringContextforNativeInlineFunctionResolverKT-73096ChangeLateinitLoweringto useLoweringContextinstead ofCommonBackendContextKT-71141Merge lateinit-related loweringsKT-73099UseBackendContextfor theJsCodeOutliningLoweringKT-73097Try to useBackendContextforLocalDeclarationsLoweringKT-73035Remove field of type SymbolTable from SymbolsKT-72919MoveJsCommonBackendContext.coroutineSymbolsintoSymbolsKT-72916DropsymbolTablereference fromBuiltinSymbolsBaseKT-72912RewriteandAllOuterClasseslocated inFunctionInliningKT-72910MoveisSideEffectFreeto theSymbolsKT-72907ExtractSharedVariablesManagerfromBackendContextKT-72905UnbindKonanSharedVariablesManagerfromKonanBackendContextKT-70961[K/N] Test IR inliner on 1st stage with box testsKT-72884Internal error in body lowering: IllegalStateException: Can't inline given reference, it should've been loweredKT-72920Dropcontextparameter fromJsCommonCoroutineSymbolsKT-72906UnbindJsSharedVariablesManagerfromJsIrBackendContextKT-67298Write tests for deserialization/serialization of unbound IRKT-69681IR: Report warnings on exposure of private types in non-private inline functionsKT-72521Kotlin/Native: java.lang.AssertionError: kfun:androidx.compose.runtime#access$<get-androidx_compose_runtime_ProvidedValue$stable>$p$tComposerKt(){}kotlin.IntKT-67220Drop caching of deserialized/lowered inline functionsKT-72623Don't generate synthetic accessors in files other than the one being loweredKT-71859[K/N] Run IrValidator as the first lowering in 1st compilation phaseKT-67292Handling assertions before the IR inlinerKT-70423KLIB: SyntheticAccessorLowering - generate static factory functions instead of synthetic constructorsKT-69765Add language feature to enable IR inliner in K2 1st phase
IR. Interpreter
KT-71903[K/N] Find a way to set up a synchronization point for the IR interpreterKT-66450IR interpreter can't handle entries of lowered enumsKT-71971K2 evaluator error on casting object of value type
IR. Tree
Performance Improvements
KT-72211Refactor IrValidator to speed up
Fixes
KT-73221Migratecompiler.ir.actualizationto new IR parameter APIKT-73219Migratecompiler.tests-compiler-utilsto new IR parameter APIKT-73194[IR] Consider moving platform-independent funs from SymbolLookupUtils to SymbolFinderKT-73218Migratecompiler.tests-common-newto new IR parameter APIKT-73227Migratejs:js.teststo new IR parameter APIKT-73258[IR] Separate new lookup functionality from IrBuiltinsKT-73063[JS][Wasm] Simplify ExpectDeclarationsRemoveLoweringKT-73350Migrate:native.tests:klib-ir-inlinerto new IR parameter APIKT-67545Autogenerate DeepCopyIrTreeWithSymbolsKT-68992Fix IR serializer to handle IR with unbound symbolsKT-64866Support deserializing and serializing unbound IRKT-72619[IR] Steer checks for vararg types with new test directiveKT-69498[IR] Merge twoIrTypeUtils.ktsourcesKT-72376Disable vararg types checking in org.jetbrains.kotlin.fir.pipeline.ConvertToIrKt#runMandatoryIrValidationKT-69454[IR] Check vararg types in IrValidatorKT-68314Remove IrBuiltins from IrModuleKT-71944Move IR lowering phase descriptions to kdocKT-71826stdlib fails to compile with-Xserialize-ir=all
JavaScript
Performance Improvements
KT-72180Fix problems with memory spikes during JS Codegen/Box tests
Fixes
KT-58797Optimize the code generated for objects on JS and Wasm backendsKT-70778Kotlin Js companion is undefined in production buildKT-70533KJS: changed string concatenation behavior in 2.0KT-71949K/JS: investigate test failures in MPP codegen tests with friend dependenciesKT-43567KJS: toString() method and string interpolation of variable produce different codeKT-71857[JS] Add new step to codegen tests for IR inliner invocationKT-14013JS toString produces different result for nullable/non-nullable ref to the same arrayKT-70803Investigate generating call with invalid argument count in Js BackendKT-72200Remove legacy JS test executorsKT-68332Remove legacy Nashorn script engineKT-39337KJS: remove LabeledBlockToDoWhileTransformation and related thingsKT-72732KJS / ES6: "SyntaxError: 'super' keyword unexpected here" with enabled-Xir-generate-inline-anonymous-functionsand disabled arrow functionsKT-71821K/JS tests are failing with coroutines flow and turbine on timeoutKT-70227Remove JS from theorg.jetbrains.kotlin.test.TargetBackendenumKT-71855ES6ConstructorLowering sets extensionReceiver to a function without extension receiverKT-70226Delete JS tests that were only run with the legacy JS backend
KMM Plugin
KT-66458KMM Wizards: Get rid of deprecated 'kotlinOptions'
Klibs
KT-72627IrInstanceInitializer is always deserialized having kotlin/Unit typeKT-71500Improve "incompatible ABI version" error messageKT-72965Ignore subclassOptInRequired constructor warningKT-69309Separate pure KLIB tests from Kotlin/Native testsKT-71917[JS] Make it possible to run IR lowerings before serializing to KLIBsKT-68756[K/N] Make it possible to run IR lowerings before serializing to KLIBsKT-72333Ensure KLIBs with old local signatures (< 2.1.20) are mutually compatible with KLIBs with new local signatures (>= 2.1.20)KT-71633[2.1.0] Suspicious "Argument type mismatch" errorKT-71333KLIB cross-compilation: Add additional tests
Language Design
KT-11914Confusing data class copy with private constructor
Libraries
KT-71606Provide Atomic and AtomicArray builtins in a bootstrap compilerKT-73064Samplification of the Optional extensions documentationKT-73291Uuid.random() requires security context in WasmJsKT-72492Improve String.toFloatOrNull performanceKT-54606Print program name in Kotlin/Native executablesKT-61184Drop redundant@Suppressfrom some classes in stdlib. After stdlib migration to K2KT-72380Incorrect Duration parsing with extra leading zeros in components and multiple signsKT-70695Float/Double.isFinite can be optimizedKT-31880UUID functionality to fix Java bugs as well as extend it
Native
KT-71976[Native][KLIB Resolve]: compilation error if libraries have the sameunique_nameand the strategy is allow-all-with-warning or allow-first-with-warning
Native. Build Infrastructure
KT-72063Jars usingnativein their name are incompatible with JPMSKT-70990Kotlin/Native: fix stdlib building taskKT-71820Update the coroutines version used in kotlin-native build infrastructureKT-71261Kotlin/Native: enable gradle caching for runtime building tasks
Native. ObjC Export
KT-72673Native: objc2kotlin "virtual" bridges have no debug info
Native. Swift Export
KT-72703Translate valueOf into static funcKT-72102Create test infra for swift export in IDEKT-72096Create module for swift-export-in-ideKT-71898Swift Export: support List in overrides
Tools. CLI
KT-69384Add a way to force colored compiler diagnostic outputKT-70179K2: Building a file with kotlin-test-junit without junit does not include annotationsKT-41756Sanitize stack trace in 'kotlin' runner CLI script
Tools. Compiler Plugin API
KT-71212Allow compiler plugins to write custom data to declarations metadata
Tools. Compiler Plugins
KT-53563Kotlin Lombok: Support@SuperBuilderKT-73366Migrate parcelize sources to new IR parameter APIKT-72824Kotlin power-assert plugin StringIndexOutOfBoundsExceptionKT-71547Lombok Compiler Plugin Does Not Support@Builderon ConstructorsKT-58695Lombok Builders's subclassing leads to 'Unresolved reference'
Tools. Daemon
KT-70556Add support for SourcesChanges.ToBeCalculatedKT-72530The daemon has terminated unexpectedly on startup attempt #1 with error code: UnknownKT-72373Fix naming for the new daemon symbols added after KT-69929
Tools. Fleet. ObjC Export
KT-73237ObjCExport: immutable property translated as mutable
Tools. Gradle
New Features
KT-72320Gradle Plugin Diagnostics Reporter: add emojis to increase visibilityKT-71603Introduce KotlinJvmExtension and KotlinAndroidExtensionKT-70383KotlinJvmFactory registerKaptGenerateStubsTask() function should also request compilation task providerKT-71602Introduce KotlinTopLevelExtension
Performance Improvements
KT-68136Gradle: improve classloaders cache evictionKT-69613Remove usages ofgetCanonicalPathandgetCanonicalFilein plugins codeKT-65285Use uncompressed Klibs
Fixes
KT-62273Use new FUS plugin in KotlinKT-72495Warn about kotlin-compiler-embeddable loaded along KGPKT-71549K2: NoSuchMethodError: org.jetbrains.kotlin.incremental.storage.ExternalizersKt.saveToFile with dependency lockingKT-73728'generatePomFileForMavenPublication' creates pom with dependencies with 'unspecified' versionKT-73795Fix failing checkNodeJsSetup test on WindowsKT-72383Compatibility with Gradle 8.11 releaseKT-72394ProjectDependency.getDependencyProject() is deprecated in Gradle 8.11KT-72385Compile against Gradle API 8.11KT-71711KGP: Kotlin Stdlib is leaking when KGP is applied in buildSrcKT-73128Apply Kotlinlang template for partial HTMLsKT-58858Add KDoc documentation for Kotlin Gradle plugin APIKT-73076Kotlin Gradle Plugin API Reference: adjust settingsKT-65565Remove deprecated common platform plugin idKT-72963Remove deprecated KotlinPlatformAndroidPluginKT-70150Android Kotlin Compile Task has ClassPath BackwardsKT-72651Unable to usetargetfor KotlinBaseApiPlugin.createKotlin(Jvm/Android)Extension()KT-72467kotlin.sourceSets extension not added for KotlinBaseApiPlugin.createKotlinAndroidExtension()KT-72303KGP 2.1.0-Beta2 broke compatibility with KSPKT-71405Compose compiler gradle plugin: project.layout.file can't be used as a value of the 'stabilityConfigurationFiles' optionKT-71948KotlinJvmFactory : get rid of replaces with TODO()KT-72092Gradle: use packed klib variant as the default when no packaging attribute is present
Tools. Gradle. JS
KT-72175JS, Wasm: Deprecate non-Provider API in JS infrastructure extensionsKT-72874KJS: NodeJsRootExtension: "'download: Boolean' is deprecated. Use download from NodeJsExtension (not NodeJsRootExtension) instead You can find this extension after applying NodeJsPlugin. This will be removed in 2.2"KT-72872Js, Wasm: downloadBaseUrl in NodeJsEnvSpec could not be disabled
Tools. Gradle. Multiplatform
Fixes
KT-72112KotlinNativeLink task fetches configuration that might not existKT-72068Distribution for klib cross-compilation is not downloaded during compile tasksKT-72488Unify freeCompilerArgs property in swiftExport and compilerArgsKT-71074Optimize Granular Metadata Dependencies Transformation for Import after adding support for Project IsolationKT-71130Enable Isolated Projects support by default for KMPKT-61816Remove Legacy Multiplatform Gradle PluginKT-57280Expose Kotlin Project Structure metadata via consumable configurations instead of accessing all gradle projects directlyKT-64998Granular Metadata Dependencies Transformation is not compatible with Project IsolationKT-72454Revert changes made in KT-69899 i.e. make kotlin.android.buildTypeAttribute.keep = false by default againKT-70380KMM App failed to consume android binary libKT-71529Deprecate targetFromPreset API with an error
Tools. Gradle. Native
KT-72686Add warning about Kotlin native home conflict declarationKT-62826Show a warning when KGP and K/N versions mismatchKT-71419Light bundle KGP IT run against a stable K/N versionKT-70558False positive up-to-date status for CInterop tasks after changes in .h files
Tools. Incremental Compile
KT-69333Remove built-in ABI snapshot implementation
Tools. JPS
KT-73607JPS incremental compilation is broken after KT-71549KT-68565K2: IllegalStateException: Source classes should be created separately before referencing
Tools. Kapt
KT-64385K2: Enable K2 KAPT by defaultKT-71154Kapt tests: EXPECTED_ERROR directive is checked incorrectlyKT-71776K2 Kapt in 2.1.0-Beta1 fails withe: java.lang.IllegalStateException: FIR symbol "class org.jetbrains.kotlin.fir.symbols.impl.FirValueParameterSymbol" is not supported in constant evaluation
Tools. Maven
KT-69231PowerAssert: Create maven plugin for power-assert
Tools. Scripts
KT-72277Legacy REPL implementation is still based on the old backend