2.2.20-RC
Backend. Wasm
KT-80018
K/Wasm: exceptions don't work properly in JavaScriptCore (vm inside Safari, WebKit)
Compiler
KT-79979
K2: ClassCastException when overriding extension property with delegationKT-79866
kotlinc 2.2.0 silently emits ‘NonExistentClass’ instead of reporting an errorKT-79276
Dexing fails with “Cannot read field X because is null” with 2.2.0KT-79781
Missing MISSING_DEPENDENCY_CLASS when using type alias with inaccessible RHSKT-79547
“UnsupportedOperationException: Not supported” with inlining and value classesKT-79519
Nested type alias is unreachable from another module
Compose compiler
b/432262806
Fix target description lookupb/436870733
Prevent lambda memoization in local classes inside a composableb/432485982
Fix AbstractMethodError when overriding function with default parameters
JavaScript
KT-79916
K/JS: “Uncaught TypeError” when using ‘Xes-long-as-bigint’ in compose-htmlKT-79977
KJS: Long.rotateLeft returns incorrect result when BigInts are enabledKT-79644
BigInt enabled for ES 2015 despite being an ES 2020 featureKT-79089
KJS: Could not load reporter / Cannot find module ‘mocha’ when running jsNode tests
Native
KT-79075
Stuck on Kotlin_getSourceInfo_core_symbolication
Tools. Compiler plugins. Serialization
KT-79695
Serialization does not exclude field-less properties in 2.2.20-Beta2
Tools. Gradle. JS
KT-79921
Web Tooling Gradle API does not respect webpack reconfigurationKT-76996
Wasm: js tasks triggers wasm subtasks
Tools. Gradle. Swift Export
KT-79554
Swift Export status diagnostic is produced even if swift export is not configured
Tools. Kapt
KT-79641
Kapt: too much information is printed in verbose modeKT-79136
K2 kapt: unresolved nested class references in annotation arguments are generated without outer class names
2.2.20-Beta2
Analysis API. Code Compilation
KT-78382
K2 IR lowering error when interface extends interfaceKT-73201
K2 IDE: Error while evaluating expressions with local classesKT-78164
Evaluator: ‘@JvmName
’ annotations are not recognized in other modules
Analysis API. FIR
KT-72227
SOE from recursive value classKT-68977
K2 IDE: Reference to companion object through typealias in a function call does not workKT-76490
Do not load ast during the contracts phase if no contracts presentKT-72407
FirImplementationByDelegationWithDifferentGenericSignatureChecker: FirLazyExpression should be calculated before accessing
Analysis API. Light Classes
KT-78065
Support “Expose boxed inline value classes” in Light ClassesKT-78835
Find usages of a light constructor from a class with an empty body finds usages of class as well
Analysis API. Providers and Caches
KT-78640
Analysis API: Remove “friend builtins provider” from FirDeclarationForCompiledElementSearcher
Analysis API. Standalone
KT-78638
Analysis API Standalone: Stdlib builtins are not indexed in STUBS
deserialized declaration origin mode
Analysis API. Surface
New Features
KT-73473
Provide KaExpressionInformationProvider.isUsedAsResultOfLambda
Performance Improvements
KT-78526
Get rid of redundant checkValidity
from withPsiValidityAssertion
Fixes
KT-78820
K2: ISE “FIR element class FirErrorExpressionImpl is not supported in constant evaluation” through RedundantValueArgumentInspectionKT-75057
Analysis API: Reference to object through typealias in invoke operator call leads to original typeKT-79042
Do not restore KaTypePointer if target kind has changedKT-72421
AA: “KtReference.resolveToSymbols” returns empty list when ASSIGN_OPERATOR_AMBGUITY error is presentKT-63464
AA: KtPsiTypeProvider#asPsiType doesn't substitute kotlin.UnitKT-75913
K2: SymbolLightLazyAnnotation evaluates arguments and replaces them with constantsKT-73184
Analysis API: KaFunctionCall.argumentMapping is unexpectedly deparenthesisedKT-78613
PSI: add binary compatibility checksKT-74013
Analysis API: Cover the API surface with @SubclassOptInRequired
annotationsKT-76614
Move the parser and lexer to a separate moduleKT-78552
KaFunctionValueParameter
is not marked as KaLifetimeOwner
KT-71152
Add back SubclassOptInRequired to classes in KaModule.ktKT-77674
Analysis API: Redundant smart cast to the original type
Backend. Wasm
New Features
KT-65721
K/Wasm: stop unconditionally exporting any main function from the root package
Fixes
KT-73931
WASM: “RuntimeError: illegal cast” with nullable genericKT-65403
[WASM] RuntimeError is thrown instead of ClassCastExceptionKT-79317
[Wasm] Do not throw CCE for ExcludedFromCodegen declarationsKT-66085
K/WASM: Runtime error is uncaught with catch (e: Throwable)
KT-66072
K/Wasm: improve how exceptions work in JS interopKT-78384
K/Wasm: Incorrect debug info of local declarations in inline function from another fileKT-71533
K/Wasm + K2: no error on KClass::qualifiedName usagesKT-72220
Wasm: Unclear exception in case of missed dependencyKT-71691
No trace on Wasm/JS if an error occurred in initializing global variables in a file with the main functionKT-69570
K/Wasm: JsExport with default parameter value compiles to invalid Wasm
Compiler
New Features
KT-78792
Report warning for redundant return in expression bodyKT-45683
Allow generics in contract type assertionsKT-71244
Incorporate existing @CheckReturnValue
annotation(s) into Kotlin's unused return value checkerKT-32313
Support contracts for operator functionsKT-76766
Warning is missing for wrong subclass checkingKT-65688
Generate when-expressions over final classes via invokedynamic typeSwitch + tableswitch on JDK 21+
Performance Improvements
KT-78672
Consider having FirCallableSymbol.callableId null for local properties / parametersKT-77839
K2: consider not creating CallableId for value parameters / variables / fields
Fixes
KT-79355
Failed to fix the problem of desugared inc
with new reverse implies returns contractKT-79277
Implies returns contract doesn't affect the return type of the function if it is in the argument positionKT-79271
Implies returns contract doesn't impact exhaustivenessKT-79218
SMARTCAST_IMPOSSIBLE for top‑level extension‑property getter despite returnsNotNull contractKT-79220
returnsNotNull contract ignored on extension function with nullable receiverKT-79442
“Multiple annotations of type kotlin.coroutines.jvm.internal.DebugMetadata”: 2.2.0-Beta1 generates broken code with JVM default suspend methods in interfacesKT-79354
IllegalStateException: Debug metadata version mismatch. Expected: 1, got 2 with compiler 2.2.20-Beta1 and stdlib 2.2.0KT-78479
IR lowering failed / Unexpected null argument for composable callKT-77401
[FIR] ParameterNameTypeAttribute.name
doesn't support @ParameterName
with compile-time constant property argumentKT-77986
K2: False negative: “Local classes are not yet supported in inline functions”KT-78843
FIR tree: comments within String concatenation aren't visited in 2.2.0KT-76477
Kotlin/Native: fix compiler performance reporting in sources->klib and klibs->binaryKT-78589
“Class does not have member field” caused by delegation from a Java to Kotlin classKT-79076
‘IllegalStateException: Cannot serialize error type: ERROR CLASS: Uninferred type’ with Exposed column using recursive generic typeKT-78726
Split runPsiToIr phase into runPsiToIr and runIrLinkerKT-77672
K/N: come up with a fallback strategy for the casts optimization passKT-76585
K2: RETURN_IN_FUNCTION_WITH_EXPRESSION_BODY is not reported inside initializers of local variablesKT-79099
K2: Do not inherit inline modifierKT-76902
Omit type-use annotations from diagnosticsKT-79085
Adding -Xreturn-value-checker=full
to kotlinc causes “error: conflicting overloads”KT-58988
K2: Deprecate exposing package-private parameter of internal methodKT-77199
OPT_IN_USAGE_ERROR is still absent when calling the enum primary constructorKT-72800
K2: java.util.NoSuchElementException when introduce variableKT-79056
Add experimental language version 2.5KT-78351
Plugins: VIRTUAL_MEMBER_HIDDEN caused by FirSupertypeGenerationExtensionKT-78527
No LESS_VISIBLE_TYPE_ACCESS_IN_INLINE_WARNING is reported when a private companion object is accessed via the class nameKT-78837
linkReleaseFrameworkIosArm64: Compilation failed: An interface expected but was AnyKT-78945
CONTRACT_NOT_ALLOWED is not reported for local operator functionsKT-78944
ANNOTATION_IN_CONTRACT_ERROR is not reported for operators and property accessors with contractsKT-78943
ERROR_IN_CONTRACT_DESCRIPTION is not reported for operators and property accessors with contractsKT-78932
Contracts are allowed for open and overridden property accessorsKT-77203
FIR: Consider adding destructured type to all COMPONENT_FUNCTION_* diagnosticsKT-78805
K2: False positive METHOD_OF_ANY_IMPLEMENTED_IN_INTERFACEKT-78651
No need to report LESS_VISIBLE_TYPE_ACCESS_IN_INLINE_WARNING in noinline default value lambdaKT-78849
K2: [Wasm, Fir2IR] Invalid smartcast on overloaded function callKT-78793
Make feature AllowEagerSupertypeAccessibilityChecks experimentalKT-78736
Missing [NOT_YET_SUPPORTED_IN_INLINE] diagnostics because of incorrect context updateKT-78324
K2: False negative [INCONSISTENT_TYPE_PARAMETER_VALUES]KT-69975
KDoc: cannot reference elements with names in backticksKT-78229
KDoc: unable to reference a method with spaces in the nameKT-78047
Render unnamed context parameters as _ instead of KT-74621
Debugger: AssertionError on evaluating two suspending callsKT-76826
New inference error [NewConstraintError at Incorporate TypeVariable] caused by recursive generics and nullable expected typeKT-78028
“FirNamedFunctionSymbol” leaks to the error message about missing infix modifierKT-77245
Add expression name to RETURN_VALUE_NOT_USED diagnosticKT-78071
False-positive NO_ELSE_IN_WHEN after variable reassignmentKT-78068
False-positive NO_ELSE_IN_WHEN after excluding enum value with inequality checkKT-25341
NOT_YET_SUPPORTED_IN_INLINE reported over anonymous object borderKT-71134
Consider to get rid of CapturedTypeMarker.withNotNullProjection()KT-77131
getValue/setValue can be declared with more than two/three parametersKT-78452
Drop redundant frontend structures after fir2ir conversionKT-78458
Don't populate PredicateBasedProvider if no lookup predicates are registeredKT-78440
Lambda with an implicitly runtime-retained annotation is generated via invokedynamic with -Xindy-allow-annotated-lambdas=false
KT-78252
ClassCastException when Array<Void>
used for compile-time vararg of Nothing
KT-78097
False positive NO_ELSE_IN_WHEN on sealed interface with negative is checkKT-77713
Context Parameters cause compiler generate r8 incompatible bytecodeKT-76629
K2 Mode: False positive RedundantVisibilityModifier inspection on private constructors in sealed classesKT-78429
K2: Property callable reference incorrectly smart-casted to intersection of property type and KPropertyKT-78509
Renamed for override copy functions are cached in scope instead of sessionKT-75831
K2: An extra “[VALUE_PARAMETER_WITHOUT_EXPLICIT_TYPE] An explicit type is required on a value parameter.” for a missing parameterKT-78370
All the [something]Assign operators on dynamic return Unit as a typeKT-73950
K2 IDE / Kotlin Debugger: ISE “Fake override should have at least one overridden descriptor” on evaluation of local calss in presence of bystanderKT-78280
Implement the sourceless KtDiagnostic
sKT-76543
Migrate psi2ir sources to new IR parameter APIKT-77716
Kotlin/Native and -Xseparate-kmp-compilation: “Compilation failed: Several functions kotlin/native/immutableBlobOf found”KT-76400
Context-sensitive resolution doesn’t work in if-else condition passed as a function argumentKT-76606
Enable ‘Indy: Allow lambdas with annotations’ by defaultKT-78121
Report warning on function type with multiple implicit values that's annotated with DSL markerKT-61227
Definitely non-nullable types cause “Any was expected” for @Nullable
parameter
Compose compiler
b/432262806
Use classId as FirApplierInferencer tokensKT-78479
Ensure that default transform affects functions entered through a callb/400371006
Gate default parameters behind language versionsKT-78490
Fix visibility for default wrappers of protected methodsb/245673006
Specify fqName for classes and functions in build metricsb/254577243
Avoid printing complex expressions in compiler metrics
IR. Inlining
New Features
KT-70360
KLIBs: Uniformly handletypeOf()
calls at 1st/2nd stages of compilation
Fixes
KT-79002
[Inliner][Native][PL] Native backend fails for inline function that instantiates a class that was compiled implementing two interfaces, which turned into abstract classesKT-69941
Rewrite DumpSyntheticAccessors
lowering to test handler after moving common Native/JS prefix to KLIB compilationKT-78137
Review & enable PL tests with enabled IR inlinerKT-78245
Synthetic Accessors incorrectly copies default valuesKT-76236
Include NativeInliningFacade
and JsIrInliningFacade
in all Native & JS test runnersKT-76512
Avoid using originalFunction
inside FunctionInlining
KT-69457
[references] IR Inliner: References to inline functions are not inlinedKT-47521
Native & JS: Recursive inline fun calls -> StackOverflowErrorKT-76763
[Inliner] Don't use attributeOwnerId to pass info from Inliner to non-JVM backendsKT-76145
Enhance error message about poisoned KLIBs in KLIB-based compilers
IR. Tree
KT-78978
PL tests: Drop adjust*forLazyIr()
hackKT-77596
Refine reuseExistingSignaturesForSymbols
setting in IR serializerKT-76723
IR validator: Check visibilities of annotationsKT-76405
Visit annotations in IrTypeVisitor and IrTreeSymbolsVisitorKT-78033
[PL] Merge IrUnimplementedOverridesStrategy
to PartiallyLinkedIrTreePatcher
JVM. Reflection
KT-77882
kotlin-reflect: KParameter.name returns “” instead of null for anonymous context parametersKT-77879
kotlin-reflect: toString overrides of KCallable implementations do not render context parameters
JavaScript
New Features
KT-79394
Add the possibility to write common external declarations between JS and WasmJS targetsKT-79222
K/JS: Allow using Long in exported declarations
Performance Improvements
KT-57128
KJS: Use BigInt to represent Long values in ES6 modeKT-54689
KJS: Data class equals less efficient than manually written version
Fixes
KT-79050
KJS / IC: “Unexpected body of primary constructor for processing irClass”KT-52230
KSJ IR: Applying identity equality operator to Longs always returns falseKT-6675
KotlinJS: toInt() on external Long throws errorKT-79184
K/JS: Further intrinsify BigInt-backed Long operationsKT-78701
Js and Wasm: enumValueOf does not include invalid value into an exception messageKT-78316
KJS: List is not exported to TypeScript declaration if wrapped in PromiseKT-66091
KJS, WASM: AssertionError: Illegal value: <T>
in test nonReified_equality.ktKT-57192
KJS: “Exported declaration uses non-exportable return type” caused by @JsExport
Promise with Unit typeKT-61183
KJS: “AssertionError: Assertion failed” from JsSuspendFunctionsLoweringKT-59326
KJS / IR: invalid code generated when using constructor parameter named default
Klibs
KT-78699
Compiler (JS, Wasm): warn about incompatible kotlin-test/compiler pairKT-78700
Compiler (JS, Wasm): Consider making diagnostics for incompatible kotlin-stdlib/compiler and kotlin-test/compiler pairs errors instead of warningsKT-76094
Support new callable reference nodes in partial linkage in Kotlin/WasmKT-78771
KLIBs: Improve zipDirAs()
function that is used to produce KLIB (ZIP) archivesKT-78349
[Tests] Enable Partial Linkage in all testsKT-68322
Compiler (JS, Wasm): warn about incompatible Kotlin stdlib/compiler pair
Language Design
KT-32993
Contract to specify that a function parameter is always true inside lambdaKT-79308
Ability to actualize empty interfaces as AnyKT-78866
Warn implicit receiver shadowed by context parameterKT-8889
Contracts: if a given function parameter is not null, the result is not nullKT-22786
Returns are not allowed for expression-body functions and are allowed when an inline lambda is addedKT-54363
Allow using reified types for catch parametersKT-77836
Support using context parameter of a @RestrictsSuspension
type as the “restricted coroutine scope”KT-77823
Context-sensitive resolution doesn't work for subtypes of sealed typesKT-75977
False positive unresolved_reference when resolving nested member after a type check
Libraries
KT-79080
Annotate WasmImport and WasmExport as experimental APIKT-79121
K/Wasm annotate JS-interop API as experimentalKT-78581
Add the KClass.isInterface property to Kotlin/JS stdlibKT-78710
kotlin.wasm and kotlin.wasm.unsafe packages are missing descriptionKT-78709
Wasm: KClass.qualifiedName KDoc should reflect the behavior on the targetKT-78704
CharSequence.subSequence and String.substring behavior with invalid indices differs between targetsKT-78705
Float.sign and Double.sign behavior for negative zero is not documentedKT-74543
Support for context parameters in kotlinx-metadataKT-78340
String.startsWith KDoc declares invalid exception condition
Native
KT-78959
Xcode 26: fix GC stress testsKT-78734
Finish runtime crash dump generation
Native. ObjC Export
KT-77488
[ObjCExport] Add explicit ObjCBlock parameter name in objc exportKT-78447
[ObjCExport] Add missing ERROR constructors, align with K1
Native. Runtime
KT-79152
Native: unexpected thread state in kotlin::to_string
Native. Runtime. Memory
KT-78925
Crash SIGABRT on Apple Watch after updating Kotlin to 2.2.0KT-76851
Kotlin/Native: GC scheduler MutatorAssists requestAssists and completeEpoch issue
Native. Swift Export
KT-79227
Swift Export: Fix First Release IssuesKT-78947
Implement FUS for Swift exportKT-79521
‘_CoroutineScope’ is inaccessible due to ‘internal’ protection level
Tools. Build Tools API
KT-78415
Add a tool for performance reports analysing
Tools. CLI
KT-75968
Set proper lifecycle for all existing compiler argumentsKT-78318
Unresolved reference when compiling kotlin/JS project on fresh masterKT-78578
Support for placeholder (*) and directory in -Xdump-perf
Tools. Compiler Plugin API
KT-78279
Make the DiagnosticReporter default way for reporting in IR plugins
Tools. Compiler Plugins
KT-78969
[DataFrame] Provide source elements for plugin-generated classesKT-75265
PowerAssert: the result of invoke is displayed at the same level as value that can be confusingKT-78490
“AssertionError: SyntheticAccessorLowering should not attempt to modify other files” when calling protected open composable with default argumentKT-77626
K2: AssertionError: FUN LOCAL_FUNCTION_FOR_LAMBDA has no continuationKT-78038
Make jvm-abi-gen compiler plugin output classloader-friendlyKT-78671
[DataFrame] Support type parameter types in DataSchema to fix evaluate expressionKT-78439
DataFrame compiler plugin: Unresolved reference error in REPL
Tools. Gradle
KT-79034
Automatically disable cross compilation if it's not supported on the hostKT-77023
Support creating KotlinJvmAndroidCompilation in KotlinBaseApiPluginKT-74420
Migrate kotlin-parcelize away from AGP's deprecated Variant APIKT-76421
Stabilize klib cross-compilation on different platformsKT-78233
Add ExperimentalFeatureWarning unique idKT-67992
Cleanup deprecated code required for KSP1KT-72341
Remove ‘kotlin-android-extensions’ pluginKT-67291
Enable Project Isolation AND/OR Configuration Cache mode for Gradle Integration testsKT-65271
Gradle: "Mutating dependency DefaultExternalModuleDependency after it has been finalized has been deprecated " with gradle 8.6-rc-3
Tools. Gradle. Cocoapods
KT-79429
K/N: Cocoapods: IllegalArgumentException: “cinterop doesn't support having headers in -fmodules mode” with 2.2.20-Beta1 if explicitly not specify false for ‘useClangModules’KT-76035
Allow extra command line arguments in PodBuildTaskKT-78387
Kotlin Cocoapods Gradle Plugin is not compatible with Gradle isolated projects
Tools. Gradle. JS
KT-79237
Upgrade NPM dependencies versionsKT-75480
Add shared source set for js and wasmJs targetKT-77319
KJS / Gradle: generateTypeScriptDefinitions() generates wrong file extension when outputting ES modulesKT-78504
[2.2.0-RC3] NPM Tasks in 2.2 RCs produce broken/unusable build cache entriesKT-77443
NPE: “NullPointerException: Cannot invoke org.gradle.api.tasks.TaskProvider.flatMap(org.gradle.api.Transformer)”: ExecutableWasm.optimizeTask is accessed before initializationKT-76987
JS, Wasm: Upgrade NPM dependencies
Tools. Gradle. Multiplatform
New Features
KT-76446
Add kotlin-level dependency block to work the same way as commonMain/commonTest dependencies blocks
Fixes
KT-79559
AGP complains about configurations resolved at configuration time due to KMP partially resolved dependencies diagnosticKT-69790
Report human-readable error when declared dependency doesn't support required target typesKT-77843
KGP fails with Gradle 9 on ProjectDependency.getDependencyProject()
KT-79315
Early task materialization with cross-project configuration breaks configuration due to KMP partial resolution checkerKT-78297
FileNotFoundException in generateMetadataFile task if non-packed=falseKT-78993
The value for property ‘*’ property ‘dependencies’ is final and cannot be changed any furtherKT-62294
kotlin-parcelize plugin does not support the new android kotlin multiplatform pluginKT-77466
KMP - testFixturesApi and similar configurations do not affect jvmTestFixtures source setKT-78433
Gradle: add tracking of the new KMP compilation scheme to FUSKT-78431
Gradle: in-process metadata compiler uses deprecated K2MetadataCompiler
Tools. Gradle. Native
KT-74864
Enable exporting KDocs by default to ObjCKT-51301
Remove ability to use Native non-embeddable compiler jar in Gradle pluginKT-78838
Add default 3G max heap size for the commonizer JVM process
Tools. Gradle. Swift Export
KT-78385
Swift Export is not compatible with Gradle isolated projects
Tools. Incremental Compile
KT-60653
IC does not handle changes in inline functions objects/lambdas correctlyKT-78807
Changing ABI fingerprint on non-ABI changes when lambda passed to inlined function
Tools. JPS
KT-77347
Support file-less compatible IC approachKT-78444
Clean up JPS code base
Tools. Kapt
KT-79138
K2: KAPT Java Stub Gen: Unresolved reference
with @kotlin
.Metadata in Java in 2.2.0KT-79133
K2 kapt: class literal with typealias is not expanded
Tools. Maven
KT-77587
Maven: Introduce Kotlin daemon support and make it enabled by defaultKT-63688
Remove JS-related stuff from kotlin-maven-plugin
Tools. REPL
KT-78755
[K2 Repl] Redeclaring variables does not work
Tools. Statistics (FUS)
KT-77755
[FUS Pipeline] Fus file formatKT-77995
Do not collect FUS metrics on TeamCity
Tools. Wasm
KT-78921
K/Wasm: don't generate empty yarn.lock fileKT-76842
K/Wasm: serve project sources in *DevRun tasks by defaultKT-75714
Wasm: Move tooling NPM dependencies outside user projectKT-70013
.gradle/yarn and .gradle/node are part of Gradle configuration cache
2.2.20-Beta1
Analysis API
KT-78187
Synthetic properties not to be shown as callablesKT-72525
K2. red code and KIWA on new-lines in guarded when conditions (with parentheses)KT-61728
Analysis API: optimize AllCandidatesResolver.getAllCandidates
Analysis API. Code Compilation
KT-76457
K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvmKT-73084
K2 evaluator cannot resolve local variables standing at the closing brace
Analysis API. FIR
Performance Improvements
KT-78132
Do not check FirElementBuilder#tryGetFirWithoutBodyResolve optimization for already resolved declarations
Fixes
KT-72357
Implement partial body resolutionKT-77629
K2: NPE: “org.jetbrains.kotlin.fir.java.declarations.FirJavaTypeParameter.performFirstRoundOfBoundsResolution”KT-76855
Analysis API: KaType.asPsiType
returns null
for a local inner class in dependent analysis testsKT-72718
ImplicitReceiverValue.createSnapshot creates invalid FIR if receiver is smart-castedKT-76811
Analysis API: resolveToFirSymbol
finds a FirPropertySymbol
for a KtScript
in dependent analysisKT-73586
[Analysis API] Add lazyResolveToPhase(STATUS)
before accessing modifiers of membersKT-71135
AA: exception from sealed inheritors checker when analyzeCopy
KT-75534
K2 AA: “Containing declaration should present for nested declaration class KtNamedFunction” with dangling annotation on top-level anonymous functionKT-75687
K2: local variable doesn't get to the do-while scopeKT-56543
LL FIR: rework lazy transformers so transformers modify only declarations they suppose to
Analysis API. Infrastructure
KT-76809
Analysis API: Dependent analysis tests frequently work with the original element instead of the copied element
Analysis API. Light Classes
KT-78076
DLC: KotlinDeclarationInCompiledFileSearcher missed accessors if types are boxedKT-77569
SLC: annotation missing from generated no-args constructorKT-75182
K2 AA. False positive red code “Unresolved reference” to a Kotlin method in Java when Kotlin uses a value class with @JvmOverloads
KT-77564
Constructor with JvmOverloads and value class shouldn't mark regular constructors privateKT-77505
K2: find usages on java accessor methods do not detect kotlin property accessor usagesKT-76789
Annotation resolve shouldn't search through non-class membersKT-76907
Wrong equality between repeatable annotation and container
Analysis API. Providers and Caches
KT-74907
Analysis API: Apply platform-based library module content restrictions consistentlyKT-77578
Analysis API: Performance degradation of KaBaseResolutionScope.contains
after introduction of library restriction scopesKT-77605
AA: Leaking KaDanglingFileModule through IdeKotlinPackageProviderKT-62474
Analysis API: Improve mergeability and performance of custom search scopesKT-77022
Get rid of ExpectBuiltinPostProcessor workaroundKT-77248
Delegation of JavaModuleResolver
is restricted to CliJavaModuleResolver
KT-76850
LLFirLibrarySession cannot be cast to LLFirResolvableModuleSessionKT-76952
Analysis API: when
exhaustiveness analysis fails for sealed classes in dangling filesKT-72390
Kotlin project full of red code
Analysis API. Stubs and Decompilation
KT-77496
Support HAS_MUST_USE_RETURN_VALUE metadata flags in FirStubBasedMemberDeserializerKT-77778
Function receivers doesn't have annotationsKT-77777
Receiver annotations shouldn't be present on typesKT-77538
Support default property accessors with annotationsKT-77763
Decompiled stubs miss inline modifier for property accessorsKT-77309
Decompiled property from annotation constructor with default value should have a constant initializerKT-77168
Prefer DataInputOutputUtil for serialization/deserializationKT-77117
Flaky WRONG_ANNOTATION_TARGET diagnosticKT-76791
Function signature types are deserialized inconsistentlyKT-76947
Support functional types with context parameters
Analysis API. Surface
New Features
KT-77278
Implement psi-based KaFirKotlinPropertyKtPropertyBasedSymbol#hasBackingField
KT-70770
KaLocalVariableSymbol: support isLateInit
Fixes
KT-75913
K2: SymbolLightLazyAnnotation evaluates arguments and replaces them with constantsKT-78278
ISE: FIR element “class org.jetbrains.kotlin.fir.expressions.impl.FirErrorResolvedQualifierImpl” is not supported in constant evaluation at org.jetbrains.uast.kotlin.internal.FirKotlinUastConstantEvaluator.evaluateKT-73327
Cover all psi inputs with scope validity assertionsKT-71876
Support storing parameter names in KaFunctionType
KT-77738
AA: inconsistent KaType.allSupertypes
regarding multiple iterationsKT-73723
K2 AA, KaFirVisibilityChecker: protected member of superclass is not visible from anonymous objectKT-78057
[Analysis API, K2] Context parameters are not resolved in KDocKT-73758
K2 Mode: “KaEvaluator.evaluate” does not work for simple arithmetic expressionsKT-72301
K2 AA. PSI should present for declaration built by Kotlin code
on property access syntax of generic Java getter through Kotlin subclassKT-77730
K2: Unable to get a light PSI for a nested annotation used with fully-qualified nameKT-73216
K2: unresolvable references in type parametersKT-71794
Analysis API: Types with errors have unresolved qualifiers in lambda parameters positionKT-65846
Support parameter names in functional type renderingKT-76738
K2 AA: rendering constructor of sealed class inserts protected modifierKT-77515
KaTypeProvider#receiverType
should be more tolerant to an error codeKT-77333
K2 AA: KaFirTypeProvider.getType: InvalidFirElementTypeException: For TYPE_REFERENCE with text I
, unexpected element of type: FirSuperReceiverExpressionImpl foundKT-76044
K2 AA: isFun is true for restored symbol of Java interface with several methodsKT-77264
KaTypeProvider#type
should be more tolerant to an error codeKT-77282
KaPropertySymbol: support isDelegatedProperty
for librariesKT-77254
K2 AA: expectedType doesn't provide anything for parameter default valueKT-74777
KaVariableSymbol.hasBackingField returns incorrect result for librariesKT-77280
Rename KaPropertyAccessorSymbol#isCustom
to isNotDefault
KT-77210
Analysis API: scopeContext
shows implicit receiver with a class instance in the class constructorKT-77196
Clarify differences between KaPropertyAccessorSymbol#{isDefault, hasBody}KT-76577
Guard KaFirStopWorldCacheCleaner from deadlocks via threads waitingKT-76580
K2: No expected type for the second+ vararg argumentKT-76750
K2. internal exception ‘Unable to provide inlay hint’ on typo in nested lambdasKT-73055
Get rid of the deprecated Analysis API APIKT-70199
K2: ConcurrentModificationException at FirCallCompleter$LambdaAnalyzerImpl.analyzeAndGetLambdaReturnArguments
Backend. Wasm
Performance Improvements
KT-70097
Optimize shared primitive variables in Native and Wasm
Fixes
KT-67554
[Wasm] Consider to have reference equals or/and equals for function referencesKT-71521
K/Wasm: incorrect results on equality checks for capturing property referencesKT-71522
K/Wasm: incorrect results on equality checks for function referencesKT-77897
WasmJs: ClassCastException when using star-projection with nullable transformation in generic extension functionKT-71517
K/Wasm: KClass::qualifiedName for local classes and objects returns non-null valueKT-68309
WASM: Anonymous class simpleName returns “” instead of nullKT-77272
K/Wasm: Remove kotlin.wasm.internal.ClosureBox* classes from the standard libraryKT-78036
K/Wasm: generate a message with “expected” and “actual” types in case of CCEKT-66106
Wasm: lambda was not invoked in test lambda2.ktKT-77855
[Wasm] Improve virtual function calls speed for lambdasKT-77501
Wasm: unsigned vararg compiles to invalid WasmKT-76775
[Wasm] Inconsistent FP mod operationKT-77464
Wasm: KType.toString() has simple names even with -Xwasm-kclass-fqnKT-77465
Wasm: KTypeParamter printed without variance information
Compiler
New Features
KT-32313
Support contracts for operator functionsKT-27090
Support contracts in getter and setter for top-level extension propertiesKT-76766
Warning is missing for wrong subclass checkingKT-45683
Allow generics in contract type assertionsKT-65688
Generate when-expressions over final classes via invokedynamic typeSwitch + tableswitch on JDK 21+KT-54344
Trigger the unused expression warning for interpolated strings, even when the expression may have side effectsKT-74807
Implement ‘full’ unused return value checker modeKT-77653
K/N: an optimization pass to remove redundant type checksKT-64477
Enhance KotlinLightParser to make it able to parse scriptsKT-73256
Implement all
meta-target for annotations
Performance Improvements
KT-74981
Kotlin/Native: large binary size for iOS target in 2.1.0(LLVM16)KT-77838
K2: consider replacing LinkedHashMap with HashMap inside scopes and scope sessionKT-77993
Optimize old PSI/LightTree Kotlin parserKT-76698
Android Studio compose preview holds read lock 700ms for KaCompilerFacility APIKT-68677
Kotlin compilation issue when using EnumMap and Pair
Fixes
KT-76635
Implement Data-Flow Based Exhaustiveness SupportKT-76839
False-negative MISSING_DEPENDENCY_CLASS on parameter of data class constructorKT-77685
“IllegalArgumentException: Sequence contains more than one matching element”KT-76365
K2: Missing ABSTRACT_SUPER_CALLKT-77709
Missing diagnostics of accessing less visible objects in inline functionKT-77577
False positive exposed type warningsKT-77095
FIR: Report warnings on exposure of references to invisible references in inline functionsKT-76981
Move exposed type checker to regular checkersKT-76478
FIR: Implement IDE-only checker for types exposed in inline functionKT-71854
K2 IDE. False positive red code because of external annotation on a generic parameterKT-67335
K2: Infers Int instead of Long for an ILTKT-77728
Drop controversial experimental checkersKT-17417
Loops in delegation: no compilation error on non-abstract class with abstract method that never implementedKT-75033
Split JvmBackendPipelinePhase to be able to provide a custom implementation of writeOutputsKT-67146
UPPER_BOUND_VIOLATED
missing on implicit type argumentsKT-75268
K2: Implement the new compilation scheme for MPP (compiler part)KT-76739
Dubious argument type mismatch “actual type is ‘String’, but ‘String’ was expected” caused by wrong number of type argumentsKT-76872
Anonymous context parameters are not visible in debuggerKT-74088
Kotlin Debugger: CCE on evaluating private suspend functionKT-78230
Add more test cases to the holdsIn contractsKT-78111
K2: Approximation of captured star projection in function type produces Function1<Nothing?, Unit>
in IRKT-77273
K/N: Remove the kotlin.native.internal.Ref class from the standard libraryKT-73995
JVM bytecode: Bad name for value class fieldKT-73013
Kotlin Debugger: ISE “No mapping for symbol: VALUE_PARAMETER” on evaluating callable reference to local function with closure in itKT-77485
Add constraints logging to inferenceKT-76504
Find and deprecate actively used parts of K1 APIKT-75338
K2 Mode: False positive “Redundant assignment” diagnostic on variable captured by local functionKT-77648
K2: False negative DSL_SCOPE_VIOLATION when using named argument for lambda with annotated function typeKT-64499
Report error on overloading by order of context parametersKT-78084
Unify deprecation warning messagesKT-76776
@MustUseReturnValue
doesn't affect nested scopesKT-77545
@NoInfer
on receiver type leads to false positive type mismatch when generic type is specified explicitly and closest implicit receiver is of incorrect typeKT-76772
@NoInfer
on a context parameter‘s type leads to a false-positive context argument ambiguity error regardless of the closest implicit values’ types if there are multiple of them at the call siteKT-76771
@NoInfer
on context parameter type leads to a false-positive type mismatch when generic type is specified explicitly and closest implicit value at the call site is of a mismatching typeKT-77156
INITIALIZATION_BEFORE_DECLARATION is not reported in anonymous objectKT-78060
UNRESOLVED_REFERENCE in fp-spaceKT-67555
Debug metadata: map the Continuation label to the next executable location in fileKT-77756
Add experimental language version 2.4KT-77723
Refine the message for ArrayEqualityCanBeReplacedWithEquals checkerKT-75178
Inline functions in conjunction with @JvmStatic
may result in bytecode errorsKT-77390
Prototype lazy loading of stdlib symbols in NativeKT-77921
False positive EXTENSION_SHADOWED_BY_MEMBER when member has context parametersKT-76767
AMBIGUOUS_CONTEXT_ARGUMENT should report the name of the context parameter in addition to the typeKT-77444
K2: False negative “Unchecked cast” with casting from MutableList to MutableListKT-63348
K2: FIR2IR should properly pass expected typesKT-17460
Diagnostics and intention on suspend function that is overriden with non-suspend one.KT-77627
K2: consider getting rid of NEW_INFERENCE_ERRORKT-75833
K2: Extra [ANNOTATION_ARGUMENT_MUST_BE_CONST] when passing regex-like strings as annotation argumentsKT-77547
Native: add a check that the logic looking for stdlib-related bitcode is not used when compiling sources to a klibKT-77206
Remove PARAMETER_NAME_CHANGED_ON_OVERRIDE
suppression in KMP lexersKT-77679
Update syntax-api dependency in KMP Kotlin parserKT-77705
K2: Consuming data class compiled with kotlin 1.0.5 breaks the K2 compilerKT-77563
False-positive smart cast with captured local in init block causes NPEKT-77696
ISE “couldn't find inline method” on kotlin/Result compiled by old Kotlin versionKT-76931
K2: Annotation on do-while expression captures variables from inside the loopKT-77183
Metadata: remove multi-field value class representationKT-77678
Apply found optimization to Kotlin KMP parserKT-60127
K2: Support scripts with LightTree-based raw FIR buildingKT-77656
K/N: fix the super type for local delegated propertiesKT-75907
Inference/PCLA: consider storing semi-fixed variables in inference sessionKT-77144
Implement KMP Kotlin parserKT-77352
Implement KMP Expression parserKT-76984
SYNCHRONIZED_BLOCK_ON_JAVA_VALUE_BASED_CLASS isn't reported for primitive wrapper classes instantiated within the scopeKT-67471
K2: “Unresolved reference” on incorrect term of FQ nameKT-77269
[K/N] external calls checker crashes when used with cachesKT-74133
FIR: use EmptyDeprecationsPerUseSite consistently in symbolsKT-77100
java.lang.Void type is not ignorableKT-77491
K2: No SUPERTYPE_IS_EXTENSION_FUNCTION_TYPE when using typealiasKT-77490
Report error on contextual function type in supertypeKT-77431
Functional type with a context is allowed as an upper-boundKT-77432
Context isn't passed properly when functional type with a context is used as a type argumentKT-77417
There is no TYPE_VARIANCE_CONFLICT_ERROR when ‘out’ type is used in contextKT-62631
Improve expect-actual “checking” incompatibilities reportingKT-77481
Support ExpectRefinement feature in HMPP compilation schemeKT-77268
Make sure that -Xreturn-value-checker also enables -XX:UnnamedLocalVariablesKT-65719
K1/K2: Nullness defaults from subclass unsoundly applied to method in superclassKT-53836
In type-parameter declarations, recognize JSpecify annotations only on boundsKT-73658
JSpecify @NonNull
annotation on type-parameter bound prevents type-variable usages from being platform typesKT-77000
Leave ForbidInferOfInvisibleTypeAsReifiedOrVararg as a warningKT-74084
K2: False negative [NO_ELSE_IN_WHEN]KT-77451
FirLazyResolveContractViolationException for test with overridden delegateKT-77257
Report compilation error when in generated JVM bytecode there is a need for CHECKCAST of the conditional expression to the inaccessible interfaceKT-77256
Report compilation error when in generated JVM bytecode there is a need for CHECKCAST of the functional call result to the inaccessible interfaceKT-76356
K2 evaluation fails on evaluating inline methods if there is an inline with AutoCloseableKT-73786
Evaluator: cannot evaluate inline methods with reified parameterKT-77204
Native: XCode strip command causes flaky testsKT-77351
Implement KMP KDoc parserKT-76597
False negative opt-in required on delegated constructor callKT-76667
Mark the class implementation of interface function with ACC_BRIDGE in the class fileKT-77181
K2: a nested typealias annotation observes member declarations of the outer classKT-77180
K2: Wrong scope for annotation arguments in the constructor headerKT-77287
Try enforcing source != null
when origin == Source
KT-76135
K2: drop pre-1.8 language features from compiler codeKT-77231
Reflection: CCE on resuming coroutine after callSuspend if result is a generic inline class substituted with primitiveKT-77031
Investigate the actual need of deduplicating provider in HMPP compilation schemeKT-77050
Implement KMP KDoc lexerKT-77048
Implement KMP Kotlin lexerKT-77044
Consolidate, refine and update jFlex dependencyKT-77252
It is impossible to declare an unnamed variable in a scriptKT-58137
K2: ISE “Usage of default value argument for this annotation is not yet possible” when instantiating Kotlin annotation with default parameter from another moduleKT-77140
Protect ConstraintSystemCompletionMode.UNTIL_FIRST_LAMBDA with opt-inKT-75695
Bogus “Assigned value is never read” warning for prefix ++ operatorKT-52706
Bad signature for generic value classes with substituted type parameterKT-77149
IllegalArgumentException: source must not be nullKT-76806
K2: AIOOBE in FirEqualityCompatibilityCheckerKT-72391
KJS: (a * b).toDouble_ygsx0s_k$ is not a functionKT-76950
K2: “IllegalArgumentException: Inline class types should have the same representation: Lkotlin/UByte; != B” with nullable UByteKT-64731
K2: Annotation on inline function or inside inline function is hit by debuggerKT-76043
Native: NotImplementedError: Generation of stubs for class org.jetbrains.kotlin.ir.symbols.impl.IrFieldSymbolImpl is not supported yetKT-77126
Transitive dependency mismatch between Kotlin Gradle Plugin and Scripting dependenciesKT-65440
K2: Mark all potential implementations of List.getFirst()/getLast() as deprecated independently of JDKKT-72831
ANNOTATION_USED_AS_ANNOTATION_ARGUMENT missing in some cases in K2KT-73707
Remove dependency on “:compiler:backend.jvm” from NativeKT-75499
CheckerContext#{containingDeclaration, containingFile} in checkers should return symbolsKT-76548
False positive TYPE_MISMATCH when resolving an expression with the expected type from the upper boundKT-76142
K2: @RequiresOptIn
warning does not display the custom message when using concatenated strings.KT-68699
Kotlin Debugger: UPAE “lateinit property parent has not been initialized” on trying evaluate enumValues(), enumEntries() from inlined function with reified parameterKT-63267
K2: incorrect line numbers after smart cast of an extension receiverKT-71309
Kotlin Debugger: UnsupportedOperationException on calling method with reified type parameterKT-74912
K2: Investigate irrelevant ARGUMENT_TYPE_MISMATCH on top-level lambdasKT-74569
K2: Linenumber of annotation is present in constructor's LVTKT-74657
K2: Linenumber for annotation on local variable is present in LVTKT-74570
K2: Linenumber for annotation on property is present in LVTKT-76749
NONE_APPLICABLE message is unreadable for stdlib context functionKT-74932
Investigate false-negative ARGUMENT_TYPE_MISMATCH on a nested anonymous functionKT-74545
Redundant TYPE_MISMATCH in variable initializer with callKT-76774
K2: Simplify ResolutionMode.WithExpectedType contractsKT-76689
Unnamed local variable with type and without initializer is allowedKT-76746
ClassCastException: class org.jetbrains.kotlin.fir.types.impl.FirUserTypeRefImpl cannot be cast to classKT-76754
K2: Compiler doesn't check annotations on array literals (as annotation arguments)KT-76674
The function isn't called from unnamed local variable initializerKT-73348
AssertionError from isCompiledToJvmDefault on super call of suspend function with composable function parameterKT-73527
Prohibit (via a deprecation warning) accessing nested class through generic outer classKT-59886
K2: Disappeared ERROR_IN_CONTRACT_DESCRIPTIONKT-57949
FIR: SignatureEnhancement: mutation of java enum entryKT-57911
K2: Contracts are not inherited by substitution overridesKT-47398
‘null’ EnhancedNullability value in String-based ‘when’ might produce different behavior depending on whether ‘when’ is “optimized” or not
Compose compiler
Fixes
b/394891628
Allow specifying target version of Compose runtimeb/424454512
Recreate FirApplierInferencer for each checkb/417406922
Restrict references to @Composable
propertiesb/282135108
, b/349866442
[Compose] Enable applier checking when using FIRb/408492167
Emit parameter names in Compose source informationb/307592552
Add BigInteger and BigDecimal to the list of known stable classesb/414547195
Unwrap type casts when inferring @Composable
call arguments
IR. Inlining
Fixes
KT-76425
Do not store signatures of preprocessed inline functions in KLIBsKT-76763
[Inliner] Don't use attributeOwnerId to pass info from Inliner to non-JVM backendsKT-72464
[Native][JS][Wasm] Non-local return through suspend conversion breaks the IR inlinerKT-77102
[Inliner] Expression uses unlinked type parameter symbolKT-77079
IR: Report warnings on exposure of references to invisible declarations in inline functionsKT-69797
[references] Accessors for private function/constructor/property references are not generatedKT-76454
Investigate erasure of class type parameters during inlinerKT-72593
[K/N] Add NativeIrInliningFacade to CrossCompilationIdentityTestKT-70969
IR Inliner: Ensure that common prefix at 1st phase does not affect KLIB signaturesKT-75937
[IR Inliner] Umbrella for failing tests due to public inlinerKT-77295
Improve Diagnostic Message Formatting for Private API Exposure in Inline FunctionsKT-77047
Ir Ininler: crash on fake override in private class from more visible classKT-77336
[references] Synthetic accessor test for private top-level function accessed via reference fails with No function found for symbol
KT-76761
[Inliner] non-JVM IR Inliner incorrectly uses K/JVM-specific codeKT-76712
[Inliner] No function found for symbol ‘/|?’KT-76711
[Inliner] Reference to function ‘privateMethod’ can not be evaluated
IR. Tree
KT-76813
IR validator: not all symbols/references are visited
JVM. Reflection
KT-74529
Context parameters support in reflectionKT-52170
Reflection: typeOf<Array> gives classifier LongArray
JavaScript
New Features
KT-70486
K/JS: exported exception types should extend ErrorKT-19016
Define accessors as enumerable
Fixes
KT-55256
KJS: non-exported subclass with a no-parameter function overload doesn't compileKT-76034
passProcessArgvToMainFunction contains the node path and script pathKT-78169
KJS: [NON_EXPORTABLE_TYPE] with @JsExport
class if @JsStatic
companion method returns an out typeKT-70295
KLIB stdlib: Unify intrinsics for boxing captured variables in lambdas across non-JVM backendsKT-76093
Support new callable reference nodes in partial linkage in Kotlin/JSKT-77320
KJS: Big.js times() is compiled to multiply (*) operatorKT-77430
K/JS: Remove sharedBox* intrinsics from the standard libraryKT-69297
Deprecate referencing inlineable lambdas in js()
callsKT-73267
KJS: IC: “FileNotFoundException”: Build failures with Kotlin 2.1-RC and RC2KT-76912
KJS: @JsStatic
can't be used for companion objects implementing external interfacesKT-77242
Kotlin/JS & Kotlin/Wasm backends: Artificially apply reverse topo-order after IR linkageKT-77649
KJS: es-arrow-functions requires explicit opt-in when target is ES2015KT-77372
KJS: NullPointerException at JsIntrinsics$JsReflectionSymbolsKT-77620
Fix failing IC tests on WindowsKT-77190
Migrate JS diagnostic tests to the new CLI-based test facades (1st phase only)KT-77371
[K/N][K/JS][K/Wasm] Unify visibility rules for generated default argument stubsKT-77148
KJS: “Uncaught TypeError: (intermediate value).l(...).m is not a function” during production build runKT-77193
Migrate JS irText tests to the new CLI-based test facades (1st phase only)KT-77192
Migrate JS ABI reader tests to the new CLI-based test facades (1st phase only)KT-77187
Migrate JS box tests to the new CLI-based test facades (1st phase only)KT-77027
Migrate 1st phase facades to the phased CLI infrastructure in JS testsKT-76027
KJS: “ReferenceError: entries is not defined”: Accessing entries of an enum arbitrarily fails with println()KT-76232
Suspend contextual function with extension receiver results in wrong values at runtime in JS
Klibs
KT-75980
[Klib] Reduce serialized size of IrFileEntries for sparse usage of another source filesKT-75766
PL: Error on building fake override with multiple overridden members with unbound symbols in return typeKT-75757
PL: Error on building fake overrides with unbound symbols in value parametersKT-76827
KLIB cross-compilation tests: Don't use IR hashes and metadata hashes in test dataKT-76266
Move trigger of :tools:binary-compatibility-validator:check to native/native.tests/klib-ir-inlinerKT-74815
KLIB resolver can't consume metadata klibs between source sets when abi_versions divergeKT-76725
KLIB ABI export in older version: Restore legacy directoriesKT-76471
Partial linkage: add an attribute if a class is invalid
Language Design
KT-32993
Contract to specify that a function parameter is always true inside lambdaKT-8889
Contracts: if a given function parameter is not null, the result is not null
Libraries
KT-76389
Provide update
functions for common atomicsKT-34132
Contract for ClosedRange.contains(T?) operatorKT-78242
Move IrLinkageError to the common non-JVM part of the standard libraryKT-73853
Provide vararg constructors for Atomic ArraysKT-76773
stdlib: contextOf‘s type argument can be inferred via contextOf’s context argumentKT-67819
Document collection interfaces contracts
Native
KT-74662
Consider providing a way to enable stack canaries for Kotlin/Native binariesKT-76178
LLVM Update: symbol ‘__ZnwmSt19__type_descriptor_t’ missingKT-77378
[macos] Loading libraries with non resolved paths runs XProtectServiceKT-61549
Kotlin/Native: remove kotlin-native/Interop/JsRuntimeKT-76563
LLVM Update: numerous “was built for newer ‘macOS’ version” warnings
Native. C and ObjC Import
KT-71400
Fix disabled -fmodules testing for stdarg.h
Native. ObjC Export
KT-76974
Include conflicting element in objc export warningsKT-78034
ObjCExport: primitive type extension translated as static methodKT-77781
ObjCExport: support @ObjCName
for function parameters and receiver parametersKT-77592
KMP plugin uses incorrect Swift name from ObjCName annotationKT-77625
ObjCExport: ObjCName annotation adds kotlin name swift_nameKT-77484
KotlinConf app: Invalid identifiers in ObjCHeader.render
KT-77500
IllegalStateException
during generating ObjC header stubsKT-76338
Native, ObjCExport: Replace name mangling of special method families
Native. Runtime. Memory
KT-63143
Kotlin/Native: execute Cleaners on the finalizer thread
Native. Swift Export
KT-77650
Swift export execution tests fail with caches enabledKT-77634
K/N: swift export tests started failing after hyper-existentialsKT-77290
Transitive Export on swift export can duplicate declarations
Tools. CLI
KT-77030
Implement setup of HMPP sessions for KLib-based compilersKT-75812
Basic DSL for compiler arguments representationKT-76828
Warning doesn't exist error with -Xwarning-level when the source file has no codeKT-76957
Incorrect error message when severity is set with -Xsuppress-warning and -Xwarning-level for the same diagnosticKT-76111
kotlinc warns about org.fusesource.jansi.internal.JansiLoader call to System.loadKT-76447
Remove -Xjps compiler argument
Tools. Compiler Plugin API
KT-77157
Cannot create a symbol pointer for local class generated by FirFunctionCallRefinementExtension
Tools. Compiler Plugins
KT-75876
PowerAssert: don't display results for assertion operatorKT-75514
[JS][Native] Add IrPreSerializationLoweringFacade to Atomicfu test runnersKT-77719
Remove suppress INVISIBLE_REFERENCE from DataFrame pluginKT-77691
Kotlin DataFrame plugin: IR and FIR anonymous functions have inconsistent receiversKT-77339
Update kotlin dataframe dependency to 1.0.0-dev-6925KT-77455
kotlin-dataframe plugin throws NoClassDefFoundError in IDEKT-77437
Kotlin DataFrame: Add configuration key to disable top level properties generatorKT-74366
Delete kotlin-android-extensions compiler pluginKT-73364
Migrate atomicfu sources to new IR parameter API
Tools. Compiler plugins. Serialization
KT-73365
Migrate kotlinx-serialization sources to new IR parameter API
Tools. Gradle
KT-77546
Implement basic support for HMPP compilation scheme support in KGPKT-77107
Introduce Kotlin ecosystem pluginKT-63383
Add compiler performance metrics to Native build reportsKT-75921
Make Swift Export available by defaultKT-67291
Enable Project Isolation AND/OR Configuration Cache mode for Gradle Integration testsKT-77785
Add -fmodules option to CocoaPod dependency by defaultKT-76353
Handle migration to stable -jvm-default in KGP: replace deprecated option and suppress warningsKT-77163
Migrate Swift Export IT to injectionsKT-76740
Use Problems API for warning introduced in KT-75808
Tools. Gradle. Compiler plugins
Tools. Gradle. JS
KT-77073
generateTypeScriptDefinitions() does not add generated .d.ts file to package.json automatically
Tools. Gradle. Multiplatform
KT-77414
KMP dependencies in detached source sets cause IDE resolution to write error logs: “kotlin-project-structure-metadata.json (No such file or directory)”KT-76200
TestModuleProperties.productionModuleName for JVM module isn't present with 2.1.20-RC
Tools. Gradle. Native
KT-68256
Reduce commonizer max heap size to default 3g and allow users to configure itKT-77977
“Unknown hardware platform: riscv64” on JVM project build
Tools. Incremental Compile
KT-60653
IC does not handle changes in inline functions objects/lambdas correctlyKT-69075
Incremental compilation: smartcast is impossible on field with @JvmName
Tools. JPS
KT-75460
Adding @PurelyImplements
annotation to a List does not cause incremental recompile of affected filesKT-50594
Fix org.jetbrains.kotlin.arguments.CompilerArgumentsContentProspectorTest
Tools. Kapt
KT-77853
K2 KAPT: backend internal error: exception during IR fake override builderKT-73322
Migrate FirKaptAnalysisHandlerExtension
compilation pipeline to the phased structure
Tools. Maven. Compiler plugins
KT-77511
Add maven plugin for Kotlin DataFrame plugin
Tools. REPL
KT-77470
[K2 Repl] Lazy Properties crash code generation
Tools. Scripts
KT-78378
“Explain” feature of the kotlin script fails on hidden variables
Tools. Wasm
KT-75714
Wasm: Move tooling NPM dependencies outside user projectKT-76838
K/Wasm: No possible to set downloadBaseUrl to null for D8 and Binaryen
2.2.0
Analysis API
KT-73337
Migrate analysis sources to new IR parameter APIKT-75880
K2 Mode: Typealias reference resolves to the underlying class in KMP projectKT-74246
KaVisibilityChecker.isVisible is inefficient with multiple calls on the same use-siteKT-57733
Analysis API: Use optimized ModuleWithDependenciesScope
s in combined symbol providersKT-69535
Redesign ‘containingSymbol’KT-69950
Analysis API: Introduce isSubtypeOf(ClassId)
KT-68393
Analysis API: Rename KaClassLikeSymbol. classIdIfNonLocal
to classId
KT-62924
Analysis API: rename KtCallableSymbol.callableIdIfNonLocal -> callableId
Analysis API. Code Compilation
KT-75502
K2: IDEA hangs when evaluating inside kotlin-stdlib modules in the Kotlin projectKT-73077
Evaluation of inline functions is broken inside Kotlin project and Amper module in Idea sourcesKT-73936
K2: CyclicInlineDependencyException: Inline functions have a cyclic dependency in evaluatorKT-74582
InterpreterMethodNotFoundError when trying to evaluate simple expressions after recent fixesKT-74524
Compilation exception with incorrect JvmName annotation argumentsKT-74443
Compilation peer collector ignores inline property accessors
Analysis API. FIR
New Features
Performance Improvements
KT-75790
Experiment with increasing DEFAULT_LOCKING_INTERVAL timeKT-72159
LLFirCompilerRequiredAnnotationsTargetResolver: consider rewriting it to use honest jumping locks
Fixes
KT-76331
Cleanup FileStructureElement for classesKT-73117
K2 AA: Exception “Setter is not found” when val has a setter without bodyKT-76540
K2: Missing library dependency on Android SDK from androidx.activity-1.8.2 causes LiveEdit failuresKT-73266
K2. “Declaration should have non-local container” with unclosed annotation on top-level functionKT-76432
JavaClassUseSiteMemberScope: Expected FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImplKT-76217
K2 AA: “No fir element was found for KtParameter” with multiple context parameter listsKT-74740
Highlighting is broken after the built-in serialization refactoringKT-76366
ContextCollector: annotations on class members don't have the class as implicit receiverKT-76352
ContextCollector: wrong class annotation context in BODY modeKT-76341
ContextCollector: support dangling modifiersKT-76332
“Declaration should have non-local container” for declaration inside file annotationKT-76115
Disable FirElementBuilder#getFirForElementInsideAnnotations
optimization for files, classes and scriptsKT-76347
ContextCollector: avoid resolution for enum entry annotationsKT-76272
Cleanup AbstractFileStructureTestKT-75542
K2 AA: “FirDeclaration was not found for class KtNamedFunction, fir is class FirErrorExpressionImpl” for unclosed annotation on member functionKT-73719
K2. “FirDeclaration was not found for class KtDestructuringDeclaration, fir is class FirBlockImpl” on incorrect chain callKT-72908
K2 Analysis API: “FirDeclaration was not found for class org.jetbrains.kotlin.psi.KtFunctionLiteral” with non-local destructuring declaration without initializer before init
blockKT-75532
ContextCollector: scope for an anonymous function type parameter contains regular parametersKT-74508
FirElementBuilder#findElementInside
should reuse logic from KtToFirMapping#getFir
KT-73066
[LL] Enable low-level-api-fir-native even with the disabled native partKT-75132
Investigate failures of sandbox diagnostic testKT-75130
Set up LL FIR tests for sandbox test dataKT-73386
Standardize LL FIR test for compiler test dataKT-75125
ISE “Value classes cannot have 0 fields” on instantiating inline class without fieldsKT-75179
ContextCollector: support error propertiesKT-74632
K2: ISE FirLazyDelegatedConstructorCall should be calculated before accessingKT-74818
K2 AA: “FirDeclaration was not found for class KtTypeParameter, fir is null” with TYPE_PARAMETERS_NOT_ALLOWED on anonymous functionKT-73183
Support context parameters in ContextCollectorVisitorKT-60350
K2 IDE: top level destructuring RHS should be resolvableKT-74794
K2: FirLazyExpression should be calculated before accessing with context parameter and implicit return typeKT-72938
Get rid of KaFirAnnotationListForReceiverParameterKT-73727
Exception in implicit type resolution
Analysis API. Infrastructure
KT-74917
[Analysis API, Test Framework] Introduce a way to acquire PsiFile
for a given TestFile
in KtTestModule
Analysis API. Light Classes
KT-73405
Get rid of KtElement#{symbolPointer, symbolPointerOfType} API usagesKT-75391
Reduce the amount of psi-based logic in light classesKT-70001
SLC adds @Override
with zero text offset on override
memberKT-75755
K2. False positive red code on vararg parameters in Kotlin class with @JvmOverloads
when called from JavaKT-75397
Constructors and functions with non-last vararg parameters are treated as varargsKT-74868
Support context parametersKT-74733
SymbolPsiLiteral.text == value for Java constantKT-74620
Delegated functions with value classes are present in light classesKT-74595
Static functions with value classes are present in light classesKT-74284
Synthetic data class methods using value class types present in LC
Analysis API. Providers and Caches
Performance Improvements
KT-62115
Analysis API: Package providers are not cached per search scopeKT-74463
Analysis API: LLNativeForwardDeclarationsSymbolProvider
queries its cache even when the ClassId
cannot represent a native forward declaration
Fixes
KT-74541
Analysis API: Include files generated by resolve extensions in KaModule
content scopesKT-64236
Analysis API: Introduce a separate module for fallback dependencies of library source modulesKT-74090
Analysis API: Support dumb mode (restricted analysis)KT-63780
Analysis API: Invalidate resolvable library sessions when binary library modules are modifiedKT-72388
KaFirStopWorldCacheCleaner: Control-flow exceptionsKT-74943
Analysis API: Replace KotlinGlobalModificationService
with simpler global modification event publishing and listener-based modification trackersKT-70518
K2: Analysis API: Access indices outside of ConcurrentMap
computation in symbol providersKT-74302
Analysis API: LLFirProvider
should disregard self-declarations in getFirClassifierBy*
KT-67868
Analysis API: Improve the architecture of LLFirKotlinSymbolProvider
s
Analysis API. Standalone
KT-72810
withMultiplatformLightClassSupport is inconvenient in Standalone
Analysis API. Stubs and Decompilation
KT-71787
PsiRawFirBuilder.Visitor#visitStringTemplateExpression
forces AST loadingKT-68484
K2 IDE, Analysis API: “We should be able to find a symbol for function” for getting KaType of Iterable<T>.map(transform: (T) -> R)
parameter in J2K
Analysis API. Surface
New Features
KT-74475
Add isInline
for KaPropertySymbol
KT-75063
KaScopeContext: support context parameters
Performance Improvements
KT-73669
Support psi-based symbol pointer for implicit primary constructorsKT-76008
Provide PSI-based implementation for KaFirNamedClassSymbol#companionObject
KT-70165
Introduce PSI-based KaSymbol
s for K2
Fixes
KT-72730
K2: “Unexpected owner function: KtNamedFunction” on vararg val parameter in functionKT-75123
K2. KaFirNamedFunctionSymbol should contain a receiverKT-75894
Cannot build KaFirJavaFieldSymbol for FirFieldImplKT-75115
Analysis API: The JavaModuleResolver
compiler class is leaked to Analysis API platform implementationsKT-76018
K2: Stop the wold leads to deadlock/freezeKT-76011
KaFirNamedClassSymbol#companionObject
doesn't provide generated objects generated by compiled pluginsKT-72482
“KotlinIllegalArgumentExceptionWithAttachments: Expected all candidates to have same callableId but some of them but was different” on trying to add the importKT-75586
KaFirPropertyGetterSymbol#isInline
and KaFirPropertySetterSymbol#isInline
is incorrect for accessors with explicit modifierKT-58572
Analysis API: Enforcing STATUS resolve in ‘KtFirNamedClassOrObjectSymbol.visibility’ may cause lazy resolve contract violationKT-75574
Recognize injected code fragment copiesKT-75573
Recognize physical file copies as dangling filesKT-74801
Analysis API: Publish/subscribe to modification events with a single message bus topicKT-73290
Analysis API: Improve the architecture of content scopes and resolution scopesKT-68901
Constructor delegation call receiver missing in fir implementationKT-72639
Support context parameter APIKT-73112
AA: FirExpression.toKtReceiverValue should handle context receivers properlyKT-74905
Cannot find context receiver in FIR declarationKT-74563
createPointer
is overloaded not for all implementationsKT-73722
Analysis API: Automatically check that the API surface is fully documentedKT-65065
Provide KtTypeReference#getShortTypeText()
Backend. Native. Debug
KT-75991
Xcode 16.3: Fix lldb stepping test over an inline function
Backend. Wasm
New Features
KT-59032
Support instantiation of annotation classes on WASM
Fixes
KT-77622
K/Wasm: investigate CMP crash on mobile SafariKT-76747
[Wasm] Wasm name section absent for wasm structsKT-76701
K/Wasm: custom formatters are not loaded when a project is built with incremental compilationKT-66081
K/WASM: 0/0
, 5/0
and 5%0
throw not ArithmeticException, but RuntimeErrorKT-76287
[Wasm] Enable stdlib and kotlin.test tests after compiler bootstrapKT-75871
[Wasm] Implement new RTTI approachKT-75872
Wasm / IC: IllegalStateException: IC internal error: can not find libraryKT-74441
K/Wasm: incorrect 1e-45.toString()KT-59118
WASM: floating point toString inconsistenciesKT-68948
Wasm: float from variable is printed with many decimal pointsKT-69107
[wasm] Seemingly incorrect roundingKT-73362
Migrate K/Wasm sources to new IR parameter API
Compiler
New Features
KT-70722
Implement better Kotlin warnings for value classes and JEP 390 (Warnings for Value-Based Classes)KT-71768
Enable -Xjvm-default=all-compatibility by default to generate JVM default interface methodsKT-54205
Support jakarta Nullability annotationsKT-57919
Store all annotations in Kotlin metadata on JVM under a flagKT-73255
Change defaulting rule for annotationsKT-74382
Annotating Java record components for @JvmRecord
data classKT-74811
Prohibit usages of @MustUseValue
/ @IgnorableValue
if RV checker is not enabledKT-74806
Implement feature flag for improved unused return value checkerKT-74809
Support unnamed local variablesKT-73508
Add a warning diagnostic for using kotlin.concurrent.AtomicRefKT-72941
ANNOTATIONS_ON_BLOCK_LEVEL_EXPRESSION_ON_THE_SAME_LINE missing in K2KT-74497
Warn about incompatible Kotlin and Java targets in annotationsKT-75061
Support context-sensitive resolution in type positionKT-75315
Support context-sensitive resolution in the call-argument positionKT-75316
Support context-sensitive resolution for expression-position with expected typeKT-76088
Support context-sensitive resolution for annotation argumentsKT-74049
Introduce special override rule to allow overriding T! with T & Any
Performance Improvements
KT-76395
Performance degradation on 28.03.2025KT-76422
FirJavaFacade#createFirJavaClass: do not compute super type references right awayKT-75957
K2: PsiRawFirBuilder.Visitor#toFirExpression forces AST loading via getSpreadElementKT-74824
Exponential performance caused by nested flexible typesKT-62855
K2: extra allocation for SAM conversion compared to K1KT-74977
K/N: support stack array for Array(size) callKT-74369
Exponential compiler memory usage in specific situations with type inference
Fixes
KT-76606
Enable ‘Indy: Allow lambdas with annotations’ by defaultKT-77301
False positive Context Parameter resolution when using DslMarkerKT-74389
K2: False positive NON_EXPORTABLE_TYPE on non-Unit Promise<...>
in K/JSKT-77219
“@Composable
annotation is not applicable” on vararg @Composable
() -> Unit in Kotlin 2.2.0KT-76357
K2: a nested class annotation observes member declarations of the outer classKT-72734
Support new callable reference nodes in Kotlin NativeKT-74421
K2: Missing “val cannot be reassigned” when trying to assign a value to parent's “val”KT-63720
Coroutine debugger: do not optimise out local variablesKT-74470
NSME on calling in runtime internal constructor of value class with default arg from testsKT-77640
Context parameters: using ‘contextOf()’ function leads to [NO_CONTEXT_ARGUMENT]KT-73909
Add an inspection discouraging usage of kotlin.concurrent Native atomics in favor of the new atomicsKT-76583
CCE: suspend lambda attempts to unbox value class parameter twice after lambda suspendedKT-76663
KJS: KotlinNothingValueException caused by expression return since 2.1.20KT-75457
Native: cache machinery uses stdlib cache with default runtime options even if custom runtime options are supplied when partial linkage is disabledKT-76615
K2: “IllegalArgumentException: Inline class types should have the same representation: Lkotlin/UByte; != B” for mixed Java/Kotlin codeKT-77220
Annotation with EXPRESSION is not allowed on lambdas in Kotlin 2.2.0KT-76381
K2: Expected expression ‘FirPropertyAccessExpressionImpl’ to be resolvedKT-74739
Native: “IllegalArgumentException: All constructors should've been lowered: FUNCTION_REFERENCE”KT-74325
Explicit API mode does not enforce explicit return types for extension propertiesKT-77259
Confusing message for ANNOTATION_WILL_BE_APPLIED_ALSO_TO_PROPERTY_OR_FIELD
KT-73771
K2: Infinite compilation caused by buildList without typeKT-61258
Kotlin/Native: CLASS CLASS name: modality:FINAL visibility:local superTypes:[.Base]KT-75317
Kotlin/Native: segfault in kotlin::gc::Markkotlin::gc::mark::ConcurrentMark::MarkTraitsKT-75965
The iOS app did not run successfully in Release modeKT-77397
Report UNSUPPORTED_CONTEXTUAL_DECLARATION_CALL when calling declaration with contextual function type in signatureKT-77137
K2: Controversial behavior allows resolving annotation arguments on a companion inside itKT-77150
Native: compilation fails with an assertion errorKT-51960
ClassCastException: Inline function with both context and extension receiver produces this when invokedKT-73611
Remove -Xextended-compiler-checks in favor of a deprecation cycleKT-74649
Deprecate language versions 1.8 and 1.9KT-77283
Binary compatibility of FirDeclarationCheckerKT-73445
K2: do not report “cannot infer visibility” when inheriting multiple implementationsKT-75945
Indy: Allow lambdas with annotationsKT-76898
K2: ClassCastException when data class shadows supertype's componentX
method with wrong typeKT-75992
Xcode 16.3: stacktraces on simulators are not symbolicatedKT-76805
Wrong NPE occurs when assigning synthetic properties with platform types in Kotlin 2.1.20KT-76171
“KotlinIllegalArgumentExceptionWithAttachments: Expected expression ‘FirSingleExpressionBlock’ to be resolved”KT-77078
K2: anonymous object is wrongly allowed to implement interfaces by unsafe DelegationKT-72722
Treat ‘copy’ calls of a data class as explicit constructor usagesKT-77001
Leave ForbidParenthesizedLhsInAssignments as a warningKT-75828
Store backing field/delegate annotations and extension receiver annotations in metadataKT-58369
K2: enable DFA warningsKT-51258
Annotations should go before context receiversKT-76253
K2 Compiler: Less precise diagnostic COMPONENT_FUNCTION_AMBIGUITY for flexible typeKT-59526
Store annotation default values in metadata on JVMKT-63850
K2: setter with an annotated parameter has isNotDefault == false
flag in metadataKT-75712
-Wextra: false positive UNUSED_LAMBDA_EXPRESSION on functional type variable assignment with inferred typeKT-4779
Generate default methods for implementations in interfacesKT-69624
Debugger: Missing local variable in Variables view (inline function)KT-75518
NO_CONTEXT_ARGUMENT should report the name of the context parameter in addition to the typeKT-76199
Introduce -Xcontext-sensitive-resolution compiler flagKT-75553
MISSING_DEPENDENCY_SUPERCLASS
and MISSING_DEPENDENCY_SUPERCLASS_WARNING
is reported at the same time on the same elementKT-76159
Obsolete error “‘@JvmDefaultWithCompatibility
’ annotation is only allowed on interfaces” should be removedKT-76660
False negative RETURN_NOT_ALLOWED in lambda in default argument leads to NoClassDefFoundError: $$$$$NON_LOCAL_RETURN$$$$$KT-76301
Fail to infer types after syntactical changeKT-74999
K2: KotlinNothingValueException within Extension FunctionKT-76675
KIAEWA exception at KaFirDataFlowProvider with non-local return from nested inline callKT-75756
Backend Internal error: Exception during IR lowering when trying to access variable from providedProperties in class within kotlin custom scriptKT-76345
Enhance variable fixationKT-76578
[FIR, K1/K2 Regression] lateinit
is allowed on loop parametersKT-76448
FirOverrideChecker: class ClsMethodImpl is not a subtype of class KtNamedDeclaration for factory VIRTUAL_MEMBER_HIDDENKT-73360
Migrate K/JVM sources to new IR parameter APIKT-74852
Kotlin/Native: allow caches for thread state checker and sanitizersKT-76130
IR evaluator does not support array literals in annotation parameter default valuesKT-76436
Missing K2 checker: non-local return through lambda passed to inline f/oKT-74326
False negative: no variable must be initialized error though code doesn't compileKT-76572
FIR_NON_SUPPRESSIBLE_ERROR_NAMES does not contain deprecation errorsKT-75704
Refactor FirWhenSubjectExpression
KT-76284
Flexible captured type is not approximated in receiver positionKT-76192
RETURN_TYPE_MISMATCH with same expected and actual type: nullability of actual type is omittedKT-75944
Allow using invokedynamic for lambdas with no ‘Runtime’ level retention annotationsKT-76396
FirIntegerConstantOperatorScope: NoSuchElementException: Collection contains no element matching the predicateKT-76209
CONFLICTING_UPPER_BOUNDS on Nothing
boundKT-59506
Context receivers: Unable to use trailing comma in receiver listKT-46119
NONE_APPLICABLE instead of NAMED_ARGUMENTS_NOT_ALLOWED with overloaded Java constructor callKT-75503
Run lazy resolution in CallableCopyTypeCalculator and use withForcedTypeCalculator everywhere in checkersKT-76485
Don't report EXTENSION_SHADOWED_BY_MEMBER if extension can be called with named argumentsKT-76154
False positive “EXTENSION_SHADOWED_BY_MEMBER” when extension adds default values to parametersKT-76527
False positive UNSUPPORTED_CONTEXTUAL_DECLARATION_CALL with -Xcontext-receivers and implicit invokeKT-63246
K2: False positive NOTHING_TO_OVERRIDE in generic property with context receiver in non generic class extending generic classKT-58534
K2: “Argument type mismatch” with typealias to context receiver functional typeKT-71792
Switch latest stable version in Kotlin project to 2.2KT-74827
CompilationErrorException : Could not load module in an attempt to find deserializer when trying to evaluate an expressionKT-70352
K2: False-negative CONFLICTING_UPPER_BOUNDS on Nothing
boundKT-71481
K2: drop pre-1.6 language features from compiler codeKT-74454
Support trailing comma in context parametersKT-74069
False positive UNUSED_EXPRESSION due to Long/Int conversionKT-74337
Local Delegated properties don‘t preserve their annotations and don’t show up in reflectionKT-55187
Context receivers in function types can have labelsKT-58498
Context receivers: ClassCastException with object and extension function in interfaceKT-58165
K2: “IllegalArgumentException: No argument for parameter VALUE_PARAMETER” on overridden contextual propertyKT-75234
Add error for callsInPlace contracts on context parametersKT-73805
K2: Investigate missing diagnostic in implicit invoke call on context function type with receiver from module with disabled context parametersKT-41934
NI: a type variable for lambda parameter has been inferred to nullable type instead of not null oneKT-75983
Backend Internal error: Exception during IR lowering ‘IllegalStateException: Internal error: cannot convert Any to Int’KT-75535
Compilation of typealias does not check for clashesKT-72313
K2 IDE / KMP Debugger: Evaluation of inline functions declared in a common source set causes a crashKT-76290
False positive UNUSED_EXPRESSION while returning Unit in the when branchesKT-32358
NI: Smart cast doesn't work with inline function after elvis operatorKT-76316
K2: Missing NON_PUBLIC_CALL_FROM_PUBLIC_INLINE on object extending private class in public inline functionKT-76324
Frontend diagnostic says “... this will be an error in Kotlin N.M” but N.M is already releasedKT-76058
PCLA: compile-time failure on calling a higher-order function from another module inside a lambda assigned to a variable of a type with a postponed type variableKT-75571
K2: type mismatch error provides unsubstituted typesKT-31391
‘Recursive call is not a tail call’ with elvis operator in tailrec functionKT-73420
False-positive NON_TAIL_RECURSIVE_CALL
on tailrec function with elvis in the return statementKT-75815
Disable warnings about different context parameter names in overridesKT-75169
Unnecessary EXTENSION_SHADOWED_BY_MEMBER on generic declarationsKT-75483
Native: redundant unboxing generated with smart castKT-76339
K2: Dangling modifier list is missed for enum entries in PSI modeKT-75513
Avoid overrides traversal without preinitializationKT-74587
Report an error when JvmDefaultWithoutCompatibility is used with -Xjvm-default=allKT-76257
Annotations with class references are not supported when marking IR declarations as visible to metadataKT-71793
Drop language versions 1.6 and 1.7KT-59272
Incorrect bytecode generated: wrong line number table after conditionKT-69248
K2: IAE “class KtDotQualifiedExpression is not a subtype of class KtCallExpression for factory ENUM_CLASS_CONSTRUCTOR_CALL” with qualified enum constructor callKT-73778
Kotlin Debugger: NSFE on accessing private property from dependencies during evaluationKT-74131
Incorrect line numbers for static initializer with delegated local variableKT-76320
K2: PsiRawFirBuilder: import alias triggers ast loadingKT-63851
K2: No setterValueParameter
in metadata for property setter with an annotated parameterKT-55083
JVM: AbstractMethodError caused by lambda with sealed base interface and fun sub interface and overridden methodKT-16727
Names for anonymous classes in interfaces are malformed on JDK 8KT-12466
NoClassDefFoundError: B$DefaultImpls on super interface call through K-J-K inheritanceKT-71002
Possible inheritance from nullable type through typealiasKT-75293
K2: Missing [HAS_NEXT_FUNCTION_TYPE_MISMATCH] diagnosticsKT-75498
Forbid .declarations access from checkersKT-72335
KotlinIllegalArgumentExceptionWithAttachments when using illegal selectorKT-68375
K2: FirPrimaryConstructorSuperTypeChecker fails on generated superclassesKT-71718
K2: drop TypePreservingVisibilityWrtHackKT-75112
FE resolves wrong receivers order for property passed to delegateKT-75924
K2. Incorrect generic type Inference “R? & Any” appears for “Add explicit type arguments”KT-75969
java.lang.IllegalArgumentException: source must not be null on red codeKT-75322
ConeDiagnosticToFirDiagnosticKt: source must not be nullKT-73800
Wrong method executed on super call in -Xjvm-default=all/all-compatibility with an extraneous super-interfaceKT-38029
Wrong method executed on super call in diamond hierarchy with covariant overrideKT-75242
Any use-site target can be applied to a lambda and an expressionKT-73051
incorrect direction of subtyping violation in type mismatch error's message for A<X> </: A<Y> given a Tv <: Rv == C constraint from a lambda return positionKT-75090
Argument type mismatch: actual type is ‘SuspendFunction0’, but ‘SuspendFunction0’ was expected when anonymous function is passed to function expecting suspend function typeKT-74956
K2: No USAGE_IS_NOT_INLINABLE with compiling an inlined function callKT-76049
K2: drop explicitTypeArgumentIfMadeFlexibleSynthetically creation when DontMakeExplicitJavaTypeArgumentsFlexible is enabledKT-76055
K2: drop prepareCustomReturnTypeSubstitutorForFunctionCall logic when DontMakeExplicitJavaTypeArgumentsFlexible is enabledKT-76057
K2: don't do reverse Java overridability checks when DontMakeExplicitJavaTypeArgumentsFlexible is enabledKT-75197
K2: Missing [COMPARE_TO_TYPE_MISMATCH] diagnosticsKT-75639
Inline context
function leads to ClassCastException
KT-75677
K2: change runtime behavior of KT-75649 case in 2.2KT-75961
K2: PsiRawFirBuilder.Visitor#visitSimpleNameExpression
forces AST loading via getReferencedNameElement().node.text
KT-67869
Make inference for lambda working consistently inside and outside of the callKT-74885
K2: IAE “source must not be null” in FirCyclicTypeBoundsCheckerKT-75578
K2: False negative [SUPER_CALL_WITH_DEFAULT_PARAMETERS] when calling the upper-class implementation of a method with the default value argumentKT-73954
Generate implementations in classes for inherited non-abstract methods in -Xjvm-default=all-compatibilityKT-75173
Context parameters: KotlinIllegalArgumentExceptionWithAttachments if you override function with value/extension parameter by fun with contextKT-75742
Native: "IllegalArgumentException: unknown pass name '' " when specifying an empty list of LLVM passesKT-74819
K2: False-positive overload resolution ambiguity for flatMap inside PCLAKT-75093
K2 IDE: “Unreachable code” highlighting range is confusingKT-74572
Context parameters: contracts don't work with context parametersKT-74765
Move K1 lazy IR implementation from ‘ir.tree’ to ‘psi2ir’KT-71425
IR Inliner: investigate return type of an inlined blockKT-74764
Native: merge init nodes generated within the same LLVM module for the same klibKT-75561
K/N: place InteropLowering after UpgradeCallableReferences phaseKT-73369
K/N: move interop lowering up the pipelineKT-75517
K2: Refactor FirCallableSymbol.resolvedContextParameters to return symbolsKT-75821
K2: REPL resolution doesn't take into account the property type when processing its initializerKT-75705
IllegalArgumentException when isInitialized is used with java fieldKT-75334
Java target shouldn‘t be specified if Kotlin target isn’t specifiedKT-75157
Missing PARAMETER_NAME_CHANGED_ON_OVERRIDE and DIFFERENT_NAMES_FOR_THE_SAME_PARAMETER_IN_SUPERTYPES for context parametersKT-75160
Check usages of value parameters in checkers and adapt to context parametersKT-75729
KtPsiFactory: no type-safe way to create triple-quoted KtStringTemplateExpressionKT-75040
Unify subject
and subjectVariable
in FirWhenExpression
KT-75323
FirSyntheticProperty: Unexpected status. Expected is FirResolvedDeclarationStatus, but was FirDeclarationStatusImplKT-75602
Introduce concept of shared library session in Fir sessionsKT-75509
PARAMETER_NAME_CHANGED_ON_OVERRIDE is reported randomlyKT-75124
IAE “class org.jetbrains.kotlin.psi.KtContextReceiver is not a subtype of class org.jetbrains.kotlin.psi.KtParameter for factory EXPOSED_PARAMETER_TYPE” on private context receiverKT-73585
K2: ABSTRACT_SUPER_CALL is not reportedKT-75531
K2 REPL: local name doesn't shadow one from implicit receiverKT-73359
Migrate frontend sources to new IR parameter APIKT-75380
K2: Modality is configured incorrectly for some FirDefaultPropertyAccessorKT-75526
Regression in K2 scripting: local name doesn't shadow one from the implicit receiverKT-59379
K2: Missing MIXING_NAMED_AND_POSITIONED_ARGUMENTSKT-75106
K2: type parameters of anonymous functions are unresolvedKT-73387
Unexpected implicit type during enhancementKT-72618
Cannot define operator inc/dec in class contextKT-74546
Serialize context parameters to metadataKT-68768
K2: unsuccessful inference fork with jspecify annotationsKT-75345
Add a test for KT-42271KT-75012
K2: Compiler crash on dynamic == null
KT-75195
IllegalStateException: No value for annotation parameter when @all
meta-target is used with annotation with constructorKT-75163
WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET for @all
meta-target although there are applicable targetsKT-75198
@all
meta-target should be forbidden for delegated propertiesKT-74958
K2: UNEXPECTED_TRAILING_LAMBDA_ON_A_NEW_LINE isn't reported on accidental trailing closureKT-74982
Improve UNSUPPORTED message handlingKT-75111
False negative “This declaration needs opt-in” for usage of enum entry with OptIn marker in another moduleKT-74924
Infinite recursion in substitution of captured type with recursive supertypeKT-75289
NPE: getParent(...) must not be nullKT-75275
Inline class member inherited from interface is not mangled in ‘-Xjvm-default=all-compatibility’KT-74340
FIR: folding binary expression chains for psi parserKT-73831
Do not choose field
target in annotation classesKT-73494
Enable first-only-warn annotation defaulting modeKT-75174
K2: incorrect influence of return type nullability on required receiver type in KJK hierarchy with propertyKT-74920
Overriding T! with T & Any is not allowed to the extension property receiver typeKT-75150
False ambiguous context parameter reported because context is not chosen via generic parameterKT-74965
CLI compiler doesn't report syntax errors for JS, Metadata backends if light-tree mode is disabledKT-74303
K2 IDE / Kotlin Debugger: AE “Trying to inline an anonymous object which is not part of the public ABI” on evaluating private inline function with object insideKT-75177
NoSuchMethodError on suspend default interface method fake override returning inline class in -Xjvm-default=all-compatibilityKT-74718
K/N: Move TestProcessor phase to the top of the pipelineKT-75015
Context parameters: it is possible to declare anonymous function with modifiers but they don't have any effectKT-75092
K2: Missing errors for modifiers on anonymous function in statement positionKT-75009
Context parameters: context is unresolved inside anonymous function if passed as an argumentKT-75017
Context parameters: "IllegalStateException: Cannot find variable a: R|kotlin/String| in local storage " when context from another local function is calledKT-75154
Context receiver deprecation warning should depend on langauge version, not on LATEST_STABLEKT-74979
Context parameters: anonymous functions with a context aren't parsed in complex casesKT-74673
K2: ClassCastException when passing suspending functional interface with genericKT-74469
K2: False positive: “Argument type mismatch” during Java interopKT-75105
K2: False negative NAME_IN_CONSTRAINT_IS_NOT_A_TYPE_PARAMETER for type constraint of anonymous functionKT-74929
False positive TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER if it is used with T&AnyKT-74227
K2: “Cannot infer type for this parameter. Please specify it explicitly” caused by lambda in another lambda with a parameterized function typeKT-64558
K2 compiler does not report UNNECESSARY_SAFE_CALL, UNNECESSARY_NOT_NULL_ASSERTION, USELESS_ELVIS, while K2 IDEA doesKT-74728
K2: Java method overriding Kotlin method with receiver loses vararg modifierKT-70789
CLI error “mixing legacy and modern plugin arguments is prohibited” on using -Xcompiler-plugin unless default scripting plugin is disabledKT-72829
Forbid ‘entries’ name of enum entry, and deprioritize it in resolveKT-75037
K2: IrGeneratedDeclarationsRegistrar.registerFunctionAsMetadataVisible doesn't handle extension receivers and context parametersKT-73149
Annotations support for context parametersKT-74798
Report error on local contextual propertiesKT-74092
Context parameters: it is not possible to declare an anonymous function with a contextKT-52152
K2: Investigate suspicious code at SAM conversionsKT-75016
K2: BackendException when context var property is declared in interfaceKT-74474
K2: Report more precise diagnostic when last expression of non-unit lambda is a statementKT-74478
K2: False negative RETURN TYPE_MISMATCH if the last statement of a lambda is indexed assignmentKT-73685
K2 IDE / Kotlin Debugger: NSME “Method not found” on evaluating function with constant value in @JvmName
KT-74449
Report RETURN_TYPE_MISMATCH instead of ARGUMENT_TYPE_MISMATCH for return expressions in lambdasKT-74918
FIR: account for K/Wasm diagnostics in generateNonSuppressibleErrorNamesFileKT-74897
K2: Report UNSUPPORTED_FEATURE instead of TOPLEVEL_TYPEALIASES_ONLY for nested type aliasesKT-74963
K2: Fir2Ir: Avoid a situation when startOffset > endOffset in generated IrBranchKT-74697
Overriding a method that's both deprecated and non-deprecated should not cause warningsKT-74928
K2: “IllegalStateException: Cannot find cached type parameter by FIR symbol” in KJK hierarchy with extension propertyKT-74630
K2: local class arguments in annotations on types and type parameters are not serializedKT-74445
Commonize Native Function/Property reference loweringsKT-74670
Warning message CONTEXT_CLASS_OR_CONSTRUCTOR isn't reported for context receiver on the constructorKT-74617
Trivial SMAP optimization leads to missing debug info after inlineKT-74812
compile-time failure on a callable reference with an input type inferred to an inaccessible generic typeKT-66195
K2: Java method is not enhanced from overridden's context receiversKT-74501
Context parameters: ABSTRACT_MEMBER_NOT_IMPLEMENTED if fun with context is implemented in Java in KJK hierarchyKT-74385
Missing diagnostic on repeated suspend modifier in function typeKT-74749
Provide explanation IR before script compilationKT-74751
K2: IllegalStateException: Can't apply receivers of FirPropertyAccessExpressionImpl to IrTypeOperatorCallImplKT-74729
NPE when suspend lambda has inline class parameterKT-74336
Not supported: class org.jetbrains.kotlin.fir.types.ConeIntersectionTypeKT-74203
K2: False negative NO_ELSE_IN_WHEN of a generic type with star projection <*> bounded by a sealed hierarchyKT-48085
Kotlin/Native: LLD removes live code with --gc-sections
when producing DLLKT-69164
Native: use lld from bundled LLVM distribution when compiling on Windows for a MinGW targetKT-74081
Context parameters: implicit call resolves to extension when there is a contextKT-74682
Implement internal type exposure via parameter bounds deprecation postponementKT-74556
K2: “IAE: class KtDestructuringDeclaration is not a subtype of class KtNamedDeclaration for factory REDECLARATION” with two non-local destructuring declarationsKT-73146
Context parameters CLI & diagnosticsKT-72104
Consider enabling check for unbound symbols in JVM before loweringsKT-74568
Synthetic nested classes missing JVM attributesKT-73703
[Native] Move KonanIrLinker to serialization.native
moduleKT-61175
K2: FirReceiverParameter does not extend FirDeclarationKT-73961
‘lateinit is unnecessary’ on transient properties should not be reported for serializable classesKT-73858
Compose / iOS: NullPointerException on buildingKT-62953
JVM IR: Use SimpleNamedCompilerPhase
instead of NamedCompilerPhase
KT-72929
Consider caching typealiased constructor symbols created by TypeAliasConstructorsSubstitutingScopeKT-74459
K2: false positive MISSING_DEPENDENCY_CLASS for types inside default argumentKT-73705
[Native] Decouple native caches support from KonanIrLinker and KonanPartialModuleDeserializerKT-74091
K2: @JvmOverloads
-produced overloads have generated line number tableKT-69754
Drop -Xuse-k2 compiler flagKT-73352
K2: false negative ARRAY_EQUALITY_OPERATOR_CAN_BE_REPLACED_WITH_EQUALSKT-72962
Consider enabling ConsiderForkPointsWhenCheckingContradictions LF earlierKT-73027
IllegalStateException: Annotation argument value cannot be null: sinceKT-74242
Freeze on runCatching
call in finally
block inside SAM conversionKT-29222
FIR: consider folding binary expression chainsKT-73760
Cannot implement two Java interfaces with @NotNull
-annotated type argument and Kotlin's plain (nullable) type parameterKT-58933
Applying suggested signature from WRONG_NULLABILITY_FOR_JAVA_OVERRIDE leads to red codeKT-70507
Should parentheses prevent from plus/set operator desugaring?KT-67520
Change of behaviour of inline function with safe cast on value typeKT-67518
Value classes leak their carrier type implementation details via inliningKT-72305
K2: Report error when using synthetic properties in case of mapped collectionsKT-71226
K2 Evaluator: Code fragment compilation with unresolved classes does not fail with exceptionKT-70233
Implement a deprecation error for FIELD-targeted annotations on annotation propertiesKT-67517
Value class upcast to Any leaks carrier type interfacesKT-72814
FIR: don't use function references in FirThisReferenceKT-73153
K2: Standalone diagnostics on type arguments are not reportedKT-73011
K2: Allow overloads resolution for callable references based on expected type variable with constraintsKT-70139
Remove dependencies of debugger on K1 and old JVM backendKT-69223
Drop parallel lowering mode in JVM backendKT-7461
Forbid using projection modifiers inside top-level Array in annotation's value parameterKT-53804
Restore old and incorrect logic of generating InnerClasses attributes for kotlin-stdlibKT-52774
Resolve unqualified enum constants based on expected type
Compose compiler
New features
5f7e5d1
Enabled PausableComposition feature flag by defaulte49ba7a
Enabled OptimizeNonSkippingGroups feature flag by default
Fixes
b/420729503
Avoid copying @Deprecated
annotations on Compose compiler stubsb/417412949
Emit fake line number for skipToGroupEnd
branchb/412584977
Fix false positive for overriding open functions from older dependenciesb/409238521
Fix crash when searching for ComposableLambda::invoke function on JSb/408752831
Fix early return with value from key
groupsb/388505454
Treat context parameters the same way as extension receiverb/408013789
Add missing return for the default function wrappersb/405541364
Realize coalescable children in the body of key
callb/305035807
Add support for @Composable
function references with K2b/401484249
Generate a group around Array
constructor callb/400380396
Fix missing endMovableGroup
call with early return in key
functionb/397855145
Fix “Unknown file” error in target annotation inferenceb/274898109
Fix off-by-one error when calculating changed arg count for lambdasb/377499888
Allow restarting overridden functions in a final classb/393400768
Use -1 for .changed
call if nullable enum parameter is null
b/390151896
Fix default arguments with varargs in @Composable
functionsb/388030459
, b/377737816
Prevent usage of transitive captures in lambda memoizationb/310004740
Check vararg parameter length in skipping logicb/367066334
Add diagnostic to restrict @Composable
annotation to function types onlyb/388505454
Change order of $changed bits with context parametersCMP-7873
Native build fails with “e: Compilation failed: Exception during generating code for following declaration”
IDE
KT-54804
Generate synthetic functions for annotations on properties in light classes
IR. Actualizer
KT-70907
Actualize fake override symbols in Ir Actualizer
IR. Inlining
Fixes
KT-76145
Enhance error message about poisoned KLIBs in KLIB-based compilersKT-70916
IR: Report errors on exposure of private types in non-private inline functionsKT-73155
Move Mapping
from LoweringContext
back to CommonBackendContext
KT-76186
[IR] Sanitize deserialized IR dump of anonymous classesKT-75788
IR inliner: Serialize preprocessed inline functions in a separate place inside KLIBsKT-71416
Perform IR-level visibility diagnostics for inline functions after the first phase of inliningKT-76224
[IR][Inliner] Dumb file is unsuported in IrSymbolBase.getDescriptor()KT-75793
IR inliner: Stop injecting the deserialized function body to LazyIR inline functionKT-75791
IR inliner: NonLinkingIrInlineFunctionDeserializer
should load inline functions from a separate location in a KLIBKT-73708
Use some marker in KLIBs produced with IR inlinerKT-76024
[JS][IR Inliner] Partial linkage: No function found for symbol in kotlin
packageKT-75733
Reorganize execution of the common prefix at 1st phase of compilationKT-75986
Add an option to the DumpIrTreeOptions
to dump IR signature if availableKT-75951
[IR Inliner] Illegal non-local return reported by the partial linkage engineKT-75932
Fix a problem with already bound symbol with public IR inline enabledKT-64812
Investigate and fix remaining owner usages in inlinerKT-74732
IR: Exposure of private type is reported at wrong source locationKT-76007
IR deserialization tests w/ enabled IR inliner: undefined offsets in IrInlinedFunctionBlock.inlinedFunctionSymbolKT-74734
[Native] Use NativeInliningFacade in new subclass of AbstractFirNativeSerializationTestKT-73985
KLIB Synthetic Accessors Dump Format: Include local declarationsKT-72594
[JS][Native] Add IrInliningFacade to test runnersKT-74456
SerializedIrDumpHandler: Compare IR dumps with source offsetsKT-73624
[Native] Implement inlining facadeKT-70370
SyntheticAccessorLowering: Turn on mode with narrowing visibility on 1st phase of compilationKT-70452
OuterThisInInlineFunctionsSpecialAccessorLowering - run it after inlining of private functionsKT-70451
Enable double-inlining in Native & JS backends unconditionallyKT-69681
IR: Report warnings on exposure of private types in non-private inline functions
IR. Interpreter
KT-74581
Support IrRich*Reference
in IR interpreter
IR. Tree
Fixes
KT-73189
Migrate compiler sources to new IR parameter APIKT-77508
K/JS and K/Native CompilationException Wrong number of parameters in wrapperKT-74331
Implement IrElement.copyAttributes as a true attribute map copyKT-76600
Use a language feature to check error on cross-file IrGetField operations generated by compiler pluginsKT-75628
IR validator: Forbid IrExpressionBody for IrFunctionKT-75679
Extract common invokeFunction
in IrRichCallableReferenceKT-74799
[Native][IR] Excessive FUNCTION_INTERFACE_CLASS after deserializationKT-71138
Report error on cross-file IrGetField operations generated by compiler pluginsKT-75196
[IR] Make startOffset and endOffset mutableKT-73206
Extract common parts from new IrRichFunctionReference/IrRichPropertyReference nodesKT-73190
Migrate common backend sources to new IR parameter APIKT-73225
Migrate compiler.ir.serialization.common
to new IR parameter APIKT-73220
Migrate compiler.ir.tree
to new IR parameter APIKT-75189
Add an IR validation for the correspondingPropertySymbolKT-74275
Adjust IR dump format for context parameters & new parameter APIKT-74269
Drop IrElementVisitor, IrElementVisitorVoid and IrElementTransformer interfacesKT-72739
Create a lowering to replace old callable reference nodes with new onesKT-73120
Get rid of Ir
classKT-73045
Fix inconsistency between shapes of IR calls vs calleeKT-69714
[IR] Remove IrErrorDeclarationKT-73609
Tests: Implement DeserializerFacade for Kotlin/NativeKT-73813
Implement tests for all IR validator checkersKT-73171
Choose the approach for testing IR serialization/deserialization wrt IR inlinerKT-73430
[IR] Get rid of SymbolFinder usages outside of Symbols
hierarchyKT-74455
IR dump: Support dumping source offsetsKT-73433
[IR] Get rid of some symbols lookup methods
JVM. Reflection
KT-75505
Reflection: use kotlin-metadata-jvm to implement class visibility, modality, modifiers, etcKT-77663
Reflection: java.util.ServiceConfigurationError: “module kotlin.reflect does not declare uses
” when using kotlin-reflect in modular modeKT-75464
Bundle kotlin-metadata-jvm into kotlin-reflectKT-71832
kotlin.jvm.internal.ClassReference static overhead is 11,060 bytes
JavaScript
New Features
KT-31493
[Kotlin/JS] Can't put typealias in file marked with JsModule annotation
Performance Improvements
KT-74533
K/JS: avoid number to char calls in charSequenceGet intrinsic
Fixes
KT-77021
CompilationException: Encountered a local class not previously collected on inner classes inside anonymous objectsKT-78073
K/JS: KProperty from local delegate changes after another delegate is invokedKT-77271
KJS / Serialization: “Cannot set property message of Error which has only a getter”KT-76235
[JS] Extra invalid line tmp_0.tmp00__1 = Options;
in testSuspendFunction()KT-76234
[JS] Extra invalid line Parent
in testNested()KT-76233
[JS] Extra invalid import line in testJsQualifier()KT-74839
AssociatedObjectKey metadata doesn't survive incremental compilationKT-77418
KJS: cannot debug with whole-program granularityKT-76463
KJS: @JsPlainObject
fails in parent count is 8+KT-75606
KJS: java.lang.AssertionError: Different declarations with the same signatures were detectedKT-69591
KJS / d.ts: Wrong type of SerializerFactory for abstract classesKT-72437
KJS. Invalid copy
method for inherited JSO with type parametersKT-57192
KJS: “Exported declaration uses non-exportable return type” caused by @JsExport
Promise with Unit typeKT-73226
Migrate K/JS to new IR parameter APIKT-75254
KJS: Merge AbstractSuspendFunctionsLowering from Common and JS backendsKT-76440
@JsPlainObject
compiles broken code when inlining suspend function and non suspend functionKT-71169
@JsPlainObject
copy produces the wrong type when copied property is nullable in parent interfaceKT-75772
KJS: NullPointerException caused by reference of private class with @JsExport
KT-73363
Migrate js-plain-objects
plugin to new IR parameter APIKT-64927
[JS] TypeError when abstract class with override var property extends an exported abstract class with val propertyKT-70623
Kotlin/JS: Incremental compilation fails when granularity is changedKT-74384
Support new callable reference nodes in JS backendKT-70652
Kotlin/JS: @JsExport
doesn't work with granularity per-fileKT-71365
KJS. File-level export supportKT-68775
Kotlin/JS infinite loop for exception message override that calls super.messageKT-42271
K/JS: isInitialized for not-lateinit property isn't marked as error as in JVM projectKT-70664
Extending a @JsPlainObject
interface with a generic type parameter fails with a compile errorKT-71656
K2 JS: “IllegalStateException: Class has no primary constructor: kotlin.ULong”KT-42305
KJS / IR: “Class constructor is marked as private” @JsExport
produces wrong TS code for sealed classesKT-52563
KJS / IR: Invalid TypeScript generated for class extending base class with private constructor
Klibs
New Features
KT-72296
Use specialized signatures for serialized local fake overrides
Fixes
KT-78168
K/N: “IndexOutOfBoundsException: Index 3 out of bounds for length 3” for iOS build with Kotlin 2.2.0-RC2KT-74635
KLIBs: Change call serialization scheme to store all arguments in a single listKT-76061
Add option for suppress warning of missing no-existent transitive klib dependenciesKT-70146
[KLIB Resolve] Don't fail on nonexistent transitive dependencyKT-75624
Don't fail on an attempt to deserialize “unknown” IrStatementOrigin and IrDeclarationOriginKT-55808
Support metadata version checks for klibs in the compilerKT-56062
Support -Xmetadata-version
for KLIB-based compilersKT-76158
Drop “description” from local signaturesKT-75749
KLIB: Fail with error on attempt to serialize/deserialize SpecialFakeOverrideSignatureKT-75941
[IR Inliner] Abstract function is not implemented in non-abstract anonymous objectKT-75867
The CLI argument -Xabi-version allows versions with multiple 0 and -0KT-75192
KLIB reader tends to extract files from the KLIB archive to a temporary directory even when this is not neededKT-75013
Make klib reader more flexible: allow empty directories to be omittedKT-75680
KLIB: Drop obsolete IrPerFileLibraryImpl & IrPerFileWriterImplKT-73779
[Native] Context parameters: extension receiver is preferred over context parametersKT-65375
Clean-up the logic for serialization of error types in metadata and in IRKT-73826
Deduplicate IrFileEntry
that is serialized inside IrInlinedFunctionBlock
KT-75091
Drop targets/$target_name/kotlin
directory from klibsKT-74352
API4ABI: Fix representation of context parametersKT-71007
Align KLIB ABI version with the language versionKT-73672
Bump KLIB ABI version in 2.2.0KT-74080
API4ABI: Adapt API for value parameter kindsKT-74396
Support context parameters in klibsKT-72931
Support new callable reference nodes in KLIB [de]serializer
Language Design
New Features
KT-2425
Multidollar interpolation: improve handling of $ in string literalsKT-1436
Support non-local break and continueKT-13626
Guard conditions in when-with-subjectKT-54206
Support local contextual functions
Fixes
KT-53673
Support @DslMarker
annotations on contextual receiversKT-73557
Allow refining expect declarations for platform groupsKT-72417
Annotation with target RECORD_COMPONENT cannot be used on @JvmRecord
data class componentsKT-67977
Compile results of annotations assigned to JvmRecord properties as in JavaKT-73502
Context parameters: it is not possible to declare local function with a contextKT-73632
Expect class redeclaration is allowedKT-70002
[LC] Forbid using projection modifiers inside top-level Array in annotation's value parameter
Libraries
New Features
KT-76163
K/N: Hide or remove CreateNSStringFromKString/CreateKStringFromNSStringKT-70456
Base64: Support lineLength parameter for MimeKT-76394
kotlin.time.TimeSource.asClock missingKT-31857
Provide easy way to retrieve annotations for kotlinx-metadataKT-76528
Instant.parseOrNullKT-74804
Add @MustUseValue
and @IgnorableValue
/ @Discardable
to kotlin-stdlibKT-74422
KotlinWebsiteSampleRewriter should filter individual imports from samples package
Performance Improvements
KT-68860
K/JS: optimize listOf(element)KT-75647
Optimized sequenceOf(T) overload is missing
Fixes
KT-72138
Stabilize experimental API for 2.2KT-76831
Atomic types: inconsistent behavior on JS and Wasm targetsKT-76795
RecursiveDeletionTest.deleteRelativeSymbolicLink fails on Windows for unprivileged usersKT-75290
kotlin-metadata: deprecate hasAnnotations flag, add JVM-only hasAnnotationsInBytecode insteadKT-76193
Common Atomics: ‘AtomicArray.compareAndSetAt’ and ‘compareAndExchangeAt’ docs incorrectly suggest they use ==
when actually they use ===
KT-54077
Consider using SecureDirectoryStream in deleteRecursively even when Path.parent is nullKT-72866
Standard library functions to work with context parametersKT-76743
Add kotlin-scripting-jvm to projectsUsedInIntelliJKotlinPlugin listKT-72483
Clean up redundant stdlib code for Kotlin 2.2KT-76385
Remove suppression from functions to work with context parametersKT-75337
Remove suppress annotations from @IgnorableReturnValue
KT-72137
Review deprecations in stdlib for 2.2KT-75491
Non intuitive work of ‘in’ (contains) with String rangeKT-75933
Update readLine's KDoc to suggest alternative functionsKT-46360
Type inference fails to infer type for sumOf call with integer literal: “Overload resolution ambiguity TypeVariable(T)) -> Int / Long”KT-73590
Samplify string.splitKT-75759
Add the serializer for kotlin.time.Instant to the list of standard serializersKT-71628
Review deprecations in stdlib for 2.1KT-73726
A link from shuffle's KDoc is not rendered properlyKT-74173
The sample code of lazy
on stdlib can not run on playground due to “samples” package importKT-50081
AbstractList sublist leads to StackOverflow
Native
KT-76992
Native: update llvm for windows targetsKT-56107
Support Enum.entries for C/ObjC interop enumsKT-76552
LLVM Update: rebase the LLVM branchKT-76662
LLVM 19 update: documentationKT-76560
LLVM Update: investigate changes in filterStdargH testKT-76283
LLVM Update: pass all testsKT-74377
Kotlin Native: release executable crashes with error 139KT-75829
LLVM Update: port K/N on LLVM 19KT-76280
LLVM Update: benchmarksAnalyzer build failedKT-70202
Xcode 16 Linker fails with SIGBUS
Native. Build Infrastructure
KT-77349
Kotlin/Native: default cache for stdlib is unused
Native. C and ObjC Import
KT-75598
Native: fix samples/objc testKT-76551
LLVM Update: investigate CXFile equality problem furtherKT-75781
Xcode 16.3: Fix cinterop tests failing with fatal error: could not build module ‘_stdint’KT-74549
Native: replace clang_Type_getNumProtocols/clang_Type_getProtocol with standard libclang functions
Native. Platforms
Native. Runtime
KT-71534
Native: Support Latin-1 encoded strings at runtimeKT-67741
Kotlin/Native: Unify SpecialRef handling
Native. Runtime. Memory
KT-74831
Kotlin/Native: investigate mmap usage in custom allocatorKT-74432
Native: add an option to allocate everything in SingleObjectPageKT-74975
Enable CMS by default in Swift exportKT-60928
Kotlin/Native: refactor allocator codeKT-50291
Kotlin/Native: remove dependency of mm on gc implementation
Native. Swift Export
KT-75166
Support export of platform libraries types in Swift exportKT-75079
Swift export: add dependency from sir-compiler-bridge to Analysis APIKT-72413
Swift Export: potential memory leak when best-fitting class is different from the formal typeKT-72107
Remove IntoSingleModule stratagy
Tools. Ant
Tools. BCV
KT-75686
Improve DSL for BCV in KGPKT-76129
Abi validation filtering functionality for included classes doesn't workKT-75999
ABI validation filter doesn't apply excluded kotlin filesKT-75981
ABI validation filter not applying excluded classes without package namesKT-71168
Implement a prototype of ABI Validation in Kotlin Gradle Plugin
Tools. Build Tools API
KT-76455
BTA: Compilation is always non-incremental if BTA API >= 2.2.0 is used together with BTA impl < 2.2.0KT-76060
BTA: Java sources passed for IC may fail compilation in non-incremental modeKT-74041
Build Tools API: Lower level or remove compiler arguments log
Tools. CLI
New Features
KT-73606
Provide a unified interface for managing the reporting of compiler warningsKT-24746
Provide ability to exclude specific warnings from compiler option Werror (all warnings as errors)KT-18783
Option to treat a specific compiler warning as an errorKT-76095
Add JVM target bytecode version 24KT-73007
Add stable compiler argument -jvm-default instead of -Xjvm-default
Performance Improvements
KT-75641
kotlinc -help spends almost 1 second on Usage.render()
Fixes
KT-77445
UNRESOLVED_REFERENCE when importing classes from kotlin-stdlibKT-75300
Lenient compiler mode which generates stubs for missing actualsKT-76829
UnsupportedOperationException when reenabling a taking place warning with -Xwarning-levelKT-75588
[2.1.20-RC] “was compiled by a pre-release version of Kotlin and cannot be loaded by this version of the compiler” warnings despite using the same compiler versionKT-74663
kotlinc-js CLI: not providing -ir-output-dir results in NullPointerExceptionKT-75967
Implement generation of CLI arguments in compiler using new single representationKT-75966
Declare all existing CLI arguments using the new DSLKT-76498
Implement JSON dumper for performance statsKT-75970
Extract all non-trivial logic from CommonCompilerArguments
and its inheritorsKT-73595
Kapt.use.k2=true is ignored silently for language-version 1.9 or lessKT-75043
Migrate Metadata compilation pipeline to the phased structureKT-75113
TEST_ONLY LanguageFeature doesn't abort the compilation
Tools. CLI. Native
KT-69485
Native: remove adding $llvmDir\bin to PATH on Windows
Tools. Commonizer
KT-74623
Drop metadata version check from KLIB commonizer
Tools. Compiler Plugin API
KT-74640
[FIR] Support setting source
in declaration generators
Tools. Compiler Plugins
Fixes
KT-76162
“IllegalStateException: No mapping for symbol: VALUE_PARAMETER INSTANCE_RECEIVER” after updating to 2.1.20KT-61584
[atomicfu]: prohibit declaration of AtomicReference to the value class in the compiler pluginKT-70982
Deprecate declaration of atomic properties marked with @PublishedApi
with errorKT-73367
Migrate compose plugin to new IR parameter APIKT-76429
Migrate kotlin-dataframe plugin to new IR parameter APIKT-75263
PowerAssert: no additional info is displayed for ‘when’ with subjectKT-75614
PowerAssert: handling of exceptions doesn't work inside assert functionKT-75264
PowerAssert: the diagram for try-catch with boolean expressions isn't clearKT-75663
PowerAssert: ‘contains’ result for strings is displayed under the first parameter instead of ‘in’KT-73897
PowerAssert: Implicit argument detection is brittle in a number of casesKT-74315
Kotlin Lombok: “Unresolved reference” on generating @Builder
for static inner class where outer class is also using @Builder
KT-72172
File Leak occurring in Kotlin DaemonKT-75159
Compose: Missing ‘FunctionKeyMeta’ annotation on lamdas declared in non-composable functionKT-72877
Power-Assert should provide IrExpression transformation APIKT-73871
PowerAssert: Comparison via operator overload results in confusing diagramKT-73898
PowerAssert: Operator calls with multiple receivers incorrectly alignedKT-73870
PowerAssert: Object should not be displayed
Tools. Compiler plugins. Serialization
KT-49632
Provide diagnostic when custom serializer for generic type does not have required constructor signature ( ISE Null argument in ExpressionCodegen for parameter VALUE_PARAMETER)
Tools. Gradle
New Features
KT-75823
Resources bundle with XCFrameworks for iOSKT-73418
Gradle ‘--warning-mode’ value should affect Gradle plugin diagnosticsKT-73906
Improve ToolingDiagnostic CLI renderingKT-73285
Integrate Gradle Problem API with KGP diagnosticsKT-61649
Add Gradle compiler option for jvm-defaultKT-68659
Collect reported Kotlin Gradle Plugin diagnostics into one HTML/Text file report instead of writing it to log
Fixes
KT-75188
Groovy plugin breaks access to internal members of test friendPaths classes in kotlin compilationKT-54110
Change deprecation level to ERROR for kotlinOptions DSLKT-74277
KGP / FreeBSD: “TargetSupportException: Unknown operating system: FreeBSD” during the buildKT-75820
Gradle: “ClassNotFoundException: intellij.util.containers.Stack” while parsing compilation warnings with IN_PROCESS execution strategyKT-64991
Change deprecation level to error for KotlinCompilation.sourceKT-75107
Add Gradle property to use new FIR IC runnerKT-66133
Finalize resolution strategy for resources and remove the one that is unusedKT-59632
KotlinCompileTool.setSource() should replace existing sourcesKT-62963
Remove “kotlin.incremental.useClasspathSnapshot” propertyKT-76137
Compatibility with Gradle 8.14 releaseKT-76797
KGP: StdlibDependencyManagementKt.configureStdlibVersionAlignment() triggering eager configuration realizationKT-76282
Add missing Android Gradle plugin versions in testsKT-77011
Update build regression benchmarks for 2.2.0 releaseKT-76138
Compile against Gradle API 8.14KT-76139
Run integration tests against Gradle 8.14KT-74007
Not all the DSL features related to kotlinOptions are deprecatedKT-77288
Using ‘KotlinJvmOptions’ is an error - Gradle sync issue when using 2.2.0-Beta2 with Android Gradle PluginKT-74887
Compatibility with Gradle 8.13 releaseKT-73682
Compatibility with Gradle 8.12 releaseKT-77035
A compiler diagnostic isn't reported when its severity is set to warning with GradleKT-70620
Raise to error deprecation for KotlinCompilationOutput#resourcesDirProviderKT-68597
Update KGP deprecations before 2.2KT-68325
Add to Compiler Types DSL exceptions message possible ways of a solutionKT-76951
‘distribution-base’ plugin is only applied in Gradle 8.13KT-73142
Kotlin Gradle plugin: Remove usage of Gradle's internal ExecHandleBuilderKT-73968
KotlinDependencyManagement tries to mutate configuration after it was resolvedKT-74890
Run Gradle integrations test against Gradle 8.13 releaseKT-74889
Compile against Gradle 8.13 APIKT-76052
Support Gradle 8.13 for Problems APIKT-73684
Run integration tests against Gradle 8.12KT-76377
Add integration tests for Problems APIKT-74551
Improve KGP-IT withDebug for tests with environment variablesKT-74717
Test publication with dependency constraintsKT-75164
Run Gradle incremental compilation tests with FIR runnerKT-72694
Accessing Task.project during execution is being deprecated in Gradle 8.12KT-76374
Investigate and fix failing tests with configuration cache in KotlinDaemonIT: testDaemonMultiproject and testMultipleCompilationsKT-76379
Gradle: KotlinGradleFinishBuildHandler does not perform cleanup on configuration cache reuseKT-61911
Gradle: make KGP to depend on fixated version of stdlibKT-76026
[ToolingDiagnostic] Gradle warning mode=fail: no emoji replacement, title color unchangedKT-76025
ToolingDiagnostic with FATAL Severity: ANSI escape codes are not rendered properly in the Build tool window in IntelliJ IDEAKT-70252
Gradle: remove Intellij dependencies from KGP runtimeKT-74333
improve ToolingDiagnosticBuilderKT-73683
Compile against Gradle API 8.12KT-75187
Make KotlinToolingDiagnostics internalKT-75568
Do not use env variables registered as CC inputsKT-73842
Gradle: AGP failing tests with “Failed to calculate the value of property ‘generalConfigurationMetrics’” using KGPKT-75262
Gradle test-fixtures plugin apply order breaks the projectKT-75277
FUS statistics: ‘java.lang.IllegalStateException: The value for this property cannot be changed any further’ exception is thrown during project importKT-75026
Corrupted NonSynchronizedMetricsContainer in parallel Gradle buildKT-73849
Categorize ToolingDiagnosticsKT-74462
Flaky Kotlin Gradle Plugin Tests: IsInIdeaEnvironmentValueSource$Inject not foundKT-72329
Consider bumping apiVersion for projects with compatibility setupKT-74772
ToolingDiagnostic: title is not displayed on WindowsKT-74485
BuildFinishedListenerService is not thread-safeKT-74639
Executable binaries for JVM test cannot be created unless an additional suffix is set in GroovyKT-72187
Gradle tests are using incorrect Kotlin/Native distributionKT-57653
Explicit API mode is not enabled when free compiler arguments are specified in Gradle projectKT-51378
Gradle ‘buildSrc’ compilation fails when newer version of Kotlin plugin is added to the build script classpath
Tools. Gradle. Compiler plugins
KT-58009
BaseKapt.annotationProcessorOptionProviders
should be a List<CommandLineArgumentProvider>
instead of List<Any>
KT-61928
Clarify parameter types in KaptArguments and KaptJavacOption
Tools. Gradle. JS
KT-74859
Gradle configuration cache issues related to RootPackageJsonTaskKT-70357
Remove JS/Dce deprecated Gradle DSLKT-71217
KJS: ‘Per-file’ “Module not found: Error: Can't resolve void.mjs”KT-77119
KJS: Gradle: Setting custom environment variables in KotlinJsTest tasks no longer worksKT-74735
KGP uses Gradle internal CompositeProjectComponentArtifactMetadata
KT-71879
Notice of upcoming deprecation for Boolean ‘is-’ properties in Gradle Groovy scriptsKT-75863
Wasm/JS: Deprecate phantom-js for KarmaKT-75485
KJS: “Module not found: Error: Can't resolve ‘style-loader’ and ‘css-loader’” in 2.1.20-RCKT-74869
KJS: jsBrowserProductionWebpack
does not minify output with 2.1.20-Beta2
Tools. Gradle. Multiplatform
New Features
KT-60623
Deprecate publishAllLibraryVariants
in kotlin-android
Fixes
KT-75161
Deprecate commonization parameters in KGP with an errorKT-74005
Implement a prototype of Unified Klib support in Kotlin Gradle PluginKT-61817
Remove support for Legacy Metadata Compilation with support of Compatibility Metadata VariantKT-71634
KGP: Remove KotlinTarget.useDisambiguationClassifierAsSourceSetNamePrefix and overrideDisambiguationClassifierOnIdeImportKT-77404
The kotlin-stdlib and annotations are missing from commonTest dependencies with 2.2.0-Beta1KT-62643
Increase DeprecationLevel to ‘Error’ on deprecated ‘ExtrasProperty.kt’ (Kotlin 2.2)KT-75605
Dependency resolution fails in commonTest/nativeTest source sets for KMP module when depending on another project due to missing PSMKT-71698
Remove preset APIsKT-68015
Remove legacy KMP flagsKT-74727
Dependency resolve from a single target KMP module to another kmp module fails on non-found PSMKT-75808
KGP: MPP with jvm target and Gradle java-test-fixtures is brokenKT-59315
Improve the readability of KGP diagnostics in CLI build outputKT-58231
Kotlin Gradle Plugin: set deprecation level to Error for KotlinTarget.useDisambiguationClassifierAsSourceSetNamePrefix and overrideDisambiguationClassifierOnIdeImportKT-66423
Configuration cache false recalculation because of Kotlin Native downloading during the execution phaseKT-74888
Use ‘distribution-base’ plugin in KMP/JVMKT-76659
Write proper diagnostics for Uklib checksKT-70493
Improve gray-box testing experience in KGP-ITKT-71608
Remove ‘android()’ targetKT-75512
Maven-publish: ArtifactId is not correct inpom
file with customized withXml
KT-72203
Swift Export: Unclear failure for invalid module nameKT-74278
KSP tasks don't trigger a K/N distribution downloadingKT-74669
Executable binaries for JVM: a jar generated by jvmJar task isn't added to the build/install/testAppName/lib directoryKT-69200
Module ‘intellij.kotlin.gradle.multiplatformTests’ transitively depends on K1/K2 implementationKT-71454
Remove not compatible with Project Isolation PomDependenciesRewriterKT-73536
Enable kmp isolated projects support for kotlin-test and patch PSM.json
Tools. Gradle. Native
KT-77067
Kotlin Gradle plugin with the configuration cache passes all platform libraries to the compiler when compiling a binary for the first timeKT-74953
Deprecate kotlinArtifacts with a warningKT-71069
Remove konanVersion
from CInteropProcessKT-75171
Provide custom freeCompilerArgs to Swift Export's link taskKT-74591
HostManager.isMingw isLinux and isMac are not accessible in groovy scriptsKT-65692
Remove Kotlin Native Performance pluginKT-74403
:commonizeNativeDistribution fails when configured native targets cannot be built on machine
Tools. Gradle. Xcode
KT-66262
Deprecate and remove support for bitcode embedding from the Kotlin Gradle plugin
Tools. Incremental Compile
KT-62555
Wrong ABI fingerprint for inline function containing a lambdaKT-75883
Follow-up: switch from INSTANCE heuristic to outerClass chainKT-75276
Test IC issues with first-round failures that might be fixed by Fir runnerKT-76041
Make lenient mode work with ICKT-75155
Split HistoryFileJvmIncrementalCompilerRunner and the current oneKT-74628
Incremental compilation runner does not check compiler exit code before mapping sources to classes
Tools. JPS
KT-60914
IC misses dependency to recompile when named kt file with JvmField instructed property was replaced with an object with the same nameKT-76495
JPS: delegated Maven builds use embeddable version of kotlin-serialization compiler plugin with non-embeddable Kotlin compilerKT-76461
Fix “compilation of typealias does not check for clashes” for JPSKT-75917
Unused imports may lead to inc compilation failureKT-73379
Review the usage of JavaBuilder.IS_ENABLED inside the KotlinBuilder JSP builderKT-63707
JPS: “Multiple values are not allowed for” caused by Compose
Tools. Kapt
KT-75936
K2 KAPT: unsupported FIR element kinds in constant evaluationKT-64385
K2: Enable K2 KAPT by defaultKT-76546
Kapt / CLI: ““compile” mode is not supported in Kotlin 2.x” with -version flagKT-75942
K2 KAPT: underscore not allowed hereKT-40485
-Xjvm-default=all causes private interface methods to be generated in JVM target < 9 which is not supported in annotation processingKT-75202
K2 kapt: mapped type class literal is converted incorrectlyKT-70797
Remove obsolete K2 kapt implementation based on Analysis API
Tools. Maven
KT-73012
Migrate Kotlin Maven plugin to the Build Tools APIKT-77036
Kotlin Maven plugin: ClassNotFoundException com.google.common.base.Joiner with compiler plugins in debug modeKT-61285
Remove multiplatform “support” from Maven Plugin
Tools. Performance benchmarks
KT-75563
Fix crash on kotlin compiler server user project related to performance measurements
Tools. REPL
Fixes
KT-75632
Contunue deprecation of the REPL built into kotlinc
KT-76507
[K2 Repl] Delegated properties are not visible in the next snippetKT-76508
[K2 Repl] Annotations on property accessors are not resolvedKT-75672
[K2 Repl] Serialization plugin crashes compiler backendKT-76009
[K2 Repl] Kotlin-specific imports does not work if dependency is added to the classpath after 1st snippetKT-75580
[K2 Repl] Cannot access snippet properties using Kotlin reflectionKT-75616
[K2 Repl] Sealed hierarchies causes a FileAnalysisExceptionKT-75593
[K2 Repl] Custom Delegates crash code genKT-75607
[K2 Repl] ScriptingConfiguration.jvm.jvmTarget is not respectedKT-74607
[K2 Repl] Lambda statement crashes code generationKT-74615
[K2 REPL] Anonymous objects crash code generationKT-74856
[K2 Repl] Snippet class files are missing Kotlin metadataKT-74768
[K2 Repl] refineConfiguration does not update the classpath correctlyKT-74593
[K2 Repl] defaultImports does not work in ScriptCompilationConfiguration
Tools. Scripts
KT-75589
Scripts: “IndexOutOfBoundsException in jdk.internal.util.Preconditions.outOfBounds” when trying to extend a class which uses global variableKT-76424
Dependencies in main.kts not working with 2.1.20KT-76296
Kotlin script compiler crashes when secondary constructor calls a functionKT-76430
Migrate scripting plugin to new IR parameter APIKT-74004
“Evaluate expression” fails in scripts
Tools. Wasm
KT-76161
Wasm: “export startUnitTests was not found” after updating to Kotlin 2.1.20KT-73398
K/Wasm: Separate from JS NPM infrastructureKT-76948
Wasm: Rename kotlinBinaryenSetup and kotlinD8SetupKT-74840
Wasm: Binaryen setup per projectKT-76657
K/Wasm: Composite build does not work with wasm tasksKT-76656
K/Wasm: Change NPM project name of wasm projectsKT-76587
Wasm lock check failure says to run the JS lock upgradeKT-76330
K/Wasm: update binaryen to 123 or newerKT-74480
Projects using Compose don't run in Android Studio started from 2.1.20- Kotlin version
Previous ChangeLogs: