Changelog
Analysis. API
Fixes
KT-62895
K2 IDE. FP'when' expression must be exhaustive
with sealed interface from libraryKT-64805
Analysis API: introduce common entry point for multi-file test casesKT-64714
K2: Analysis API: CollectionsKt.map doesn't resolves from Java in kotlin repoKT-64647
K2: Allow to calculate decompiled inheritors for sealed classes in testsKT-64595
AA: stackoverflow while simplifying a type with a recursive type parameterKT-64825
Analysis API. Cannot compute containing PSI for unknown source kind 'org.jetbrains.kotlin.KtFakeSourceElementKind$DefaultAccessor' exception on getContainingSymbol call for default setter parameterKT-64080
K2: Analysis API: On-air resolve does not trigger resolution of delegated super call argumentsKT-64243
K2: proper lazy resolution for fake overridesKT-62891
K2 IDE. FP [EXPOSED_FUNCTION_RETURN_TYPE] on overriding library method which returns protected typeKT-61890
Analysis API: Migrate KtFirScopeProvider to ContextCollector instead of onAirResolveKT-64197
K2: Code fragments are only supported in JVMKT-64604
K2: IDE K2: "Modules are inconsistent during performance tests"KT-62357
K2 IDE. False positive on generated component methods and false negative on getter of@JvmRecord
classes in JavaKT-62892
K2 IDE. Java outer class from other module is not resolved when nested class is accessed with fq name in a type positionKT-62888
K2 IDE. IDE infers reference toKMutableProperty
as reference to justKProperty
KT-64584
K2: StubBasedFirDeserializedSymbolProvider: support deserialization of delegated declarationsKT-60324
K2 IDE: "NoSuchElementException: List is empty at JavaOverrideChecker#buildErasure"KT-62896
K2 IDE. FP ABSTRACT_MEMBER_NOT_IMPLEMENTED on inheriting class from library which implements interface by delegationKT-62947
Analysis API: Error while resolving FirPropertyImplKT-64468
Analysis API: Implement mixed multi-module tests which support different kinds ofKtModule
sKT-63547
K2 IDE. False Positive AMBIGUOUS_ANNOTATION_ARGUMENTKT-62832
K2: ClassCastException: FirDeclarationStatusImpl cannot be cast to FirResolvedDeclarationStatusKT-64205
Analysis API: Do not import non-top-level callables by defaultKT-63056
K2: Cannot mutate an immutable ImplicitReceiverValue on FirCodeFragment analysisKT-64108
K2: KtFirSymbolDeclarationOverridesProvider shouldn't provide fake overridesKT-63752
K2: java.lang.StackOverflowError FirFieldSymbol.getHasInitializerKT-63718
Analysis API: Stub-based dependency symbol providers of library source sessions compute the wrong package name setsKT-64186
Analysis API: ContextCollector provides incorrect scopes for anonymous objectsKT-63979
K2 IDE: presentation of types in completion is too verboseKT-63681
K2: LL FIR: Improve isResolved check coverage of after lazy resolution
Analysis. Light Classes
KT-63087
K2 IDE: in .java source reference to JvmName names on unsigned type / value class are unresolvedKT-64605
K2 IDE: usage of@Repeatable
annotation in Java: false positive "Duplicate annotation"KT-64795
SLC: distinguish last v.s. non-lastvararg
value parameter type during binary resolutionKT-61605
K2 IDE: Light elements do not obey platform contractsKT-57536
SLC: no need to populate members withexpect
modifierKT-63949
K2 IDE. Analyze hang on@Autowired
constructor analysisKT-64320
Decouple kotlin psi from java PSIKT-64282
Decouple KotlinIconProviderService from java PSI
Apple Ecosystem
KT-63821
Copy framework to BUILT_PRODUCTS_DIR in the embedAndSign task
Backend. Wasm
KT-58852
WASM: two methods with different varargs: Class korlibs.template.dynamic.DynamicShape has 2 methods with the same signature [register(kotlin.Array)
Compiler
New Features
KT-4113
Smart casts for properties to not-null functional types atinvoke
calls
Fixes
KT-64261
K2 / WASM: Extension function with star projection throws "RuntimeError: unreachable"KT-64877
K2: PCLA doesn't allow infer types from value parameter having TV typeKT-63932
K2/Native codegen test failures around builder inferenceKT-64222
K2: "return type is not a subtype of the return type of the overridden member"KT-57094
K1: wrong type inferred for an instance of a local class inside a generic propertyKT-62069
K2: ASSIGNMENT_TYPE_MISMATCH is reported in addition to NO_ELSE_IN_WHENKT-62776
FirLazyResolveContractViolationException: "lazyResolveToPhase(STATUS) cannot be called from a transformer with a phase TYPES" on Java annotation usageKT-60056
K2: Introduced UNRESOLVED_REFERENCEKT-59791
K2: Implement partially constrained lambda analysisKT-42020
Psi2ir: IllegalStateException: "IrSimpleFunctionPublicSymbolImpl for public [...] is already bound" on generic function whose substitution leads to IdSignature clashKT-64771
Investigate subtle FIR_DUMP difference for reversed order analysisKT-62584
K2: different signature in subclass of local class declared in extension value getterKT-64615
Inconsistent error messages for platform type nullability assertionsKT-59938
K2: Disappeared AMBIGUOUS_ACTUALSKT-64501
K2: False-positive WRONG_INVOCATION_KIND when using default argumentsKT-64640
Prevent mutating SequenceCollection methods from JDK 21 be available on read-only collectionsKT-63644
K2: Create special IR symbols for fake-overrides in fir2ir in mode with IR f/o generatorKT-62476
K2: Enable building fake overrides by ir on non-JVM targetsKT-63638
K2: Compiler crashes with "Inline class types should have the same representation"KT-36220
NI: false positive NON_APPLICABLE_CALL_FOR_BUILDER_INFERENCE if one use cannot resolveKT-64121
K2: Actual modifier is missed onoverride fun toString()
fro value class in nativeKT-63703
K2: Eliminate call to Candidate.usesSAM and samResolver.getFunctionTypeForPossibleSamType in AbstractConeCallConflictResolver.toTypeWithConversionKT-64435
K2: FIR2IR: Source offsets for data class members are inconsistent with PSI2IRKT-64090
K2: false-positive new inference error on invoking from another module a generic function on Java list type with wildcard type argument bounded by raw-typed Java inner classKT-64044
K2: Java mapped method should have a source from Java method, not from mapped Kotlin source classKT-46674
ClassCastException with smartcast ifplus
operator returns a different typeKT-59369
K2: Missing BUILDER_INFERENCE_STUB_RECEIVERKT-64644
K2: Compiler crash in FirTypeParameterBoundsCheckerKT-64312
K2: FirPropertySymbol.hasBackingField() always returns true for properties from other modulesKT-64420
K2: Wrong module descriptor for builtin classesKT-64127
K2: incorrect resolution of inherited members on Java classes inheriting classes from different packages in the presence of identically named classes in the same packagesKT-63446
IrFakeOverrideBuilder: AbstractMethodError due to missing bridge for generic method in a Java superclassKT-63441
IrFakeOverrideBuilder: "accidental override" when implementing a Java function taking an array parameterKT-63867
K2: Smartcast is allowed inside changing lambda with cyclesKT-63414
K2 / Contracts: false positive "Result has wrong invocation kind" when invoking a function returning a value with contract InvocationKind.EXACTLY_ONCE and try/finallyKT-63777
K2: Smartcast is allowed inside changing lambda with boundsKT-64059
K2: CYCLIC_INHERITANCE_HIERARCHY while using nested annotation in an outer class declarationKT-63528
K2: Missing UNNECESSARY_SAFE_CALL for warning level annotated java declarationsKT-64607
K2: extension functions on UInt and Number lead to JVM ClassCastExceptionKT-62816
K2: Annotation use site targets printing could be improved in diagnostics' messagesKT-62815
K2: FIR renderings leak through some diagnostics' messageKT-35289
Confusing warning message "Duplicate label in when"KT-49084
Contracts: error message is unclearKT-63228
K2: Upper bound violation diagnostic renders compiler internals about SourceAttributeKT-62386
K2: Proofread quotes in diagnostic messagesKT-64081
K2: Incorrect smartcast candidate calculation in MemberScopeTowerLevelKT-63994
K2: Investigate K2 failures in IntelliJ-Rust pluginKT-58767
Inheritance opt-in enforcement via@SubclassOptInRequired
can be avoided with type aliasesKT-63941
K2: "IllegalStateException: Unsupported compile-time value STRING_CONCATENATION" caused by class reference in string expression as annotation parameterKT-59818
K2: Explore the TODO about suspend functions overridden in Java in FirHelpersKT-63233
K2 : false negativeClass is not abstract and does not implement abstract member
with abstract suspend functionKT-63379
K2. Argument type mismatch on creating functional interface instance with function literal as an argument within
type projectionKT-64308
K2: prefer call with Unit conversion at lower level to one without Unit conversion at upper levelKT-64307
K2: prefer function with default arguments at lower level to one without them at upper level during callable reference resolveKT-64306
K2: prefer SAM at lower level to a functional type at upper levelKT-63827
K2: Array += desugaring doesn't have originKT-64341
Kotlin/JVM: Missing line number generation for intrinsic comparisonsKT-64238
Add proper documentation to theIdeCodegenSettings
classKT-63667
K2/KMP: exception when expect property matched to java fieldKT-63563
K2: False negative RETURN_TYPE_MISMATCH with empty returnKT-62525
K2: IllegalStateException: Can't find KotlinType in IrErrorType: IrErrorType(null)KT-57427
Fix inconsistencies in name manglers that use different declaration representationsKT-57755
K2/JVM: Fix computing a "signature" mangled name for themain
functionKT-63645
K2: Replace special f/o symbols with normal ones after actualizationKT-63076
K2: change in behavior for synthetic properties in Kotlin-Java hierarchyKT-63723
Frontend manglers improperly handle error typeKT-63738
K2: Some declarations are missing in the hierarchy of overridden symbolsKT-62242
K2: Uniformly treat enum entries as anonymous objectsKT-62281
K2: build DuckDuckGo Android user project and pass it to CIKT-60266
K2: origin is not set for FOR_LOOP_ITERATORKT-59875
K2: Disappeared UNRESOLVED_REFERENCE_WRONG_RECEIVERKT-62715
K2: Missing WASM_IMPORT_EXPORT_UNSUPPORTED_PARAMETER_TYPEKT-62723
K2: Missing WASM_IMPORT_ON_NON_EXTERNAL_DECLARATIONKT-62722
K2: Missing NESTED_WASM_IMPORTKT-62721
K2: Missing WASM_EXPORT_ON_EXTERNAL_DECLARATIONKT-62720
K2: Missing JS_AND_WASM_EXPORTS_ON_SAME_DECLARATIONKT-62719
K2: Missing NESTED_WASM_EXPORTKT-62718
K2: Missing WASM_IMPORT_EXPORT_UNSUPPORTED_RETURN_TYPEKT-62717
K2: Missing WASM_IMPORT_EXPORT_PARAMETER_DEFAULT_VALUEKT-62716
K2: Missing WASM_IMPORT_EXPORT_VARARG_PARAMETERKT-60225
K2: compiler FIR symbol resolution crash on a call to an extension function whose receiver contains a type parameter with a recursive upper boundKT-63530
K2: Disable passing data flow info from in-place lambdasKT-60958
K2: smart cast does not work with definite return from if blockKT-60090
K2: Introduced DEPRECATED_PARCELERKT-59949
K2: Disappeared DEPRECATED_PARCELERKT-61768
Wrong bytecode index in LineNumberTable when there is an incremental operationKT-64045
K2: "Expect declaration * is incompatible with actual" when function parameter names are differentKT-62018
K2: prohibit suspend-marked anonymous function declarations in statement positionsKT-63973
K2: "NoSuchElementException: Array is empty" with vararg used within tail recursive functionKT-63612
K2: Class is not abstract and does not implement abstract memberKT-61792
KMP: Backend error on@Deprecated
usage with DeprecationLevel.HIDDEN in K2KT-63709
K2: Argument smartcasting impacting receiver and call resolution for implicit invokeKT-57788
Fix computing mangled names of types with@EnhancedNullability
from IR-based declaration descriptorsKT-63249
K2: change in annotation resolve when ambiguousKT-63514
ISE “Inline class types should have the same representation: [I != I” during compilation on submitting UIntArray to varargKT-62553
K2: AddtopLevelClassifierPackageNames
to symbol name providersKT-64148
K2: class cast exception org.jetbrains.kotlin.fir.types.ConeStarProjectionKT-63665
K2: "NullPointerException" caused by class with the companion object and extra curly braceKT-59715
K2: Check behaviour of property + operator in operator positionKT-62347
Prohibit using property+invoke convention for delegated propertiesKT-59421
K2: Missing CONTEXT_RECEIVERS_WITH_BACKING_FIELDKT-59903
K2: Disappeared DELEGATE_SPECIAL_FUNCTION_NONE_APPLICABLEKT-62926
K2: IR has missing receivers during expect-actual matchingKT-62565
K2 cannot infer type parameters in case of expected functional typeKT-63328
K2: Top-level properties in scripts can be used while uninitializedKT-59683
K2: Add control flow graph to FirScriptKT-63524
K2: "Not enough information to infer type argument"KT-63835
K2: metadata compilation with constants is falling for NativeKT-60251
K2: delegated method are delegating to different methods in hierarchy compared to K1KT-63695
JVM: Don't use plugin extensions when compiling code fragmentKT-63574
K2: "IllegalStateException: IrFieldPublicSymbolImpl for java.nio/ByteOrder.LITTLE_ENDIAN"KT-60504
K2: difference between LL FIR and FIR in enhanced return type with annotationKT-64147
K2: Generate FIR diagnostics with explicit typesKT-63042
K2: proper processing of propagated annotationsKT-59368
K2: Missing SUBTYPING_BETWEEN_CONTEXT_RECEIVERSKT-64083
K2: "KotlinIllegalArgumentExceptionWithAttachments: Unexpected returnTypeRef. Expected is FirResolvedTypeRef, but was FirJavaTypeRef"KT-37308
No smart cast when the null check is performed on a child property through a function with a contractKT-59894
K2: Disappeared ANNOTATION_ARGUMENT_MUST_BE_CONSTKT-63329
K2: difference in SAM-conversion casts generationKT-64062
K2 IDE. NPE on typing nullable parameter in returnKT-58579
K2: false-positive new inference error on invoking a generic function on Java wildcard type bounded by raw-typed Java inner classKT-64031
K2: Revise naming in FirBuilderInferenceSessionKT-50453
Improve builder inference diagnostics with type mismatch due to chosen inapplicable overloadKT-56949
K2: Builder inference violates upper boundKT-63648
K2: values of postponed type variable don't introduce type constraints in extension receiver positions during builder-style type inferenceKT-64028
K2: Investigate questionable condition in FirBuilderInfernceSessionKT-63848
ReflectiveAccessLowering does not count arguments of super-callsKT-61920
K2: False negative CONST_VAL_WITH_NON_CONST_INITIALIZER when initializer is Java fieldKT-63508
K2: "IllegalArgumentException: Not FirResolvedTypeRef (String) in storeResult" caused by@Deprecated
Java function and typoKT-63522
K2: wrong context for delegated field typeKT-53308
TYPE_MISMATCH: Contracts on boolean expression has no effect on referential equality tonull
KT-51160
Type mismatch with contracts on narrowing sealed hierarchy fail to smart castKT-49696
Smart cast to non-null with inline non-modifying closures sometimes doesn't workKT-46586
SMARTCAST_IMPOSSIBLE when assigning value inside lambda instead of if expressionKT-41728
False positive no smart cast with unreachable code after return in if expressionKT-22904
Incorrect bytecode generated for withIndex iteration on Array
IR. Actualizer
KT-58861
K2: Improve the new pipeline of FIR2IR conversion, IR actualization and fake-override generationKT-63347
K2: Fix overridden symbols inside LazyDeclarationsKT-62535
K2: FakeOverrideRebuilder can't handle f/o without overridden symbols
JavaScript
KT-61929
KJS: "IllegalStateException: No dispatch receiver parameter for FUN LOCAL_FUNCTION_FOR_LAMBDA" caused byrun
function in init blockKT-64366
KJS / K2: Exported declaration uses non-exportable return type: 'kotlin.?'KT-64426
K2: Implement JsIrLineNumberTestGenerated for K2KT-64422
K2: Implement IrJsSteppingTestGenerated for K2KT-64364
K2 / KJS:@JSExports
generates clashing declarations for companion objects that extends its own classKT-63038
Compilation of suspend functions into ES2015 generators
Klibs
KT-64085
Different klib signatures for K1/K2 for overridden properties assigned in init blockKT-64395
API for ABI: Add a check for the file's existence to KLIB ABI ReaderKT-63573
K2: Dependency problems with dependencies with same artifact idKT-64082
Different klib signatures in K1/K2 for the same locally used constant declarationKT-63931
[K/N] Relative path to klib option of cinterop tool doesn't workKT-60390
KLIBs: Wrong IrSymbol is used for deserializedexpect
property's backing field & accessors
Libraries
KT-61969
Migrate kotlin-test to the current Kotlin Multiplatform PluginKT-64361
Optimization opportunity in Int.signKT-63157
Make sure that all deprecation levels are raised to ERROR for declarations intended for removal from kotlinx-metadataKT-64230
Prohibit writing versions of metadata that are too high
Native
KT-61695
[K/N] Empty list error in FakeOverridesActualizer with K2KT-64508
IndexOutOfBoundsException in Konan StaticInitializersOptimization
Native. C and ObjC Import
KT-63049
NPE in BackendChecker.visitDelegatingConstructorCall compiling ObjC-interop classKT-59597
[K\N] Usage of instancetype in block return type crashes
Native. ObjC Export
KT-62091
KMP for iOS framework with private api : __NSCFBooleanKT-64076
ObjCExport: Do not retain descriptors in stubsKT-64168
ObjCExport: Split header generator module into K1 and Analysis ApiKT-64227
ObjCExport: Extract Header Generation to base module
Native. Runtime. Memory
KT-62689
Native: generate signposts for GC performance debugging
Native. Testing
KT-64256
IR_DUMP directive doesn't enforce FIR_IDENTICAL when it is possibleKT-62157
Native: Migrate FileCheck tests to new native test infra
Tools. CLI
KT-64013
CLI REPL: "com.sun.jna.LastErrorException: [14] Bad address" on invoking kotlinc from CLI on ARM Mac
Tools. Compiler Plugin API
KT-64444
K2: IrGeneratedDeclarationsRegistrar.addMetadataVisibleAnnotationsToElement doesn't work for declarations in common module
Tools. Compiler Plugins
KT-33020
Support stripping debug information in the jvm-abi-gen pluginKT-64707
K2: Parcelize ignores@TypeParceler
set for typealias
Tools. Compiler plugins. Serialization
KT-64447
K2: Implement Serialization...IrBoxTestGenerated for K2KT-64124
Different klib signatures in K1/K2 for a serializable class
Tools. Gradle
KT-64653
Add Kotlin DslMarker into Gradle plugin DSLKT-64251
KGP: Cannot re-use tooling model cache with Project Isolation due to "~/.gradle/kotlin-profile" changingKT-58768
Support configuration cache and project isolation for FUS statisticsKT-64379
Removekotlin.useK2
gradle propertyKT-62527
Gradle: get rid of theProject.buildDir
usagesKT-55322
Kotlin daemon: Cannot perform operation, requested state: Alive > actual: LastSession
Tools. Gradle. Cocoapods
KT-57650
Gradle Cocoapods: use pod install --repo-update instead of pod install
Tools. Gradle. JS
KT-64561
K/JS tests are not executed after upgrade to 1.9.22KT-63435
KJS: Get rid of deprecated outputFileProperty of Kotlin2JsCompile
Tools. Gradle. Multiplatform
KT-56440
TCS: Gradle Sync: Add API to populate extras only during syncKT-63226
KGP Multiplatform Ide Dependency Resolution: Use gradle variants instead/in addition of ArtifactResolutionQuery
Tools. Gradle. Native
KT-62745
iOS application build is failing if script sandboxing option is enabled in XcodeKT-62800
CInteropProcess should not require .def file to existKT-62795
CInteropProcess task resolves cinterop def file eagerly, breaking Gradle task dependencies
Tools. Incremental Compile
KT-63837
Implement baseline fix for common sources getting access to platform declarationsKT-64513
Simplify adding configuration properties to incremental compilationKT-21534
IC doesn't recompile file with potential SAM-adapter usageKT-63839
Measure impact of rebuilding common sources, using nightly IC benchmarksKT-64228
K2: After switching to LV20 branch incremental tests are not running on PSI anymoreKT-46743
Incremental compilation doesn't process usages of Java property in Kotlin code if getter is removedKT-60522
Incremental compilation doesn't process usages of Java property in Kotlin code if return type of getter changes
Tools. JPS
KT-55393
JPS: Java synthetic properties incremental compilation is broken
Tools. Kapt
KT-64719
K2 KAPT Stub genertaion doesn't fail on files with syntax errorsKT-64680
Kapt: remove the flag to enable old JVM backendKT-64639
KAPT+JVM_IR: erased error types in JvmStatic and JvmOverloadsKT-64389
K2 KAPT generates invalid code for multiple generic constraintsKT-61776
K2: KAPT tasks fail with parallel gradleKT-64021
Kapt3 + Kapt4. NullPointerException: processingEnv must not be nullKT-64303
K2 KAPT: Kapt doesn't dispose resources allocated by standalone analysis APIKT-64301
K2 KAPT: Kapt doesn't report invalid enum value names to logKT-64297
K2 KAPT: Deprecated members are not marked with@java
.lang.Deprecated
Tools. REPL
KT-18355
REPL doesn't quit on the first line after pressing Ctrl+D or typing :quit