Changelog
Analysis API
KT-80303
Move:native:analysis-api-klib-reader
to:libraries:tools
Analysis API. Code Compilation
KT-80227
Support unnamed context parameters in evaluationKT-78554
K2 IDE / Kotlin Debugger: ISE “No override for FUN IR_EXTERNAL_DECLARATION_STUB” on calling toString() for local class instance during evaluationKT-73201
K2 IDE: Error while evaluating expressions with local classes
Analysis API. FIR
KT-46375
Analysis API: Support cross-file class redeclaration checks using indicesKT-80471
Analysis API: Deduplicate equivalent call candidates inresolveToCallCandidates
KT-79653
[Analysis API] ContextCollector: BODY context of enum classes doesn't contain enum entriesKT-75858
K2 AA: False positive 'property must be initialized' on incremental analysis with 'field' usage and semicolon in setterKT-80231
AnnotationArgumentsStateKeepers doesn't restore the initial annotation in some casesKT-80233
Pull mutation out of AnnotationArgumentsStateKeepersKT-71466
LLFirBuiltinsSessionFactory
usescreateCompositeSymbolProvider
KT-76432
JavaClassUseSiteMemberScope: Expected FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl
Analysis API. Infrastructure
KT-80717
Support IntelliJ Bazel build in the Kotlin Coop development mode
Analysis API. Light Classes
KT-80656
Duplicate no-args constructor in PSIKT-60490
Symbol Light Classes: Property accessors from a delegated interface don't present in the delegating classKT-79689
SymbolLightClassForClassLike.toString() causes PSI tree loadingKT-79012
Add a high-level overview of light classes
Analysis API. Providers and Caches
KT-78882
K2 AA: Calling containingSymbol on getProgressionLastElement causes exceptionKT-58325
Analysis API: CombineLLKotlinStubBasedLibrarySymbolProvider
s in session dependencies (optimization)KT-77825
Analysis API:CheckersComponent
consumes a lot of memory while being unused in LL FIR sessionsKT-76526
Incorrect built-in module is provided for non-JVM sources in StandaloneKT-62549
Analysis API: Cache callables in combined Kotlin symbol providersKT-70721
LL FIR: investigate possibility of movingLLFirFirClassByPsiClassProvider . getClassByPsiClass (PsiClass)
to symbol providersKT-72998
Analysis API: IntroducegetClassLikeSymbolByPsi
to LL FIR symbol providers
Analysis API. Standalone
KT-80573
Potential performance issue on class ID computationKT-80559
Try to optimize KotlinStandaloneDeclarationProviderFactory startup for testsKT-71706
Analysis API Standalone:StandaloneProjectFactory.createSearchScopeByLibraryRoots
creates inefficient file-based search scopes
Analysis API. Stubs and Decompilation
Performance Improvements
KT-77097
SupportReplaceWith
deprecation annotation argument via stubs
Fixes
KT-77082
StackOverflowError in CreateFreshTypeVariableSubstitutorStage.shouldBeFlexibleKT-80798
Improve stubs tests coverageKT-75318
Read context parameter fields from metadata in CallableClsStubBuilderKT-77874
AA disagrees with the compiler on descriptions of context parameters from binaries in messages for context argument ambiguity errorsKT-80350
Drop K1 decompilerKT-80276
Implement native coping for stubsKT-79780
Decompiled MultifileClass has Facade kindKT-79398
isClsStubCompiledToJvmDefaultImplementation flag is inconsistent for compiled and decompiled stubsKT-79798
Prettify stub usages in LL stub-based deserializerKT-78949
AbstractLLStubBasedResolutionTest: tests against real stub-based filesKT-80251
Inconsistent decompiled and compiled stub for properties with an initializer and a delegateKT-74547
Implement decompiler for K2KT-79555
Move KotlinFileStubImpl serialization/deserialization to the Analysis APIKT-79487
"null DefinitelyNotNullType for 'T'" from decompilerKT-60764
Stub Builder: fix differences between K1 and K2 stub building on decompiled filesKT-79484
An empty enum class with a member decompiles with a synthetic errorKT-79730
Decompiled files have an extraKt
suffixKT-79483
data modifier is not present on object modifierKT-75398
Local classes from scripts have ClassId in stubsKT-79412
Context parameters with type annotations cause inconsistency errors while building stubs
Analysis API. Surface
New Features
KT-64340
Analysis API: no way to get a type of vararg parameterKT-68387
AA: provide context for type approximations
Performance Improvements
KT-80713
Optimize KaDeclarationSymbol#visibility for class-like symbolsKT-79097
KaFirNamedFunctionSymbol#isSuspend shouldn't trigger resolutionKT-79095
isOverride shouldn't trigger resolution if not compiler plugins present
Fixes
KT-78093
Add bridges for context parametersKT-79328
K2 AA, isUsedAsExpression: Unhandled Non-KtExpression parent of KtExpression: class org.jetbrains.kotlin.psi.KtImportDirectiveKT-80366
IllegalStateException from KaFirStopWorldCacheCleanerKT-80274
Merge AbstractMultiModuleSymbolByPsiTest to AbstractSymbolByPsiTestKT-80352
KaBaseResolutionScope.contains(PsiElement) always returns false for Android light classes (e.g. synthetic R.java classes)KT-80234
Incorrect value ofisActual
for the implicitlyactual
constructor of annotation classKT-80178
Incorrect modality for an abstract interface function with a redundantopen
modifierKT-79129
[Analysis API]KaFe10TypeCreator.buildClassType
cannot build builtin types by class idsKT-79143
AA:argumentMapping
contains an expression that is not an argumentKT-59857
KaExpressionTypeProvider#returnType shouldn't throw an exception for class like declarationsKT-79667
Enable resolve on java record components in standalone modeKT-73050
KaFirSymbolRelationProvider#expectsForActual
: suspicius logic for KaReceiverParameterSymbolKT-78904
KaBaseWriteActionStartedChecker throws when no additional WA was doneKT-79281
Add KDoc toKaTypePointer#restore
KT-78597
KaUseSiteVisibilityChecker returns false for internal functions exposed via implicit receiverKT-71705
FIR api impl: Postfix increment expression'sexpressionType
is Unit when incrementing array elementKT-75057
Analysis API: Reference to object through typealias in invoke operator call leads to original type
Backend. Native. Debug
KT-79848
Flaky debugger tests in opt.debug/cache.*/GC.CMS/GC.sch.ad/alloc.custom configuration
Backend. Wasm
New Features
KT-59032
Support instantiation of annotation classes on WASM
Fixes
KT-69621
K/Wasm: Consider enabling support for KClass.qualifiedName by defaultKT-80018
K/Wasm: exceptions don't work properly in JavaScriptCore (vm inside Safari, WebKit)KT-66072
K/Wasm: improve how exceptions work in JS interopKT-80106
devServer in Kotlin/Wasm overwrites defaults, causing missing static pathsKT-80210
Wasm: "Unexpected non-external class: kotlin.Nothing" caused by JsExport with JsPromiseKT-80555
WASM IC: Can't link symbol on kotlinx.coroutines on fresh masterKT-80415
WasmJs Number Elvis Operator CrashKT-76509
WasmJS: ReferenceError: Temporal is not defined caused by "Redundant reference to unused external results"KT-79317
[Wasm] Do not throw CCE for ExcludedFromCodegen declarationsKT-78036
K/Wasm: generate a message with "expected" and "actual" types in case of CCE
Compiler
New Features
KT-77676
K/N: enable typechecks and the casts optimization pass in debug mode by defaultKT-80768
Warning on overloading by a superset of context parameters in class contextKT-79185
Support for local type aliasesKT-80461
K2: false positive NO_ELSE_IN_WHEN for complex sealed hierarchyKT-79380
Native: add performance measurement for the rest of backend phasesKT-79381
Native: add performance measurement of LLVM phasesKT-80222
Implement the prohibition of always-falseis
checks for definitely incompatible typesKT-79295
Parse and build raw FIR from new short and full forms of positional destructuring with square bracketsKT-74810
Support typealiased/mapped Java types in unused return value checkerKT-71244
Incorporate existing@CheckReturnValue
annotation(s) into Kotlin's unused return value checkerKT-79922
Record 'MustUse/ExplicitlyIgnorable' state for overrides even in disabled RVC modeKT-79920
Store 'Explicitly ignorable' state of function/property in the metadataKT-79690
Implement a USELESS_ELVIS_LEFT_IS_NULL with elvis expressionKT-79296
Implement/adapt diagnostics for new destructuringKT-79298
Report errors on new destructuring syntax in K1
Performance Improvements
KT-81340
K/N: severe compilation time degradation after turning on casts optimization passKT-80554
Kotlin/Native: investigate performance hit from always-on llvm pass profilingKT-80370
Add NO_INLINE attribute to some of runtime functionsKT-80167
K/N: condense the nodes and edges in DevirtualizationAnalysis constraint graphKT-79535
Revert incorrect SAM conversion enhancements brought to K2
Fixes
KT-81257
Native: "Unexpected boolean predicate" when generating 'static_cache'KT-80864
K2: MissingVal cannot be reassigned
diagnostic for Java final fields (crashes in runtime withIllegalAccessError
)KT-75215
KDoc: references from@param
tag are rendered as plain textKT-79887
K2 Compiler Internal Error in 'FirFakeOverrideGenerator.checkStatusIsResolved' MethodKT-78125
false-negative shadowed contextual overload warning on local declarationsKT-79274
Frontend implementation of name-based destructuringKT-81057
Wrong handling of boxing during redundant casts optimizationKT-80285
IJ monorepo: broken compilation after 2.2.20-RC updateKT-81015
Mark nested typealiases as stable for 2.3KT-81064
Wrong safe call null check handling during redundant casts optimizationKT-80744
Kotlin failure on lambda with type parameterKT-78280
Implement the sourcelessKtDiagnostic
sKT-78819
K2: False positive ABSTRACT_MEMBER_NOT_IMPLEMENTED in KJK hierarchyKT-81018
ISE "IR class for Foo not found" on missing dependency when lowering SAM constructorKT-80936
NON_PUBLIC_CALL_FROM_PUBLIC_INLINE :@PublishedApi
doesn't work for fun interfacesKT-75748
StackOverflowError when reading array from metadata annotationsKT-80400
K2: AbstractMethodError on fun interface implementation inheriting from an interface compiled with -jvm-default=disableKT-80940
K2: Exception in FIR2IR with AnnotationTarget.TYPE with self-annotated non-vararg default argument and usage in child moduleKT-80538
KaFirDiagnostic.EmptyRange doesn't work in most of the casesKT-80524
Class is not abstract and does not implement abstract member when compiling with kotlinc-jklibKT-80597
Apply fix for CVE-2024-7254 to our fork of protobuf 2.6.1KT-80849
K2:ConstValueProviderImpl
doesn't distinguish files with same name and packageKT-80602
Exhaustiveness checker improvements for 2.3KT-80735
Support || return/throw shortcut in unsed return value checkerKT-79651
Report a warning about an unused return value only on the function nameKT-80719
False positive: "Redundant visibility modifier": when overriding protected methods as "public"KT-80711
IC Native: NPE during link on ktorKT-80795
Wong type cast is added for IMPLICIT_COERCION_TO_UNITKT-80434
K2: DSL marker doesn't work with lambda fieldsKT-80383
Getter without a body is allowed on a property with an explicit backing fieldKT-80455
K2: StackOverflowError in when exhaustiveness checker on red codeKT-72862
[Native caches] Umbrella for failing codegen/box tests for corner cases in synthetic accessorsKT-20278
NO_TYPE_ARGUMENTS_ON_RHS: Confusing diagnostic for inner class of generic outer classKT-80164
Move name generation for unnamed context parameters to frontendKT-78112
RETURN_VALUE_NOT_USED is reported for local function even if it isn't marked with annotation in CHECKER modeKT-48311
Incorrect LINENUMBER after if with a suspend callKT-80688
Bad SourceDebugExtension caused by enhanced coroutines debuggingKT-73851
Native: compilation fails with ClassCastException with genericSafeCasts=trueKT-77593
Add a warning when@IgnorableReturnValue
is inconsistent between expect/actual functionsKT-78895
Consider dropping isLocalInFunction and FirClassLikeDeclaration.isLocalKT-79386
Confusing error message when named parameters are used for java method callsKT-80600
K2: Private and final modifiers are allowed on setter of open delegated propertyKT-79783
KDoc parser: Links aren't rendered if the line has an indent of 4 or moreKT-77101
Invoke on callable reference is considered ignorableKT-79923
Remove lookup of@IgnorableReturnValue
annotation from FirReturnValueOverrideCheckerKT-80517
Synthetic kotlin.Any members in data classes are missing@MustUseReturnValue
KT-80194
VAR_TYPE_MISMATCH_ON_OVERRIDE: doesn't mention the inferred typeKT-80484
K2: ClassCastException due to fake source for implicit lambda parameter (RedundantNullableChecker)KT-79979
K2: ClassCastException when overriding extension property with delegationKT-80592
UninitializedPropertyAccessException
when anayzing annotations on members of anonymous classesKT-80399
Anonymous Kotlin class incorrectly warns about deprecated java override despite '@Deprecated
' annotationKT-79610
Adding CocoaPod to Kotlin/Native MPP triggers IR serialization failure and commonizer errorsKT-79866
kotlinc 2.2.0 silently emits 'NonExistentClass' instead of reporting an errorKT-78664
False positive VARIABLE_NEVER_READ and ASSIGNED_VALUE_IS_NEVER_READ on function type variable with splited declaration and assignmentKT-79496
False positive "when must be exhaustive" in triangle interface/class hierarchyKT-79774
KtDestructuringDeclaration.getLPar & getRPar are brokenKT-79442
"Multiple annotations of type kotlin.coroutines.jvm.internal.DebugMetadata": 2.2.0-Beta1 generates broken code with JVM default suspend methods in interfacesKT-80391
K2: Only one context parameter is mentioned in the [NO_CONTEXT_ARGUMENT] diagnosticKT-79785
ktypew:kotlin.collections.List already exists error using Swift ExportKT-78879
"Sealed types cannot be instantiated": Can't instantiate Java-defined sealed Class from KotlinKT-80330
K2: NPE at org.jetbrains.kotlin.fir.resolve.calls.FirCallResolver.createResolvedNamedReferenceKT-21598
Extension is shadowed by member should not be reported when member is deprecated with HIDDEN levelKT-79622
FUNCTION_EXPECTED: Misleading 'expression cannot be invoked as a function' when inaccessible with private lambdaKT-80255
[EXTENSION_FUNCTION_IN_EXTERNAL_DECLARATION] can be attached to the receiver type of a functional typeKT-79816
Java Interfaces implemented by delegation have non-null return checksKT-80177
Improve message of RECEIVER_SHADOWED_BY_CONTEXT_PARAMETER in case of member extensionKT-79770
There is no RECEIVER_SHADOWED_BY_CONTEXT_PARAMETER if the usage of fun is from inside the classKT-79430
False positive EXTENSION_SHADOWED_BY_MEMBER on overridden member extensionKT-62934
Incorrect line mapping inside inline lambda after non-local returnKT-79545
K2: no error on crossinline lambda usage in anonymous object base constructor callKT-79643
HAS_NEXT_FUNCTION_AMBIGUITY and NEXT_AMBIGUITY diagnostics are always ignored in favor of HAS_NEXT_FUNCTION_NONE_APPLICABLE and NEXT_NONE_APPLICABLEKT-79327
Modifier 'private' is not applicable to 'value parameter' is reported for context parametersKT-76453
K2 IDE: autocomplete freezeKT-77182
A function in a file annotated with@file
:MustUseReturnValue doesn't produce a warning when it is used from compiled codeKT-78541
Jspecify: Unsound platform type despite@NullMarked
for an override with a generic-subclass return typeKT-79672
'when expression must be exhaustive' even after using 'require()'KT-71306
K2 IDE / Kotlin Debugger: “Cannot find local variable 'block' with type kotlin.jvm.functions.Function0” on evaluating lambda arg inside inline functionKT-80003
Kotlin/Native: deprecate eager GlobalData initializationKT-76991
K2 IDE / Kotlin Debugger: ISE “Couldn't find declaration file for” on evaluating local fun when the scope has also inline fun from another file callKT-79877
K2 IDE / Kotlin Debugger: failed evaluations of a code fragment capturing local data classKT-77401
[FIR]ParameterNameTypeAttribute.name
doesn't support@ParameterName
with compile-time constant property argumentKT-79682
Fix partially uninitialized locals after coroutine spills insertionKT-79276
Dexing fails with "Cannot read field X because is null" with 2.2.0KT-79562
NPE when passing non-lambda argument of nullable non-suspend function type into function that accepts nullable suspend function typeKT-79693
NotImplementedError: An operation is not implemented: Unknown file with KMP separate compilationKT-79662
Unused return value checker doesn't work for com.google.errorprone.annotations.CheckReturnValueKT-79781
Missing MISSING_DEPENDENCY_CLASS when using type alias with inaccessible RHSKT-79547
"UnsupportedOperationException: Not supported" with inlining and value classesKT-77772
Only report exposed type on qualifier if it's resolved to an objectKT-79765
K2. Do not report ignore return value for unresolved referenceKT-76343
Drop language version 1.8KT-79017
False negative REDECLARATION on private nested classKT-72039
StackOverflowError on calling keySet on a Kotlin subclass of Java subclass of ConcurrentHashMapKT-79451
Rework approach to recursive types approximationKT-75843
K2: incorrect line numbers in an if-expression with a super-callKT-77504
Add a warning when@IgnorableReturnValue
is inconsistent on overridesKT-78389
Perform version 2.3 boostrappingKT-79092
Crash on default argument in function in fun interfaceKT-77729
Package-level@NullMarked
does not work when kotlinc sees .java source filesKT-79013
False negativeNOT_YET_SUPPORTED_IN_INLINE
on inline local functions inside inline functionsKT-79139
False positive CONFLICTING_OVERLOADS for context parameters instead of receiversKT-35305
Address the overload conflict resolution between unsigned and non-primitive typesKT-42096
No diagnostic reported oninline
modifier on an enum entryKT-79355
Failed to fix the problem of desugaredinc
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-79354
IllegalStateException: Debug metadata version mismatch. Expected: 1, got 2 with compiler 2.2.20-Beta1 and stdlib 2.2.0KT-77986
K2: False negative: "Local classes are not yet supported in inline functions"KT-79456
Redeclaration conflict checks of private top-level classifiers rely on an incorrect containing fileKT-79125
RVC full mode: delegated interfaces are not checkedKT-63720
Coroutine debugger: do not optimise out local variablesKT-78595
type variable leak on a generic property as a call argument given an unstable smart castKT-79076
'IllegalStateException: Cannot serialize error type: ERROR CLASS: Uninferred type' with Exposed column using recursive generic typeKT-75797
Native: find a way to handle generates C bridges in inline functionsKT-59807
K2: Replicate the MUST_BE_LATEINIT logic from K1KT-76782
K2: Incorrect resolve into unrelated invoke operator with wrong diagnosticKT-78066
TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER error message does not account for context parametersKT-76136
Switch latest stable version in Kotlin project to 2.3KT-78881
K2: False positive "Assigned value is never read" in composable functionKT-76065
Drop JavaTypeParameterDefaultRepresentationWithDNN featureKT-77808
Inference: recheck the code about DNN-related hacksKT-24202
NOTHING_TO_OVERRIDE if super-class reference misses generic argumentsKT-78909
K2: Missing diagnostics [CYCLIC_INHERITANCE_HIERARCHY] for recursive class inheritance leads to StackOverflowErrorKT-75969
java.lang.IllegalArgumentException: source must not be null on red codeKT-76902
Omit type-use annotations from diagnosticsKT-58988
K2: Deprecate exposing package-private parameter of internal methodKT-17460
Diagnostics and intention on suspend function that is overriden with non-suspend one.KT-56665
K2: false positive RECURSIVE_TYPEALIAS_EXPANSIONKT-78932
Contracts are allowed for open and overridden property accessorsKT-77203
FIR: Consider adding destructured type to all COMPONENT_FUNCTION_* diagnosticsKT-76635
Implement Data-Flow Based Exhaustiveness SupportKT-77685
"IllegalArgumentException: Sequence contains more than one matching element"KT-78452
Drop redundant frontend structures after fir2ir conversion
Compose compiler
New features
98d3907
Introduce a compose group analysis module that produces a proguard/R8 mapping from group keys in bytecode.
Fixes
b/431025881
[Compose] Clean up runtime version checkerb/365922168
Addjava.util.Locale
to the list of known stable classesb/407549020
Introduce a registry of known stable markersb/417989445
Added a diagnostic to restrict usages ofrunCatching
in@Composable
functionsKT-80294
Fix crash with inline@Composable
function referenceb/430140896
Fix IrSourcePrinter output for when branch check and typechecks
IDE. Gradle Integration
KT-46273
MPP: Don't fail import for case of missed platform in source set structureKT-46417
[UNRESOLVED_REFERENCE] For project to project dependencies of native platform test source setsKT-44845
After update to Kotlin 1.4.30 all external dependencies is unresolved in IDE with kotlin.mpp.enableGranularSourceSetsMetadata=trueKT-46142
K/N distribution is unavailable from IDE with multiplatform hierarchical project structure enabled
IR. Actualizer
KT-80002
Investigate the need for map copying in IrCommonToPlatformDependencyExtractor.ktKT-80131
KMP Separate Compilation: No override for FUN IR_EXTERNAL_DECLARATION_STUB name:KT-80064
KMP Separate Compilation: ClassCastException: class org.jetbrains.kotlin.ir.symbols.impl.IrTypeAliasSymbolImpl cannot be cast to class org.jetbrains.kotlin.ir.symbols.IrClassSymbolKT-80051
KMP Separate Compilation: Actualization of common dependencies failed on 'PROPERTY FAKE_OVERRIDE name:modCount visibility:protected modality:FINAL [fake_override,var]'KT-79998
KMP Separate Compilation: java.lang.IllegalStateException: No override for FUN IR_EXTERNAL_DECLARATION_STUB name:KT-77337
IrNoExpectSymbolsHandler
finds expect class reference after enabling annotation traversal in IR
IR. Inlining
New Features
KT-70360
KLIBs: Uniformly handletypeOf()
calls at 1st/2nd stages of compilation
Performance Improvements
KT-69497
Crossinline lambda is allocated on K/N & JS
Fixes
KT-79334
Unify intrinsics used on 1st phase of IR inliner in KLIB-based compilersKT-80610
KLIB inliner: Always apply cross-module inlining to pre-processed inline functionsKT-80565
KLIB Inliner: Add a special annotation to prohibit inlining of marked inline functions in stdlib on 1st compilation phaseKT-80883
[Inliner] Run pre-serialization lowerings in all testrunnersKT-77876
IrVisibilityChecker: Different set of exceptions for 1st and 2nd compilation stagesKT-80693
[IC] Split IC invalidation tests for cross-module IR InlinerKT-79718
KLIB inliner: Emit warning on generation ofpublic
synthetic accessor when running in "explicit API mode"KT-78537
[Inliner] Incorrect KFunction.name of a reference to inlined local functionKT-80226
[IR Inliner] Generate constructor accessors as constructors, not static functionsKT-80653
[IR Inliner] Space: "Local declarations should've been popped out by this point"KT-80692
[IC] Split IC invalidation tests for intra-module IR InlinerKT-77103
[Inliner] IrLocalDelegatedProperty was not serialized, while its symbol and IrRichPropertyReference were.KT-78392
CommonPrefix: Add a way of stopping execution when one of the phases is unsuccessfulKT-78903
Unifycodegen/boxInline
tests withcodegen/box
KT-78989
Add missing PL tests for inline functions/property accessorsKT-79771
kotlinx-coroutines-core: Public synthetic accessor generated with enabled KLIB IR inlinerKT-79680
IrConstructorSymbolImpl is unbound
in lambdaWithoutNonLocalControlflow.ktKT-70849
Ensure correct debug info for intra-module IR inlining on the first compilation phaseKT-79800
JS BE errors with default values when IR inliner is enabledKT-79352
Remove excessive validations fromValidateAfterAll...
on the first stageKT-76599
MigrateIrValidationAfterInliningAllFunctionsPhase
to the first stage of compilationKT-78245
Synthetic Accessors incorrectly copies default valuesKT-72594
[JS][Native] Add IrInliningFacade to test runners
IR. Interpreter
KT-72881
K2: incorrect empty array as annotation argument when parameter has default value
IR. Tree
Fixes
KT-77819
[IR] Fine-tune IrValidator's run after Fir2IR and IR pluginsKT-70160
Remove IrDeclaration.parents after Anvil updateKT-80454
LocalDeclarationsLowering: Clean-up the dead codeKT-80819
Rework IrFileValidator to use Hashmap instead of ClassValueKT-80516
Kotlin-like IR dump: Don't render tailrec as lateinitKT-79439
KLIB stdlib symbols loading: Split the result of merging of IrBuiltins with BuiltinSymbolsBase hierarchy into two parts (for 1st & 2nd phases)KT-79437
KLIB stdlib symbols loading: Drop loading functions from IrBuiltins and migrate usages to SymbolFinder functions and lazy filteringKT-79569
Unexpected error during DFG phase in Native due to PL issue with SAM conversion represented by rich referenceKT-79371
Fix handling of broken SAM conversion in PL with enabled Rich ReferencesKT-76601
IrValidatorConfig should have all checks disabled by defaultKT-69662
Deduplicate functioncreateTemporaryVariable
KT-79440
KLIB stdlib symbols loading: Drop BuiltinSymbolsBase from plugin APIKT-78960
[FO] Limit static fake overrides generation for static functionsKT-76813
IR validator: not all symbols/references are visited
JVM. Reflection
KT-76521
Reflection: change KType representation to avoid dependency on K1KT-74624
Reflection: KClassifier.createType(...) ignores annotations parameterKT-80203
Reflection: provide a way to use legacy K1-based implementationKT-80236
Reflection: KType.toString for raw types no longer renders "(raw)"KT-79020
Suspend lambdas return type is shown as ??? in reflectionKT-79206
Reflection: suspend functional type classifier is nullKT-74529
Context parameters support in reflection
JavaScript
New Features
KT-79284
Use BigInt64Array for LongArrayKT-79394
Add the possibility to write common external declarations between JS and WasmJS targets
Performance Improvements
KT-57128
KJS: Use BigInt to represent Long values in ES6 mode
Fixes
KT-81424
Kotlin/JS: Cannot Get / in a simple running applicationKT-80873
KJS: Stdlib requires ES2020-compatible JS engine due to BigInt type literalKT-56281
KJS: Can't export suspend functionsKT-72833
KJS: Source maps have incorrect sources paths inper-file
KT-79926
Wrong export of interfaces with companions with ES ModulesKT-72474
KJS:@JsPlainObject
doesn't honour -XXLanguage:+JsAllowInvalidCharsIdentifiersEscapingKT-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 testsKT-52771
KJS: Pair should be exported to JavaScriptKT-79704
Unify variance rendering between JS and other backendsKT-69297
Deprecate referencing inlineable lambdas injs()
callsKT-80168
Allow@JsStatic
inside interface companionsKT-80086
[k/js] Resolving imported string literalsKT-79066
[Kotlin/JS] jsNodeTest fails with SyntaxError when a test file has@file
:JsExport and useEsModules() is enabledKT-79359
Kotlin/JS: Suspending function doesn’t return Unit on es2015KT-77385
Investigate partial linkage problems for JS HMPP testsKT-79628
Remove IR nodes from ExportModelKT-79916
K/JS: "Uncaught TypeError" when using 'Xes-long-as-bigint' in compose-htmlKT-79050
KJS / IC: "Unexpected body of primary constructor for processing irClass"KT-79977
KJS: Long.rotateLeft returns incorrect result when BigInts are enabledKT-70222
Remove legacy JS BE-related CLI flagsKT-78831
AbstractFunctionReferencesLowering: fragile fake override generationKT-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 operations
Klibs
Performance Improvements
KT-80861
[Klib] Deduplicate IrFileEntry.nameKT-80866
[Klib] Optimize size of IrFileEntry.line_start_offsetKT-80438
Uncached KlibMetadataClassDataFinder.findClassData
Fixes
KT-80298
K/N: one-stage compilation is brokenKT-80099
KLIB resolver: Could not find file because of missingklib
extension in resolved symlink pathKT-79958
KLIB tool fails to render IR if there is IrErrorType in a lirbraryKT-75241
Move ExperimentalLibraryAbiReader to a publishable artifactKT-76260
MakeIrRichCallableReferencesInKlibs
lang feature stable in LV=2.3KT-61552
[PL] IndexOutOfBoundsException in SAM conversion with substituted functionKT-74417
Deduce the metadata version based on LV in KLIB-based backendsKT-75980
[Klib] Reduce serialized size of IrFileEntries for sparse usage of another source filesKT-73826
DeduplicateIrFileEntry
that is serialized insideIrInlinedFunctionBlock
Language Design
KT-76926
Allow return in expression bodies if return type is specified explicitlyKT-23610
Overload resolution ambiguity for suspend function argumentKT-32619
JS: return Promise whencontinuation
is not providedKT-78866
Warn implicit receiver shadowed by context parameterKT-78976
Decide if K2 should support local functions inside of local inline functionsKT-79308
Ability to actualize empty interfaces as AnyKT-48872
Provide modern and performant replacement for Enum.values()
Libraries
New Features
KT-31400
Add smartcast forisArrayOf
KT-78463
Annotate wasm and JS targets of kotlin-stdlib with@IgnorableReturnValue
when appropriateKT-74444
EnumEntries type should implement RandomAccessKT-78462
Annotate kotlin-stdlib-jvm with@IgnorableReturnValue
where appropriate
Fixes
KT-80778
Stabilize kotlin.time.Clock and kotlin.time.InstantKT-80619
[KLIBs] Enable intra-module inliner in stdlib & kotlin-testKT-76773
stdlib: contextOf's type argument can be inferred via contextOf's context argumentKT-71822
Intersection with (subtraction from) an identity set may produce incorrect resultsKT-74411
Introduce Uuid.generateV4() and generateV7()KT-80605
Rename MustUseReturnValue -> MustUseReturnValuesKT-56822
Deprecate Number.toChar() with error deprecation levelKT-69947
KLIB stdlib: All intrinsics that can be used in KLIBs with inlined IR must be included in stdlib ABI dumpKT-59044
Improve various aspects of TimeSource documentationKT-80544
Mark controversial path extensions (like .deleteRecursively()) as ignorableKT-80603
K/N and K/Wasm: \p{N} category is not supportedKT-79192
Increase InputStream.readBytes(Int) deprecation level to HIDDENKT-80661
ArrayDeque.lastIndexOf may return -1 for an element present in the dequeKT-80390
ArrayDeque.indexOf(null) wrongly returns 0 after removalsKT-79094
Change signature of assertFailsWith or make lambda excluded otherwiseKT-72028
Incorrect parameters order in IndexedValue documentationKT-80130
[stdlib] Commonize AssociatedObjects in commonNonJvmMainKT-80107
[stdlib] Move CancellationException to commonNonJvmMainKT-80179
Investigate why StringBuilder.length is not enhanced automaticallyKT-80046
Increase test coverage of Duration.parse[IsoString][OrNull] methodsKT-76459
Remove comments about sorting stability in unsigned-type arraysKT-79489
Generate Stdlib API reference for webMain source setKT-78243
Drop JS- and Wasm-specific IrLinkageError classesKT-79108
Remove the default argument forlinkageError
from kotlin.js.getPropertyCallableRefKT-79130
K/JS: Remove bodies from intrinsified Long methodsKT-79239
K/Wasm: elementAt extension function of Array/PrimitiveArray/UnsignedArray does not throw IndexOutOfBoundException on incorrect indexKT-79256
K/Wasm: MatchResult.groups raises a trap on invalid group indexKT-57317
Repack EnumEntries from stdlib into the compiler
Native
KT-79384
K/N: Application Not Responding: Thread DeadlockKT-80536
Native:DependencyDownloader
seems to have no timeoutKT-80624
Bump minimal watchOS supported versions to 7.0KT-80620
Bump minimal iOS and tvOS supported versions to 14.0
Native. Build Infrastructure
KT-80147
Set proper LV and AV forkotlin-native/performance/buildSrc
KT-79474
Kotlin/Native: fix breakpad buildKT-79215
Kotlin/Native: fix distInvalidateStaleCaches on windows
Native. C and ObjC Import
KT-79571
Xcode 26 beta 4: CInteropKT39120TestGenerated.testForwardEnum failedKT-79753
Native: support CCall.Direct calls in the compilerKT-80838
Cinterop fails with an error when Compilation works fineKT-79752
Native: make cinterop generate CCall.Direct annotationsKT-49034
Kotlin/Native:cnames.structs.Foo
resolves into wrong declaration
Native. ObjC Export
KT-78810
[ObjCExport] Enable explicit ObjC block parameter names by defaultKT-80271
ObjC/Swift Export: Remove Native platformCloneable
checksKT-78604
Consider not inheritingKlibScope
fromKaScope
KT-79767
ObjCExport: private companion must not be exposedKT-79724
ObjCExport: extensions orderKT-79548
ObjCExport: mangling difference between K1 and K2 when translating KotlinDurationCompanionKT-79475
ObjCExport: invalid property getter translationKT-79346
ObjCExport: Any method overridesKT-78871
ObjCExport: translation of keywordrelease
with parameter generates invalid header
Native. Runtime. Memory
KT-75918
Native: Deprecate -Xallocator=stdKT-80678
Native: pagedAllocator=false sweep is slowKT-75916
Native: Enable sanitizer support with pagedAllocator=false
Native. Swift Export
KT-80111
Swift Export Build Fails Due to Errors in KotlinStdlib.swiftKT-80884
Swift Export: support async in SIRKT-80185
Swift Export: IllegalArgumentException – Collection contains more than one matching elementKT-79889
K/N: swift-export fails under several different conditionsKT-79518
Swift export: represent kotlin.Any as swift.anyKT-78603
Do not inherit SirAndKaSession from KaSessionKT-79227
Swift Export: Fix First Release IssuesKT-79521
'_CoroutineScope' is inaccessible due to 'internal' protection levelKT-79181
Swift Export Fails When Using T: Comparable Generic Constraint in Kotlin Classes
Tools. Ant
KT-75875
Remove Ant support
Tools. BCV
KT-80313
Add ability to generate dump from jar files [ABI Tools]
Tools. Build Tools API
KT-79409
BTA: Support removed compiler arguments properlyKT-78196
BTA: implement API adapter for the prototype implementationKT-77999
BTA: Generate BTA options from compiler arguments descriptionsKT-78194
BTA: port the JVM prototype to the new designKT-78193
BTA: Implement core infrastructure according to the new designKT-78195
BTA: migrate the test infrastructure from the prototype to the new design
Tools. CLI
KT-79867
CompilerConfiguration.configureSourceRoots puts obfuscated file paths instead of ones passed onclasspath
to CLIConfigurationKeys.CONTENT_ROOTSKT-80348
Expose 'XXLanguage' compiler argument as a normal argumentKT-80428
KMP Separate Compilation: Handle friend dependenciesKT-74590
Deprecate -Xjvm-default in favor of -jvm-defaultKT-80349
KMP Separate Compilation is enabled on non-KMP compilationsKT-79982
Fix description of -Xjspecify-annotationsKT-79403
Improve generator for deprecated CLI argumentsKT-75968
Set proper lifecycle for all existing compiler argumentsKT-79293
Create Language Features and compiler argument with parameter for new destructuring features
Tools. Commonizer
KT-49735
[Commonizer] :commonizeNativeDistribution fails for projects with two or more same native targetsKT-47523
MPP: Unable to resolve c-interop dependency if platform is included in an intermediate source set with the only targetKT-48118
Commonized c-interop lib is not attached to common main source setKT-46248
MPP: Compile KotlinMetadata fails with Unresolved reference if only one native platform from shared source set is available
Tools. Compiler Plugin API
KT-74867
LLFirIdePredicateBasedProvider matches local classes when it shouldn'tKT-52665
DeprecateComponentRegistrar
KT-55300
Provide a mechanism to describe ordering and dependencies for compiler pluginsKT-75865
Provide an API for setting the file name for the file with top-level declarations generated by a plugin
Tools. Compiler Plugins
KT-80815
NoArg compiler plugin: Promote NO_NOARG_CONSTRUCTOR_IN_SUPERCLASS diagnostic from warning to errorKT-80822
False positive NO_NOARG_CONSTRUCTOR_IN_SUPERCLASS reported for a class with explicit noargs constructor already presentKT-53122
Constructors generated with NoArg have no@Metadata
and are invisible for the frontendKT-79319
Lombok: NullPointerException onmvn compile
when importing Java constantsKT-74687
Kotlin Lombok: False positive when calling builder on Java recordKT-80419
Remove bundled jetbrains annotations from kotlin-dataframe-compiler-pluginKT-79245
[AtomicFU] Drop K1/JS- and K1/Native-specific testrunnersKT-79197
DataFrame: Cannot find local variable 'this@df
' with type Scope0KT-73865
Incorrect type is generated for irPropertyReference during K/N transformation
Tools. Compiler plugins. Serialization
KT-70345
Promote COMPANION_OBJECT_IS_SERIALIZABLE_INSIDE_SERIALIZABLE_CLASS diagnostic to errorKT-79695
Serialization does not exclude field-less properties in 2.2.20-Beta2KT-79246
[Serialization] Drop K1-specific testrunners
Tools. Gradle
Fixes
KT-80763
Add redirect link to error message when 'org.jetbrains.kotlin.android' plugin is used with built-in KotlinKT-81038
Gradle: remove support for properties disabling precise task outputs backupKT-75449
Update deprecation ofKotlinJsTestFramework#createTestExecutionSpec
KT-80875
Gradle: runToolInSeparateProcess may fail on Windows with too long command lineKT-79851
Emit an actionable warning/error on unsupported AV/LV configured bykotlin-dsl
KT-64273
Gradle: remove symbols deprecated after KT-54312KT-77458
Run Gradle integration tests against Gradle 9.0KT-74915
Make ExtrasProperty.kt internalKT-64992
Remove KotlinCompilation.sourceKT-76720
Raise deprecation level to error for Kotlin*Options propertiesKT-80172
Error message changes depending on the order of applying 'org.jetbrains.kotlin.android' and 'AGP' 9.0+ with built-in Kotlin pluginKT-76177
Remove deprecated classpath snapshot task inputsKT-79238
Bump minimal supported AGP version to 8.2.2KT-79339
Remove additionalMetadata from compiler options DSLKT-78741
Add FUS analytics for klib cross-compilationKT-73478
Add module level descriptionKT-80083
KGP IT: fix tests on WindowsKT-79034
Automatically disable cross compilation if it's not supported on the hostKT-79408
A lot of errors files are created when compile KotlinKT-78827
Rewrite Gradle compiler options DSL generator
Tools. Gradle. BCV
KT-80621
Move Gradle tasks into suitable groups [ABI Validation]KT-78625
Kotlin's built-in BCV generates empty .api files
Tools. Gradle. JS
KT-79910
Wasm, JS: Upgrade NPM versionsKT-79921
Web Tooling Gradle API does not respect webpack reconfigurationKT-76996
Wasm: js tasks triggers wasm subtasksKT-79237
Upgrade NPM dependencies versions
Tools. Gradle. Multiplatform
New Features
KT-76446
Add kotlin-level dependency block to work the same way as commonMain/commonTest dependencies blocks
Fixes
KT-80785
Withandroid.builtInKotlin=false
andandroid.newDsl=true
, usingkotlin-android
plugin will fail withClassCastException
KT-61127
Remove scoped resolvable and intransitive DependenciesMetadata configurations used in the pre-IdeMultiplatformImport IDE importKT-62614
Remove legacy kotlin-gradle-plugin-modelKT-79559
AGP complains about configurations resolved at configuration time due to KMP partially resolved dependencies diagnosticKT-78993
The value for property '*' property 'dependencies' is final and cannot be changed any furtherKT-74005
Implement a prototype of Unified Klib support in Kotlin Gradle PluginKT-76200
TestModuleProperties.productionModuleName for JVM module isn't present with 2.1.20-RCKT-55312
Replace "ALL_COMPILE_DEPENDENCIES_METADATA" configuration with set of metadata dependencies configurations associated per setKT-52216
HMPP / KTOR: False positive "TYPE_MISMATCH" with Throwable descendantKT-54312
TCS: Replace CompilationDetails abstract class hierarchy by composable implementationKT-55230
Remove metadata dependencies transformation for runtimeOnly scope
Tools. Gradle. Native
KT-80675
Commonized cinterops between "test" compilations produce an import failureKT-64107
Kotlin Gradle plugin allows native binaries to have bothdebuggable
andoptimized
flags set totrue
KT-74910
BumpdestinationDir
in CInteropProcess to hiddenKT-74911
Promote CInteropProcess.konanVersion to hiddenKT-74864
Enable exporting KDocs by default to ObjCKT-72705
K/N: compile task cache can not be used due to 'artifactVersion' input property
Tools. Gradle. Swift Export
KT-79524
NoSuchMethodError: 'java.lang.String org.gradle.api.artifacts.ProjectDependency.getPath() for swift export with dependency export fro gradle < 8.11
Tools. Incremental Compile
KT-75864
Implement a conservative mechanism of the IC with compiler plugins generated top-level declarationsKT-79504
Implement an API to provide IC lookups from backend pluginsKT-55982
K2: Consider global lookups from plugins in incremental compilationKT-75657
Fix difference in incremental compilation scenarios in BTA in-process vs daemon compilation modeKT-79541
Refactor tracking of files relation in ICKT-74628
Incremental compilation runner does not check compiler exit code before mapping sources to classes
Tools. JPS
KT-77347
Support file-less compatible IC approach
Tools. Kapt
KT-73411
Removekapt.use.k2
property and code which allows to use K2 with K1 kaptKT-79138
K2: KAPT Java Stub Gen:Unresolved reference
with@kotlin
.Metadata in Java in 2.2.0KT-79641
Kapt: too much information is printed in verbose modeKT-79305
K2 kapt: ISE "Cannot evaluate IR expression in annotation" on typealias with unresolved expansionKT-79136
K2 kapt: unresolved nested class references in annotation arguments are generated without outer class namesKT-79133
K2 kapt: class literal with typealias is not expanded
Tools. Performance benchmarks
KT-79709
Add-Xdetailed-perf
CLI flag to control verbosity of performance logsKT-79226
[K/N] Add performance measurement for native backend lowerings
Tools. Statistics (FUS)
KT-77407
Add performance measurement for prefix loweringsKT-79455
[FUS] Collect KSP plugin versionKT-79090
Integrate dynamic stats intoMarkdownReportRenderer