Releases: JetBrains/kotlin
Releases Β· JetBrains/kotlin
Kotlin 2.3.10-RC
Changelog
Compiler
KT-83314JSpecify@NullMarkedchanges Java equals(Object) to equals(Any?) causing override conflict in Kotlin 2.3KT-83317ClassCastException: with cast kotlin.UInt to java.lang.Number when defining constantKT-83031K2: unstable resolution of EnhancedNullability from type-use NotNull in presence of unused codeKT-82863@NoInferregression since 2.2.20KT-82841"kotlin.NoWhenBranchMatchedException" inwhenwith!ischeck & non-sealed class in the middle of hierarchy
Compose compiler
b/195200551Fix classId for detecting protobuf enumsb/463961757Simplify Compose group analysisb/463961757Fix analysis of boolean captures in composable lambdab/461766771FixIrSimpleFunction.isLegacyOpenFunctionWithDefault
JVM. Reflection
KT-83608Kotlin-reflect: "Unknown origin of public abstract operator fun invoke(p1: P1, p2: P2): R"KT-42199"KotlinReflectionInternalError: Unknown origin of public abstract operator fun invoke" on function reference to FunctionN.invokeKT-81024Reflection: New KType implementation fails on arguments comparison for a Nothing type parameterKT-83361"KotlinReflectionInternalError: Type parameter not found: 0" on super types with Kotlin 2.3.0
Tools. Compiler Plugins
KT-83266"Unsupported class file major version 69" for "produceReleaseComposeMapping" task with Kotlin 2.3KT-83099Compose compiler does not generate stack trace mappings for project files
Tools. Gradle
KT-83070The KGP api reference is missing a descriptionKT-82459Improve iOS simulator boot implementation
Tools. Gradle. JS
KT-82946Js, Wasm: Upgrade NPM dependencies
Tools. Gradle. Multiplatform
KT-83687Revert deprecation of 'androidTarget' for AGP lower than 9
Kotlin 2.3.20-Beta1
Changelog
Analysis API. FIR
New Features
KT-78090Implement stubs support for new conditional returns and holdsIn contracts
Fixes
KT-80485False positive UNRESOLVED_REFERENCE on nested interface from super-super class in the super type position inside an anonymous objectKT-82948'FirRegularClass' expected as a containing declaration, got 'FirTypeAliasImpl'KT-82057K2. Cannot infer type parameter 'R' in Ktor routing post() function with explicit response typeKT-82772Flaky false positive deprecation warning on PersistentMap.put in Kotlin repo in IDE modeKT-76487StdLibSourcesLazyDeclarationResolveTestGenerated.testWrappedInt is unstableKT-82618Various tests are failing with NPE in kt-master after updating the compiler on 19.11.25KT-82076Error querying members of JavaClass created for SymbolLightClassForAnnotationClass during library analysisKT-71596Include Js/Wasi checkers in AbstractLLFirDiagnosticsCollectorKT-82085No OUTER_CLASS_ARGUMENTS_REQUIRED on type parameter bound in IDEKT-81873Provide a way of including traces in phase JFR eventsKT-71929Consider leaving the non-post-compute version at EnhancementSymbolsCache.enhancedFunctions
Analysis API. Infrastructure
KT-65140LL FIR: Implement AbstractFirPsiJsDiagnosticTest for LL FIRKT-82212[Analysis API, LL FIR] Implement AbstractDiagnosticsFirWasmTest and AbstractDiagnosticsFirWasmWasiTest for LL FIR
Analysis API. Light Classes
KT-82227Value classes should expose regular static methods
Analysis API. PSI
KT-81710'KtTypeReference.getTypeText' does not account for 'suspend' modifier on suspend lambdasKT-82258Prepare PSI for migration from context receivers to context parametersKT-81074KDoc: List rendering is broken
Analysis API. Providers and Caches
KT-82449K2 IDE Analysis Freezes During Gradle Sync (Recursive Module Dependency Computation in KotlinModuleDependentsProviderBase.computeTransitiveDependents)KT-82629'collectDiagnostics' returns stale syntax error after editor fixKT-74907Analysis API: Apply platform-based library module content restrictions consistently
Analysis API. Standalone
KT-81107AA: KtSourceModuleBuilder.sourceRoots doesn't works with symbolic links
Analysis API. Stubs and Decompilation
KT-82792Stub for KtValueArgumentList inside KtAnnotationEntry should be present if it is present in psiKT-82527TypeClsStubBuilder.createFunctionTypeStub throws NullPointerExceptionKT-82558Deserialized DNN type should have a fully qualified AnyKT-81928KaArrayAnnotationValueImpl.values missing first elementKT-82139Support contracts for property accessorsKT-82198Support context parameters in contracts
Analysis API. Surface
New Features
KT-82851Property accessors should inherit KDoc from the parent propertyKT-63339Analysis API: Provide a way to extract KDoc for symbolsKT-79070KaTypeProvider: add API to build a default type with star projectionsKT-66566AA: api to create functional typesKT-66043KtTypeCreator doesn't provide a way for creating annotated types
Performance Improvements
KT-81627KaFirSymbolDeclarationOverridesProvider#processOverrides should process only relevant declarations
Fixes
KT-68577asPsiTypeandmapTypeToJvmType: leading delimiter for class in a root packageKT-81734MIssing "ARGUMENT_TYPE_MISMATCH" caused by self-referential generic typeKT-82856Redesign KotlinReferenceProviderContributor to make it extensibleKT-82615ClarifyKtReference#resolvesByNamescontractKT-82534No expected type for property accessor without bodyKT-82406Add a test to ensure that all top-level classes in the Analysis API Surface haveKaprefixKT-78397investigate if there is a need in Extra support for the "various little features in contracts"KT-74009Analysis API: Expose "isOverloadable" check for callable symbols similar to "OverloadChecker.isOverloadable"KT-78399Check return value - check how we see from Java(+Stub) we see βannotatedβ signaturesKT-80357[Analysis API]KaType.enhancedTypedoesn't enhance type parametersKT-73659Analysis API: The name ofKaType.enhancedTypeis too generalKT-80545[Analysis API] DeprecateKaFunctionType.arityKT-77708K2 Mode: Potentially redundant smart cast highlighing when passing smartcasted expressions as argumentsKT-81264K2 AA:KaValueParameterSymbol.hasDefaultValueis false for overriding or actual functionsKT-81166Forbid the usage of KaSessionComponent implementation types directlyKT-74801Analysis API: Publish/subscribe to modification events with a single message bus topic
Backend. Native. Debug
KT-81741Native: stepping into data class hashCode in lldb goes to line 1
Backend. Wasm
New Features
KT-81485[Wasm] DebuggerCustomFormatters generation support for single module modeKT-81483[Wasm] Typescript generation support for single module modeKT-81484[Wasm] Dwarf generation support for single module mode
Performance Improvements
KT-81524Unnecessary Any-JsAny conversions are generated for external instanceofs
Fixes
KT-79937K/Wasm: support kotlin.js.nativeInvoke annotationKT-82202[Wasm] SourceMap generation support for single module modeKT-82162[Wasm] Run single module tests with standalone vm'sKT-81325[Wasm] Remove string pool initialiser dependent codeKT-82645K/Wasm: wasmJs use js "String" for number2String conversionKT-73238K/Wasm: stop using linear memory inside our codeKT-83025Wasm: Compose application is not loadingKT-73240K/Wasm: consider using JS String Builtins proposal in String implementation for wasm-js targetKT-73239K/Wasm: use JS String Builtins proposal to transfer strings to and from JSKT-83046K/Wasm: don't use StringBuilder implicitly for string concatenationsKT-82309K/Wasm: refactor _initialize functionKT-83194K/Wasm: create WasmIR test infrastructureKT-65234K/Wasm Ensure that fp operations are aligned with other b-endsKT-81856K/JS/Wasm interop: external instanceofs do not link in singleModule modeKT-81610[Wasm] Add CLI test for performance metrics for klibs->binary scenario- [
KT-81550](https://youtrack.jetbrains.com/iss...
Kotlin 2.3.0
Changelog
Analysis API
KT-80082K2. False positive "Cannot resolve method" for self-bounded generic with wildcard return type in Java interopKT-80303Move:native:analysis-api-klib-readerto:libraries:tools
Analysis API. Code Compilation
KT-70860K2 IDE / Kotlin Debugger: CCE βjava.lang.String cannot be cast to java.lang.Voidβ on evaluating not-null variable on the line with assigning null to that varKT-78554K2 IDE / Kotlin Debugger: ISE βNo override for FUN IR_EXTERNAL_DECLARATION_STUBβ on calling toString() for local class instance during evaluationKT-73201K2 IDE: Error while evaluating expressions with local classes
Analysis API. FIR
KT-81378Expected expression 'FirFunctionCallImpl' to be resolved caused bysuspend {}KT-80473Add events for tracking LL activitiesKT-46375Analysis API: Support cross-file class redeclaration checks using indicesKT-80471Analysis API: Deduplicate equivalent call candidates inresolveToCallCandidatesKT-79653[Analysis API] ContextCollector: BODY context of enum classes doesn't contain enum entriesKT-75858K2 AA: False positive 'property must be initialized' on incremental analysis with 'field' usage and semicolon in setterKT-80231AnnotationArgumentsStateKeepers doesn't restore the initial annotation in some casesKT-80233Pull mutation out of AnnotationArgumentsStateKeepersKT-71466LLFirBuiltinsSessionFactoryusescreateCompositeSymbolProviderKT-76432JavaClassUseSiteMemberScope: Expected FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl
Analysis API. Infrastructure
KT-80717Support IntelliJ Bazel build in the Kotlin Coop development mode
Analysis API. Light Classes
KT-80656Duplicate no-args constructor in PSIKT-60490Symbol Light Classes: Property accessors from a delegated interface don't present in the delegating classKT-79689SymbolLightClassForClassLike.toString() causes PSI tree loadingKT-80690Private interface functions are not present in light classesKT-80256K2: Certain actions in JPA code causes infinite PIEAE: "Element class CompositeElement of type REFERENCE_EXPRESSION (class KtNameReferenceExpressionElementType)"KT-79012Add a high-level overview of light classes
Analysis API. Providers and Caches
Fixes
KT-81476Analysis API:AlreadyDisposedExceptionfrom low-memory cache cleanupKT-80911Analysis API: Execute session invalidation in a non-cancelable sectionKT-81242Analysis API: Add UUID/lifetime properties to LL FIR session structure loggingKT-80622Analysis API: Visualise LL FIR session structure & weightKT-80904Analysis API: "Invalid dangling file module" exception during session invalidationKT-78882K2 AA: Calling containingSymbol on getProgressionLastElement causes exceptionKT-58325Analysis API: CombineLLKotlinStubBasedLibrarySymbolProviders in session dependencies (optimization)KT-77825Analysis API:CheckersComponentconsumes a lot of memory while being unused in LL FIR sessionsKT-76526Incorrect built-in module is provided for non-JVM sources in StandaloneKT-62549Analysis API: Cache callables in combined Kotlin symbol providersKT-70721LL FIR: investigate possibility of movingLLFirFirClassByPsiClassProvider . getClassByPsiClass (PsiClass)to symbol providersKT-72998Analysis API: IntroducegetClassLikeSymbolByPsito LL FIR symbol providers
Analysis API. Standalone
KT-81108AA: java.lang.ClassCastException: class org.jetbrains.kotlin.fir.FirBinaryDependenciesModuleData cannot be cast to class org.jetbrains.kotlin.analysis.low.level.api.fir.projectStructure.LLFirModuleDataKT-80573Potential performance issue on class ID computationKT-80559Try to optimize KotlinStandaloneDeclarationProviderFactory startup for testsKT-71706Analysis API Standalone:StandaloneProjectFactory.createSearchScopeByLibraryRootscreates inefficient file-based search scopes
Analysis API. Stubs and Decompilation
Performance Improvements
KT-77097SupportReplaceWithdeprecation annotation argument via stubs
Fixes
KT-80350Drop K1 decompilerKT-77082StackOverflowError in CreateFreshTypeVariableSubstitutorStage.shouldBeFlexibleKT-80798Improve stubs tests coverageKT-75318Read context parameter fields from metadata in CallableClsStubBuilderKT-77874AA disagrees with the compiler on descriptions of context parameters from binaries in messages for context argument ambiguity errorsKT-80276Implement native coping for stubsKT-79780Decompiled MultifileClass has Facade kindKT-79398isClsStubCompiledToJvmDefaultImplementation flag is inconsistent for compiled and decompiled stubsKT-79798Prettify stub usages in LL stub-based deserializerKT-78949AbstractLLStubBasedResolutionTest: tests against real stub-based filesKT-80251Inconsistent decompiled and compiled stub for properties with an initializer and a delegateKT-74547Implement decompiler for K2KT-79555Move KotlinFileStubImpl serialization/deserialization to the Analysis APIKT-79487"null DefinitelyNotNullType for 'T'" from decompilerKT-60764Stub Builder: fix differences between K1 and K2 stub building on decompiled filesKT-79484An empty enum class with a member decompiles with a synthetic errorKT-79730Decompiled files have an extraKtsuffixKT-79483data modifier is not present on object modifierKT-75398Local classes from scripts have ClassId in stubsKT-79412Context parameters with type annotations cause inconsistency errors while building stubs
Analysis API. Surface
New Features
KT-80084Provide endpoints for Analysis API to understand when the context sensitive resolution is usedKT-64340Analysis API: no way to get a type of vararg parameterKT-68387AA: provide context for type approximations
Performance Improvements
KT-80713Optimize KaDeclarationSymbol#visibility for class-like symbolsKT-79097KaFirNamedFunctionSymbol#isSuspend shouldn't trigger resolutionKT-79095isOverride shouldn't trigger resolution if not compiler plugins present
Fixes
Kotlin 2.3.0-RC3
Kotlin 2.3.0-RC2
Kotlin 2.3.0-RC
Changelog
Backend. Wasm
KT-82075K/Wasm: kotlin.wasm.internal.getSimpleName crashes on iOS Safari older than 26
Compiler
KT-82138Debugger: Cannot evaluate JvmInline value class parameterKT-78413Kotlin Debugger: value classes as context parameters have incorrect names in Variables View during debuggingKT-80549Call of Java method with type parameter bounds: Expected FirResolvedTypeRef with ConeKotlinType but was FirJavaTypeRefKT-82132False-positive type mismatch with -language-version 2.2KT-81988K2: Any?.toString() causes NPE inside lambda with JavaKT-82022K/N: Unexpected "Annotation@JvmInlineis missing on actual declaration" warning with value classes
Compose compiler
CMP-9167iOS: Platform declaration clash: The following functions have the same IR signature
IR. Actualizer
KT-77337IrNoExpectSymbolsHandlerfinds expect class reference after enabling annotation traversal in IR
IR. Tree
KT-81952"IllegalStateException: Callable reference with vararg should not appear at this stage" for callable references to functions with generic vararg parameters
JVM. Reflection
KT-81967isSubtypeOf: ClassCastException: CapturedKType cannot be cast to class AbstractKTypeKT-81619Reflection: Function supertype of a FunctionN class has flexible type in new implementation
JavaScript
KT-82005KJS: "TypeError: callAgent.jsonRpcCall_ij3z26_k$ is not a function" after code change in 2.3.0-Beta1/2KT-79514java.lang.IllegalStateException: IrClassSymbolImpl is unbound. Signature: kotlin.js/Promise|null[0] on running jsBrowserTest
Libraries
KT-81995K/N: CMP: Undefined symbol _kfun:kotlin.time.Duration.kotlin.time.DurationKT-72111Change Duration.parseOrNull logic to not throw exceptions internally
Tools. Compiler Plugin API
KT-82099Compiler plugin ordering has no effect
Tools. Gradle
KT-79482Report webMain / webTest usage in FUS metricsKT-82244Conflicting warnings when using AGP 9.0.0-alpha with built-in Kotlin disabledKT-82068Workaround iOS Simulator start failure in ITKT-81161Gradle plugin api reference: compiler arguments types are not available
Tools. Gradle. Multiplatform
KT-81601Withandroid.builtInKotlin=falseAGP 9.0+, usingkotlin-multiplatformplugin will fail with aClass Cast ExceptionKT-81980KGP warning gives incorrect suggestion for AGP application compatibility
Tools. Gradle. Native
KT-81510commonizeCInteropexception with 'kotlinNativeBundleConfiguration' not found
Tools. Maven
KT-82180kotlin-maven-plugin: IC succeeds after dependent source deletion
Tools. Wasm
KT-82365K/Wasm: NodeRun tasks in Wasi depend on kotlinWasmToolingSetup
Kotlin 2.3.0-Beta2
Changelog
Analysis API
KT-80082K2. False positive "Cannot resolve method" for self-bounded generic with wildcard return type in Java interop
Analysis API. Code Compilation
KT-70860K2 IDE / Kotlin Debugger: CCE βjava.lang.String cannot be cast to java.lang.Voidβ on evaluating not-null variable on the line with assigning null to that var
Analysis API. FIR
KT-81378Expected expression 'FirFunctionCallImpl' to be resolved caused bysuspend {}KT-80473Add events for tracking LL activities
Analysis API. Providers and Caches
KT-81476Analysis API:AlreadyDisposedExceptionfrom low-memory cache cleanupKT-80911Analysis API: Execute session invalidation in a non-cancelable sectionKT-81242Analysis API: Add UUID/lifetime properties to LL FIR session structure loggingKT-80622Analysis API: Visualise LL FIR session structure & weightKT-80904Analysis API: "Invalid dangling file module" exception during session invalidationKT-78882K2 AA: Calling containingSymbol on getProgressionLastElement causes exception
Analysis API. Standalone
KT-81108AA: java.lang.ClassCastException: class org.jetbrains.kotlin.fir.FirBinaryDependenciesModuleData cannot be cast to class org.jetbrains.kotlin.analysis.low.level.api.fir.projectStructure.LLFirModuleData
Analysis API. Stubs and Decompilation
KT-77097SupportReplaceWithdeprecation annotation argument via stubs
Analysis API. Surface
New Features
KT-80084Provide endpoints for Analysis API to understand when the context sensitive resolution is used
Fixes
KT-81132Use KaSession instead of a particular KaSessionComponent for context parameter bridgesKT-81129K2: KaSymbolInformationProvider#importableFqName: should return null for dynamic declarationsKT-81128K2: KaSymbolInformationProvider#importableFqName: should return null for error destructuring declarationsKT-81127K2: KaSymbolInformationProvider#importableFqName: should return null for anonymous functionsKT-81126K2: KaSymbolInformationProvider#importableFqName: should return null for enum entry initializer constructorsKT-81125K2: KaSymbolInformationProvider#importableFqName: should return null for property accessorsKT-81124K2: KaSymbolInformationProvider#importableFqName: type alias constructor should have a reference to the type alias and not to the underlying classKT-70127Analysis API: 'KaFirReceiverParameterSymbol' does not implement 'KaFirSymbol'; leads to exception fromimportableFqNameKT-81123Reimplement KaFirSymbolInformationProvider#importableFqNameKT-81122Drop KaImportOptimizerKT-79772Migrate from 'validityAsserted' to 'withValidityAssertion'KT-59857KaExpressionTypeProvider#returnType shouldn't throw an exception for class like declarations
Backend. Wasm
KT-79244[Wasm] Drop K1-specific tests, testrunners and test directivesKT-80397K/Wasm: turn on by default using a new version of the exception handling proposal for wasm-wasi targetKT-76204K/Wasm: support generating a wasm module per kotlin module/klibKT-81372K/Wasm: JsException: Exception was thrown while running JavaScript code on Safari 18.2/18.3KT-80106devServer in Kotlin/Wasm overwrites defaults, causing missing static paths
Compiler
New Features
KT-80837Warn about extension function with a context shadowed by memberKT-80031Check spotbugs's@CheckReturnValuein Kotlin's unused return value checker
Performance Improvements
KT-81617Native: casts optimizations pass explodes on deep nested loopsKT-81340K/N: severe compilation time degradation after turning on casts optimization passKT-52283Never ending type inference while compiling Kotlin code with lots of self pointing generics
Fixes
KT-81618"Number of arguments should not be less than number of parameters" on JVM on Kotlin 2.3.0-Beta1KT-81652Native: ClassCastException: ApplicationForegroundStateListener.CompanionKT-74999K2: KotlinNothingValueException within Extension FunctionKT-81254"AssertionError: There should be at least one non-stub type to compute common supertype": Parser issue during generic type inferenceKT-80250ISE: flow for PostponedLambdaExitNode not initialized - traversing nodes in wrong order?KT-81186Only allow local type aliases in REPL/scripts until full stabilizationKT-80929IC Native: Undefined symbols on ktorKT-81657K2: put warning about "exposing package-private in internal" under experimental language featureKT-81241Konanc exit while lowering org.jetbrains.kotlin.ir.util.IrUtilsKt.remapTypeParametersKT-74819K2: False-positive overload resolution ambiguity for flatMap inside PCLAKT-79506Contract for getter and setter doesn't work if a property is called from another moduleKT-71420Report error when reified type parameter is inferred to intersection typeKT-77727Move some of the extra checkers to the default listKT-81257Native: "Unexpected boolean predicate" when generating 'static_cache'KT-81525Report REDUNDANT_SPREAD_OPERATOR on (*) instead of argument expressionKT-81522Fix Light TreeSPREAD_OPERATORdiagnostic positioningKT-77008K2: Incorrectly force casting to a wrong typeKT-78127K2: Too precise inference for if/when with expected type in assignmentKT-80208K2: ClassCastException: "class java.util.ArrayList cannot be cast to class java.lang.Void" type inference picks Void for generic functionKT-79231Inconsistent InnerClass entry flags for abstract inner enumKT-20677Improve diagnostic about implicit default constructor absence for expected annotation classKT-9111Improve diagnostic for call with access to outer class from nested classKT-81385Missing error of nullable expression in class literal in case of reified type parameterKT-81141Fix FirUnsupportedArrayLiteralChecker to forbid array literals inside non-annotation contextsKT-81383Return type of anonymous function used asrunargument is incorrectly inferred toNothingKT-80577"Return type mismatch" for self-referential types used as generic parametersKT-81198Move type and type parameter annotations from jvm_metadata.proto to metadata.protoKT-81057Wrong handling of boxing during redundant casts optimizationKT-76479Backend. JVM: Report errors on exposure of types in inline functionsKT-81191K2: "null cannot be cast to non-null type ConeTypeParameterLookupTag" with invalid codeKT-81115Allow converting lambda wi...
Kotlin 2.2.21
Changelog
Backend. Wasm
KT-81372K/Wasm: JsException: Exception was thrown while running JavaScript code on Safari 18.2/18.3KT-80018K/Wasm: exceptions don't work properly in JavaScriptCore (vm inside Safari, WebKit)
Compiler
KT-81191K2: "null cannot be cast to non-null type ConeTypeParameterLookupTag" with invalid codeKT-80936NON_PUBLIC_CALL_FROM_PUBLIC_INLINE :@PublishedApidoesn't work for fun interfaces
JavaScript
KT-79926Wrong export of interfaces with companions with ES ModulesKT-81424Kotlin/JS: Cannot Get / in a simple running applicationKT-80873KJS: Stdlib requires ES2020-compatible JS engine due to BigInt type literal
Native
KT-79384K/N: Application Not Responding: Thread Deadlock
Tools. Gradle
KT-79047Gradle compileKotlin fails with configuration cacheKT-81148Publishing helpers in KGP are incompatible with Isolated ProjectsKT-80950KGP breaks configuration cache when signing plugin with GnuPG is applied
Tools. Gradle. Multiplatform
KT-61127Remove scoped resolvable and intransitive DependenciesMetadata configurations used in the pre-IdeMultiplatformImport IDE importKT-81249Kotlin 2.2.20 broke KMP implementation of Parcelize
Tools. Gradle. Native
KT-81510commonizeCInteropexception with 'kotlinNativeBundleConfiguration' not foundKT-81134Native: Gradle configuration failure likely related to Klibs cross-compilationKT-77732commonizeCInteropfailed with "Unresolved classifier: platform/posix/size_t"KT-80675Commonized cinterops between "test" compilations produce an import failure
Tools. Maven
KT-81218Kotlin Maven Plugin 2.2.20: Java classes not resolved with enabled incremental compilation without daemon
Tools. Wasm
KT-80582Multiple reloads when using webpack dev server after 2.2.20-Beta2
Kotlin 2.2.21-RC2
Kotlin 2.3.0-Beta1
Changelog
Analysis API
KT-80303Move:native:analysis-api-klib-readerto:libraries:tools
Analysis API. Code Compilation
KT-80227Support unnamed context parameters in evaluationKT-78554K2 IDE / Kotlin Debugger: ISE βNo override for FUN IR_EXTERNAL_DECLARATION_STUBβ on calling toString() for local class instance during evaluationKT-73201K2 IDE: Error while evaluating expressions with local classes
Analysis API. FIR
KT-46375Analysis API: Support cross-file class redeclaration checks using indicesKT-80471Analysis API: Deduplicate equivalent call candidates inresolveToCallCandidatesKT-79653[Analysis API] ContextCollector: BODY context of enum classes doesn't contain enum entriesKT-75858K2 AA: False positive 'property must be initialized' on incremental analysis with 'field' usage and semicolon in setterKT-80231AnnotationArgumentsStateKeepers doesn't restore the initial annotation in some casesKT-80233Pull mutation out of AnnotationArgumentsStateKeepersKT-71466LLFirBuiltinsSessionFactoryusescreateCompositeSymbolProviderKT-76432JavaClassUseSiteMemberScope: Expected FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl
Analysis API. Infrastructure
KT-80717Support IntelliJ Bazel build in the Kotlin Coop development mode
Analysis API. Light Classes
KT-80656Duplicate no-args constructor in PSIKT-60490Symbol Light Classes: Property accessors from a delegated interface don't present in the delegating classKT-79689SymbolLightClassForClassLike.toString() causes PSI tree loadingKT-79012Add a high-level overview of light classes
Analysis API. Providers and Caches
KT-78882K2 AA: Calling containingSymbol on getProgressionLastElement causes exceptionKT-58325Analysis API: CombineLLKotlinStubBasedLibrarySymbolProviders in session dependencies (optimization)KT-77825Analysis API:CheckersComponentconsumes a lot of memory while being unused in LL FIR sessionsKT-76526Incorrect built-in module is provided for non-JVM sources in StandaloneKT-62549Analysis API: Cache callables in combined Kotlin symbol providersKT-70721LL FIR: investigate possibility of movingLLFirFirClassByPsiClassProvider . getClassByPsiClass (PsiClass)to symbol providersKT-72998Analysis API: IntroducegetClassLikeSymbolByPsito LL FIR symbol providers
Analysis API. Standalone
KT-80573Potential performance issue on class ID computationKT-80559Try to optimize KotlinStandaloneDeclarationProviderFactory startup for testsKT-71706Analysis API Standalone:StandaloneProjectFactory.createSearchScopeByLibraryRootscreates inefficient file-based search scopes
Analysis API. Stubs and Decompilation
Performance Improvements
KT-77097SupportReplaceWithdeprecation annotation argument via stubs
Fixes
KT-77082StackOverflowError in CreateFreshTypeVariableSubstitutorStage.shouldBeFlexibleKT-80798Improve stubs tests coverageKT-75318Read context parameter fields from metadata in CallableClsStubBuilderKT-77874AA disagrees with the compiler on descriptions of context parameters from binaries in messages for context argument ambiguity errorsKT-80350Drop K1 decompilerKT-80276Implement native coping for stubsKT-79780Decompiled MultifileClass has Facade kindKT-79398isClsStubCompiledToJvmDefaultImplementation flag is inconsistent for compiled and decompiled stubsKT-79798Prettify stub usages in LL stub-based deserializerKT-78949AbstractLLStubBasedResolutionTest: tests against real stub-based filesKT-80251Inconsistent decompiled and compiled stub for properties with an initializer and a delegateKT-74547Implement decompiler for K2KT-79555Move KotlinFileStubImpl serialization/deserialization to the Analysis APIKT-79487"null DefinitelyNotNullType for 'T'" from decompilerKT-60764Stub Builder: fix differences between K1 and K2 stub building on decompiled filesKT-79484An empty enum class with a member decompiles with a synthetic errorKT-79730Decompiled files have an extraKtsuffixKT-79483data modifier is not present on object modifierKT-75398Local classes from scripts have ClassId in stubsKT-79412Context parameters with type annotations cause inconsistency errors while building stubs
Analysis API. Surface
New Features
KT-64340Analysis API: no way to get a type of vararg parameterKT-68387AA: provide context for type approximations
Performance Improvements
KT-80713Optimize KaDeclarationSymbol#visibility for class-like symbolsKT-79097KaFirNamedFunctionSymbol#isSuspend shouldn't trigger resolutionKT-79095isOverride shouldn't trigger resolution if not compiler plugins present
Fixes
KT-78093Add bridges for context parametersKT-79328K2 AA, isUsedAsExpression: Unhandled Non-KtExpression parent of KtExpression: class org.jetbrains.kotlin.psi.KtImportDirectiveKT-80366IllegalStateException from KaFirStopWorldCacheCleanerKT-80274Merge AbstractMultiModuleSymbolByPsiTest to AbstractSymbolByPsiTestKT-80352KaBaseResolutionScope.contains(PsiElement) always returns false for Android light classes (e.g. synthetic R.java classes)KT-80234Incorrect value ofisActualfor the implicitlyactualconstructor of annotation classKT-80178Incorrect modality for an abstract interface function with a redundantopenmodifierKT-79129[Analysis API]KaFe10TypeCreator.buildClassTypecannot build builtin types by class idsKT-79143AA:argumentMappingcontains an expression that is not an argumentKT-59857KaExpressionTypeProvider#returnType shouldn't throw an exception for class like declarationsKT-79667Enable resolve on java record components in standalone modeKT-73050KaFirSymbolRelationProvider#expectsForActual: suspicius logic for KaReceiverParameterSymbolKT-78904KaBaseWriteActionStartedChecker throws when no additional WA was doneKT-79281Add KDoc toKaTypePointer#restoreKT-78597KaUseSiteVisibilityChecker returns false for internal functions exposed via implicit receiverKT-71705FIR api impl: Postfix increment expression'sexpressionTypeis Unit when incrementing array elementKT-75057Analysis API: Reference to object thr...