Skip to content

Releases: JetBrains/kotlin

Kotlin 2.1.21-RC

17 Apr 08:24

Choose a tag to compare

Kotlin 2.1.21-RC Pre-release
Pre-release

Changelog

Backend. Native. Debug

  • KT-75991 Xcode 16.3: Fix lldb stepping test over an inline function

Compiler

  • KT-75992 Xcode 16.3: stacktraces on simulators are not symbolicated
  • KT-76663 KJS: KotlinNothingValueException caused by expression return since 2.1.20
  • KT-75756 Backend Internal error: Exception during IR lowering when trying to access variable from providedProperties in class within kotlin custom script
  • KT-76209 CONFLICTING_UPPER_BOUNDS on Nothing bound
  • KT-70352 K2: False-negative CONFLICTING_UPPER_BOUNDS on Nothing bound
  • KT-74739 Native: "IllegalArgumentException: All constructors should've been lowered: FUNCTION_REFERENCE"
  • KT-75483 Native: redundant unboxing generated with smart cast
  • KT-71425 IR Inliner: investigate return type of an inlined block

Compose compiler

  • b/408013789 Add missing return for the default function wrappers
  • b/405541364 Realize coalescable children in the body of key call
  • b/401484249 Generate a group around Array constructor call
  • b/400380396 Fix missing endMovableGroup call with early return in key function

Native

  • KT-76252 Native: executable crash with generic value classes with 2.1.20

Native. C and ObjC Import

  • KT-75781 Xcode 16.3: Fix cinterop tests failing with fatal error: could not build module '_stdint'

Native. Runtime. Memory

  • KT-74280 Native: GC.collect crashes with -Xallocator=std

Tools. CLI

  • KT-74663 kotlinc-js CLI: not providing -ir-output-dir results in NullPointerException

Tools. Compiler Plugins

  • KT-76162 "IllegalStateException: No mapping for symbol: VALUE_PARAMETER INSTANCE_RECEIVER" after updating to 2.1.20

Tools. Gradle

  • KT-73142 Kotlin Gradle plugin: Remove usage of Gradle's internal ExecHandleBuilder
  • KT-73684 Run integration tests against Gradle 8.12
  • KT-74889 Compile against Gradle 8.13 API
  • KT-74887 Compatibility with Gradle 8.13 release
  • KT-36004 Update 'org.gradle.usage' attribute rules to support the 'JAVA_API' and 'JAVA_RUNTIME' value
  • KT-72694 Accessing Task.project during execution is being deprecated in Gradle 8.12
  • KT-74890 Run Gradle integrations test against Gradle 8.13 release
  • KT-73682 Compatibility with Gradle 8.12 release
  • KT-73968 KotlinDependencyManagement tries to mutate configuration after it was resolved
  • KT-73683 Compile against Gradle API 8.12

Tools. Gradle. JS

  • KT-74735 KGP uses Gradle internal CompositeProjectComponentArtifactMetadata
  • KT-71879 Notice of upcoming deprecation for Boolean 'is-' properties in Gradle Groovy scripts

Tools. Gradle. Multiplatform

  • KT-75808 KGP: MPP with jvm target and Gradle java-test-fixtures is broken
  • KT-75605 Dependency resolution fails in commonTest/nativeTest source sets for KMP module when depending on another project due to missing PSM
  • KT-75512 Maven-publish: ArtifactId is not correct inpom file with customized withXml

Tools. Incremental Compile

  • KT-62555 Wrong ABI fingerprint for inline function containing a lambda

Tools. Kapt

  • KT-75936 K2 KAPT: unsupported FIR element kinds in constant evaluation
  • KT-75942 K2 KAPT: underscore not allowed here

Tools. Scripts

  • KT-76424 Dependencies in main.kts not working with 2.1.20
  • KT-76296 Kotlin script compiler crashes when secondary constructor calls a function
  • KT-75589 Scripts: "IndexOutOfBoundsException in jdk.internal.util.Preconditions.outOfBounds" when trying to extend a class which uses global variable

Tools. Wasm

  • KT-76161 Wasm: "export startUnitTests was not found" after updating to Kotlin 2.1.20

Kotlin 2.2.0-Beta1

15 Apr 07:23

Choose a tag to compare

Kotlin 2.2.0-Beta1 Pre-release
Pre-release

Changelog

Analysis API

  • KT-75880 K2 Mode: Typealias reference resolves to the underlying class in KMP project
  • KT-74246 KaVisibilityChecker.isVisible is inefficient with multiple calls on the same use-site
  • KT-57733 Analysis API: Use optimized ModuleWithDependenciesScopes in combined symbol providers

Analysis API. Code Compilation

  • KT-75502 K2: IDEA hangs when evaluating inside kotlin-stdlib modules in the Kotlin project
  • KT-73077 Evaluation of inline functions is broken inside Kotlin project and Amper module in Idea sources
  • KT-73936 K2: CyclicInlineDependencyException: Inline functions have a cyclic dependency in evaluator
  • KT-74582 InterpreterMethodNotFoundError when trying to evaluate simple expressions after recent fixes
  • KT-74524 Compilation exception with incorrect JvmName annotation arguments
  • KT-74443 Compilation peer collector ignores inline property accessors

Analysis API. FIR

Performance Improvements

  • KT-75790 Experiment with increasing DEFAULT_LOCKING_INTERVAL time
  • KT-72159 LLFirCompilerRequiredAnnotationsTargetResolver: consider rewriting it to use honest jumping locks

Fixes

  • KT-72908 K2 Analysis API: "FirDeclaration was not found for class org.jetbrains.kotlin.psi.KtFunctionLiteral" with non-local destructuring declaration without initializer before init block
  • KT-75532 ContextCollector: scope for an anonymous function type parameter contains regular parameters
  • KT-74508 FirElementBuilder#findElementInside should reuse logic from KtToFirMapping#getFir
  • KT-73066 [LL] Enable low-level-api-fir-native even with the disabled native part
  • KT-75132 Investigate failures of sandbox diagnostic test
  • KT-75130 Set up LL FIR tests for sandbox test data
  • KT-73386 Standardize LL FIR test for compiler test data
  • KT-75125 ISE β€œValue classes cannot have 0 fields” on instantiating inline class without fields
  • KT-75179 ContextCollector: support error properties
  • KT-74632 K2: ISE FirLazyDelegatedConstructorCall should be calculated before accessing
  • KT-73493 Support context parameters
  • KT-73183 Support context parameters in ContextCollectorVisitor
  • KT-60350 K2 IDE: top level destructuring RHS should be resolvable
  • KT-74794 K2: FirLazyExpression should be calculated before accessing with context parameter and implicit return type
  • KT-72938 Get rid of KaFirAnnotationListForReceiverParameter
  • KT-73727 Exception in implicit type resolution

Analysis API. Infrastructure

  • KT-74917 [Analysis API, Test Framework] Introduce a way to acquire PsiFile for a given TestFile in KtTestModule

Analysis API. Light Classes

  • KT-75391 Reduce the amount of psi-based logic in light classes
  • KT-70001 SLC adds @Override with zero text offset on override member
  • KT-75755 K2. False positive red code on vararg parameters in Kotlin class with @JvmOverloads when called from Java
  • KT-75397 Constructors and functions with non-last vararg parameters are treated as varargs
  • KT-73405 Get rid of KtElement#{symbolPointer, symbolPointerOfType} API usages
  • KT-74868 Support context parameters
  • KT-74733 SymbolPsiLiteral.text == value for Java constant
  • KT-74620 Delegated functions with value classes are present in light classes
  • KT-74595 Static functions with value classes are present in light classes
  • KT-74284 Synthetic data class methods using value class types present in LC

Analysis API. Providers and Caches

  • KT-74090 Analysis API: Support dumb mode (restricted analysis)
  • KT-74943 Analysis API: Replace KotlinGlobalModificationService with simpler global modification event publishing and listener-based modification trackers
  • KT-70518 K2: Analysis API: Access indices outside of ConcurrentMap computation in symbol providers
  • KT-62115 Analysis API: Package providers are not cached per search scope
  • KT-74302 Analysis API: LLFirProvider should disregard self-declarations in getFirClassifierBy*
  • KT-74463 Analysis API: LLNativeForwardDeclarationsSymbolProvider queries its cache even when the ClassId cannot represent a native forward declaration
  • KT-67868 Analysis API: Improve the architecture of LLFirKotlinSymbolProviders

Analysis API. Standalone

  • KT-72810 withMultiplatformLightClassSupport is inconvenient in Standalone

Analysis API. Stubs and Decompilation

  • KT-68484 K2 IDE, Analysis API: "We should be able to find a symbol for function" for getting KaType of Iterable<T>.map(transform: (T) -> R) parameter in J2K

Analysis API. Surface

New Features

  • KT-74475 Add isInline for KaPropertySymbol
  • KT-75063 KaScopeContext: support context parameters

Performance Improvements

  • KT-70165 Introduce PSI-based KaSymbols for K2

Fixes

  • KT-72482 "KotlinIllegalArgumentExceptionWithAttachments: Expected all candidates to have same callableId but some of them but was different" on trying to add the import
  • KT-75894 Cannot build KaFirJavaFieldSymbol for FirFieldImpl
  • KT-75586 KaFirPropertyGetterSymbol#isInline and KaFirPropertySetterSymbol#isInline is incorrect for accessors with explicit modifier
  • KT-58572 Analysis API: Enforcing STATUS resolve in 'KtFirNamedClassOrObjectSymbol.visibility' may cause lazy resolve contract violation
  • KT-72730 K2: "Unexpected owner function: KtNamedFunction" on vararg val parameter in function
  • KT-75574 Recognize injected code fragment copies
  • KT-75573 Recognize physical file copies as dangling files
  • KT-74801 Analysis API: Publish/subscribe to modification events with a single message bus topic
  • KT-73290 Analysis API: Improve the architecture of content scopes and resolution scopes
  • KT-68901 Constructor delegation call receiver missing in fir implementation
  • KT-75115 Analysis API: The JavaModuleResolver compiler class is leaked to Analysis API platform implementations
  • KT-75123 K2. KaFirNamedFunctionSymbol should contain a receiver
  • KT-72639 Support context parameter API
  • KT-73112 AA: FirExpression.toKtReceiverValue should handle context receivers properly
  • KT-74905 Cannot find context receiver in FIR declaration
  • KT-74563 createPointer is overloaded not for all implementations
  • KT-73722 Analysis API: Automatically check that the API surface is fully documented
  • KT-65065 Provide KtTypeReference#getShortTypeText()

Backend. Wasm

  • KT-59032 Support instantiation of annotation cl...
Read more

Kotlin 2.1.20

20 Mar 11:05

Choose a tag to compare

Changelog

Analysis API

Fixes

  • KT-68198 Analysis API: Support application service registration in plugin XMLs
  • KT-57733 Analysis API: Use optimized ModuleWithDependenciesScopes in combined symbol providers
  • KT-73156 AA: type retrieval for erroneous typealias crashes
  • KT-71907 K2 debugger evaluator failed when cannot resolve unrelated annotation
  • KT-69128 K2 IDE: "Unresolved reference in KDoc" reports existing Java class in reference to its own nested class
  • KT-71613 KaFirPsiJavaTypeParameterSymbol cannot be cast to KaFirTypeParameterSymbol
  • KT-71741 K2 IDE. Classifier was found in KtFile but was not found in FirFile in libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts in kotlin.git and broken analysis
  • KT-71942 Need to rethrow Intellij Platform exceptions, like ProcessCanceledException
  • KT-70949 Analysis API: "containingDeclaration" does not work on nested Java classes in K2 implementation
  • KT-69736 K2 IDE: False positive resolution from KDoc for value
  • KT-69047 Analysis API: Unresolved KDoc reference to extensions with the same name
  • KT-70815 Analysis API: Implement stop-the-world session invalidation
  • KT-69630 KAPT User project builds with KAPT4 enabled fail with Metaspace overflow

Analysis API. Code Compilation

  • KT-71263 K2 evaluator: Error in evaluating self property with extension receiver

Analysis API. FIR

Performance Improvements

  • KT-72025 FileStructureElement: reduce redundant resolve
  • KT-74012 Redundant FirAbstractBodyResolveTransformerDispatcher.<init> CPU consumption
  • KT-73900 ContextCollectorVisitor#computeContext may spend significant time on createSnapshot
  • KT-73665 FirElementFinder is inefficient in large files
  • KT-73330 Remove bodies from functions without contracts after the CONTRACTS phase
  • KT-73017 Analysis API: FirReferenceResolveHelper.getSymbolsByResolvedImport searches for classes even when the selected FqName is a known package

Fixes

  • KT-72308 getOrBuildFir returns null for this expression for plusAssign operator
  • KT-72660 ISE: Recursive update at org.jetbrains.kotlin.analysis.low.level.api.fir.caches.FirCaffeineCache.getValue
  • KT-74097 ISE: Recursive update at org.jetbrains.kotlin.analysis.low.level.api.fir.caches.FirCaffeineCache.getValue
  • KT-74098 ISE: Recursive update at org.jetbrains.kotlin.analysis.low.level.api.fir.caches.FirCaffeineCache.getValue
  • KT-72148 K2: KISEWA: Expected FirResolvedArgumentList for FirAnnotationCallImpl of FirValueParameterImpl(DataClassMember) but FirArgumentListImpl found
  • KT-73079 K2: Internal compiler error when conflicting type aliases are present
  • KT-73456 Expected FirResolvedContractDescription but FirRawContractDescriptionImpl found for FirSimpleFunctionImpl
  • KT-73259 Expected FirResolvedContractDescription but FirLegacyRawContractDescriptionImpl found for FirSimpleFunctionImpl
  • KT-72740 FirDanglingModifierList: lazyResolveToPhase(STATUS) cannot be called from a transformer with a phase STATUS
  • KT-66132 K2: FirRegularClass expected, but FirFileImpl found | Containing declaration is not found
  • KT-72196 K2. KMP. IllegalStateException: expect-actual matching is only possible for code with sources
  • KT-72652 FirProvider#getContainingClass should support FirDanglingModifierSymbol
  • KT-73105 Lazy resolve contract violation (BODY_RESOLVE from BODY_RESOLVE)
  • KT-66261 K2: Analysis API: "FirDeclaration was not found for class org.jetbrains.kotlin.psi.KtProperty, fir is null" with MULTIPLE_LABELS_ARE_FORBIDDEN K2 error
  • KT-72315 K2. KIWA on usage of always-true OR in guard condition
  • KT-65707 K2 IDE: unresolved calls of callables imported with typealias as qualifier
  • KT-61516 K2: Provide an LL FIR implementation for getContainingClassSymbol (in FirHelpers)
  • KT-72853 Expected FirResolvedArgumentList for FirAnnotationCallImpl of FirContextReceiverImpl(Source) but FirArgumentListImpl found
  • KT-64215 K2: do not resolve type annotations of receiver if it is used as an implicit return type
  • KT-64248 K2: do not resolve type annotations of context receiver if it is used as an implicit return type
  • KT-72821 Add assertion to diagnostic tests to check that all declarations have BODY_RESOLVE phase at the end
  • KT-64056 K2: K2: FirLazyBodiesCalculator shouldn't calculate annotation arguments on type phase
  • KT-71651 K2 IDE: False positive NON_LOCAL_SUSPENSION_POINT in suspend function call
  • KT-72164 K2. IllegalArgumentException when pre and post increment are used simultaneously in assignment
  • KT-71174 Illegal scope used
  • KT-72407 FirImplementationByDelegationWithDifferentGenericSignatureChecker: FirLazyExpression should be calculated before accessing
  • KT-72228 K2: Reformat doesn't work in project with Kotlin 2.0.21
  • KT-69671 TYPES phase contract violation through JavaSymbolProvider
  • KT-71348 K2: KotlinIllegalStateExceptionWithAttachments: 'By now the annotations argument mapping should have been resolved' during code inspection
  • KT-72024 FirClassVarianceChecker: Expected FirResolvedTypeRef with ConeKotlinType but was FirImplicitTypeRefImplWithoutSource
  • KT-71746 K2 IDE. ISE: Zero or multiple overrides found for descriptor in FirRegularClassSymbol serializing/ExternalSerializer and red code on @Serializer(forClass) ` usage

Analysis API. Infrastructure

  • KT-72922 KotlinFakeClsStubsCache project leakage
  • KT-71988 Improve scripts test coverage by LL FIR
  • KT-64687 K2: Analysis API: migrate AbstractFirLibraryModuleDeclarationResolveTest to kotlin repo

Analysis API. Light Classes

  • KT-73492 K2. FP error in Java file when using @JvmSuppressWildcards annotation without arguments
  • KT-66763 K2: Get rid of context receivers in Analysis API and LL API
  • KT-71781 SLC: migrate SLC from KotlinModificationTrackerService to KotlinModificationTrackerFactory
  • KT-67963 K2: PsiInvalidElementAccessException on redeclaration of class with constructor
  • KT-71407 K2: Do not report @JvmField default value as PsiField initializer in K2
  • KT-72078 K2 PSI change for constructor parameter with value class type

Analysis API. Providers and Caches

  • KT-69247 Analysis API: Invalidate sessions after builtins modification events
  • KT-72704 ISE: No 'org.jetbrains.kotlin.fir.scopes.impl.FirDelegatedMembersFilter'(53) in array owner: LLFirBuiltinsAndCloneableSession for Builtins for JS/wasm-js (JS)
  • KT-67148 Analysis API: Introduce a weak reference cache for the original KtSymbol in KtSymbolPointer
  • KT-73395 Analysis API: JavaElementPsiSourceWithSmartPointer contains strong references to PSI
  • [KT-72390](https://youtrack.jetbrains.com/issue/KT-...
Read more

Kotlin 2.1.20-RC3

14 Mar 14:48

Choose a tag to compare

Kotlin 2.1.20-RC3 Pre-release
Pre-release

Changelog

Compiler

  • KT-75578 K2: False negative [SUPER_CALL_WITH_DEFAULT_PARAMETERS] when calling the upper-class implementation of a method with the default value argument
  • KT-75965 The iOS app did not run successfully in Release mode

Native

  • KT-75807 CMP caching fails for iOS with Kotlin 2.1.20-RC2

Kotlin 2.1.20-RC2

06 Mar 14:58

Choose a tag to compare

Kotlin 2.1.20-RC2 Pre-release
Pre-release

Changelog

Compiler

  • KT-75649 K2: NPE on assigning platform type value to non-nullable lateinit var
  • KT-75483 Native: redundant unboxing generated with smart cast
  • KT-75526 Regression in K2 scripting: local name doesn't shadow one from the implicit receiver
  • KT-75444 Contradictions in the constraint system are ignored in case of multiple constraints from forking points
  • KT-75111 False negative "This declaration needs opt-in" for usage of enum entry with OptIn marker in another module
  • KT-74764 Native: merge init nodes generated within the same LLVM module for the same klib

Compose compiler

  • CMP-7571 1.8.0-alpha03 incompatible with Compose based on k1
  • b/397855145 Fix "Unknown file" error in target annotation inference

JavaScript

  • KT-75606 KJS: java.lang.AssertionError: Different declarations with the same signatures were detected
  • KT-72437 KJS. Invalid copy method for inherited JSO with type parameters

Klibs

  • KT-75393 Non-JVM artifacts from Kotlin 2.1.20-RC fail on 2.1.x releases due to IMPLICIT_ARGUMENT

Native

  • KT-70202 Xcode 16 Linker fails with SIGBUS

Tools. Compiler Plugins

  • KT-73897 PowerAssert: Implicit argument detection is brittle in a number of cases

Tools. Gradle

  • KT-73842 Gradle: AGP failing tests with "Failed to calculate the value of property 'generalConfigurationMetrics'" using KGP
  • KT-74394 KGP + isolated projects: "Something has been appended to this collector already"
  • KT-75262 Gradle test-fixtures plugin apply order breaks the project
  • KT-75277 FUS statistics: 'java.lang.IllegalStateException: The value for this property cannot be changed any further' exception is thrown during project import

Tools. Gradle. JS

  • KT-75485 KJS: "Module not found: Error: Can't resolve 'style-loader' and 'css-loader'" in 2.1.20-RC

Kotlin 2.1.20-RC

19 Feb 14:18

Choose a tag to compare

Kotlin 2.1.20-RC Pre-release
Pre-release

Changelog

Compiler

  • KT-74929 False positive TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER if it is used with T&Any
  • KT-74227 K2: "Cannot infer type for this parameter. Please specify it explicitly" caused by lambda in another lambda with a parameterized function type
  • KT-74474 K2: Report more precise diagnostic when last expression of non-unit lambda is a statement
  • KT-74478 K2: False negative RETURN TYPE_MISMATCH if the last statement of a lambda is indexed assignment
  • KT-74203 K2: False negative NO_ELSE_IN_WHEN of a generic type with star projection <*> bounded by a sealed hierarchy

Compose compiler

  • b/377499888 Allow restarting overridden functions in a final class
  • b/390151896 Fix default arguments with varargs in @Composable functions
  • b/388030459 Prevent usage of transitive captures in lambda memoization
  • b/310004740 Check vararg parameter length in skipping logic
  • b/393400768 Use -1 for .changed call if nullable enum parameter is null

Native

  • KT-74377 Kotlin Native: release executable crashes with error 139

Tools. Compiler Plugins

  • KT-74102 "Lambda cannot be cast to class kotlin.jvm.functions.Function0" in 2.1.20-Beta1 with Compose
  • KT-75159 Compose: Missing 'FunctionKeyMeta' annotation on lamdas declared in non-composable function

Tools. Gradle

  • KT-74997 Unexpected KGP warnings about kotlin scripting plugin
  • KT-75026 Corrupted NonSynchronizedMetricsContainer in parallel Gradle build
  • KT-74846 Gradle Configuration Cache miss on second build with 2.1.20-Beta2
  • KT-74462 Flaky Kotlin Gradle Plugin Tests: IsInIdeaEnvironmentValueSource$Inject not found

Tools. Gradle. JS

  • KT-74869 KJS: jsBrowserProductionWebpack does not minify output with 2.1.20-Beta2
  • KT-74859 Gradle configuration cache issues related to RootPackageJsonTask

Tools. Gradle. Multiplatform

  • KT-74669 Executable binaries for JVM: a jar generated by jvmJar task isn't added to the build/install/testAppName/lib directory
  • KT-66542 Gradle: JVM target with withJava() produces a deprecation warning
  • KT-37964 Gradle application/distribution plugin does not copy and name jar files correctly when using installDist task for multiplatform project
  • KT-30878 It's impossible to have .java sources in a Multiplatform Gradle Project with Android, because android() and jvm { withJava() } targets can not be applied to one and the same Gradle Project
  • KT-66962 Kapt with Kotlin Multiplatform: Cannot query the value of this provider because it has no value available
  • KT-71074 Optimize Granular Metadata Dependencies Transformation for Import after adding support for Project Isolation
  • KT-74727 Dependency resolve from a single target KMP module to another kmp module fails on non-found PSM
  • KT-74832 Relax JVM target validation diagnostic in KMP/Jvm projects

Tools. Gradle. Native

  • KT-74403 :commonizeNativeDistribution fails when configured native targets cannot be built on machine

Tools. Kapt

  • KT-75202 K2 kapt: mapped type class literal is converted incorrectly

Kotlin 2.1.20-Beta2

29 Jan 13:35

Choose a tag to compare

Kotlin 2.1.20-Beta2 Pre-release
Pre-release

Changelog

Analysis API

  • KT-73156 AA: type retrieval for erroneous typealias crashes
  • KT-68198 Analysis API: Support application service registration in plugin XMLs
  • KT-69630 KAPT User project builds with KAPT4 enabled fail with Metaspace overflow

Analysis API. FIR

Performance Improvements

  • KT-74012 Redundant FirAbstractBodyResolveTransformerDispatcher.<init> CPU consumption
  • KT-73900 ContextCollectorVisitor#computeContext may spend significant time on createSnapshot
  • KT-73665 FirElementFinder is inefficient in large files
  • KT-73330 Remove bodies from functions without contracts after the CONTRACTS phase

Fixes

  • KT-74097 ISE: Recursive update at org.jetbrains.kotlin.analysis.low.level.api.fir.caches.FirCaffeineCache.getValue
  • KT-74098 ISE: Recursive update at org.jetbrains.kotlin.analysis.low.level.api.fir.caches.FirCaffeineCache.getValue
  • KT-73079 K2: Internal compiler error when conflicting type aliases are present
  • KT-73456 Expected FirResolvedContractDescription but FirRawContractDescriptionImpl found for FirSimpleFunctionImpl
  • KT-73259 Expected FirResolvedContractDescription but FirLegacyRawContractDescriptionImpl found for FirSimpleFunctionImpl
  • KT-72740 FirDanglingModifierList: lazyResolveToPhase(STATUS) cannot be called from a transformer with a phase STATUS
  • KT-69671 TYPES phase contract violation through JavaSymbolProvider

Analysis API. Light Classes

  • KT-73492 K2. FP error in Java file when using @JvmSuppressWildcards annotation without arguments

Analysis API. Providers and Caches

  • KT-69247 Analysis API: Invalidate sessions after builtins modification events
  • KT-72704 ISE: No 'org.jetbrains.kotlin.fir.scopes.impl.FirDelegatedMembersFilter'(53) in array owner: LLFirBuiltinsAndCloneableSession for Builtins for JS/wasm-js (JS)
  • KT-67148 Analysis API: Introduce a weak reference cache for the original KtSymbol in KtSymbolPointer

Analysis API. Standalone

  • KT-73776 Analysis API Standalone: Application services are missing registrations in tests and Dokka

Analysis API. Surface

New Features

  • KT-73414 Analysis API: Support typealiased constructors in KaConstructorSymbol

Performance Improvements

  • KT-74112 UI freeze: AnyThreadWriteThreadingSupport.getWritePermit
  • KT-73942 Extend resolveToSymbols cache to all references
  • KT-73622 Cache resolveToSymbols result
  • KT-72684 Drop explicit resolve from KaFirJavaInteroperabilityComponent#asPsiTypeElement

Fixes

  • KT-70114 K2: Analysis API: do not lazy resolve declarations without deprecation to get it deprecation
  • KT-73406 [Analysis API] Allow extending KaModule resolution scope for all KaModules
  • KT-65850 Cover Analysis API with KDocs
  • KT-73662 KotlinIllegalArgumentExceptionWithAttachments: Expected FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl
  • KT-70108 Analysis API: "KaScopeProvider.scopeContext" provides scopes from implicit companion objects with inaccessible classifiers
  • KT-68954 Remove JAR publications with old artifact names (high-level-api family)
  • KT-70134 Analysis API: Port API documentation from the guide to KDoc
  • KT-72973 Introduce KaSymbolOrigin.TYPE_ALIAS_CONSTRUCTOR

Backend. Wasm

  • KT-71645 [Wasm] Check wasm test runner for groupByPackage=true case
  • KT-73907 Wasm: Duplication of files in browser distribution
  • KT-71868 K/Wasm: support generating debug information in DWARF format

Compiler

New Features

  • KT-74049 Introduce special override rule to allow overriding T! with T & Any
  • KT-61447 Support context receivers overloads in Kotlin multiplatform
  • KT-73255 Change defaulting rule for annotations
  • KT-73256 Implement all meta-target for annotations

Performance Improvements

  • KT-73434 Slow / infinite compile involving ConeInferenceContext
  • KT-73328 Do not spill this to a local variable in coroutines
  • KT-69995 K2: Slow compilation when star projecting mutually recursive bounds from java
  • KT-73687 Inefficient KtCommonFile#getFileAnnotationList

Fixes

  • KT-70789 CLI error "mixing legacy and modern plugin arguments is prohibited" on using -Xcompiler-plugin unless default scripting plugin is disabled
  • KT-74024 K2: Prohibit declaring local type aliases
  • KT-73858 Compose / iOS: NullPointerException on building
  • KT-73864 [Native] Decouple IrType.computePrimitiveBinaryTypeOrNull from backend.native
  • KT-73122 Move the upgrade references lowering to be first one in Native pipeline
  • KT-73608 K2: "Initializer type mismatch" with map and typealias to object
  • KT-74104 Native: SynchronizedLazyImpl produces NPE on 2.1.20-Beta1 on mingwX64
  • KT-74147 K2: False negative INCONSISTENT_TYPE_PARAMETER_VALUES
  • KT-73454 K2: Fix type parameters mapping for typealiases with inner RHS
  • KT-73043 K2 Compiler does not allow references to inner constructors with typealiases
  • KT-74040 Compilation of inner class usage does not check the visibility of parent class during compilation in different rounds
  • KT-74195 Fully qualified names in error messages make them complicated
  • KT-74221 Make FirSupertypesChecker a platform checker
  • KT-72962 Consider enabling ConsiderForkPointsWhenCheckingContradictions LF earlier
  • KT-74242 Freeze on runCatching call in finally block inside SAM conversion
  • KT-73903 Design 'replaceWith' / 'test-only' kinds for the 'LanguageFeature' class
  • KT-29222 FIR: consider folding binary expression chains
  • KT-73760 Cannot implement two Java interfaces with @NotNull-annotated type argument and Kotlin's plain (nullable) type parameter
  • KT-58933 Applying suggested signature from WRONG_NULLABILITY_FOR_JAVA_OVERRIDE leads to red code
  • KT-74107 K2: Calling type alias constructor with inner RHS in static scope causes runtime crash
  • KT-74244 Context parameters: context isn't checked for expect/actual property declaration
  • KT-74276 Update ASM from 9.0 to 9.6.1
  • KT-72295 K2: Generated accessors for delegated property should have property source
  • KT-73150 Investigate/test approximation of context parameter type in completion
  • KT-73862 [Native] Decouple NativePreSerializationLoweringContext from backend.native
  • KT-72677 K2 IDE / Kotlin Debugger: β€œCouldn't find virtual file for p1/MainKt$foo$iface$1” on evaluating inline function from another module
  • KT-72672 K2 ...
Read more

Kotlin 2.1.10

27 Jan 10:21

Choose a tag to compare

Changelog

Compiler

  • KT-73858 Compose / iOS: NullPointerException on building
  • KT-73454 K2: Fix type parameters mapping for typealiases with inner RHS
  • KT-73043 K2 Compiler does not allow references to inner constructors with typealiases
  • KT-74040 Compilation of inner class usage does not check the visibility of parent class during compilation in different rounds
  • KT-73339 K2: "VerifyError: Bad type on operand stack" because of missing implicit cast on generic field receiver with star projection
  • KT-72585 K2: Compilation failure when upgrading to Kotlin 2.0.20+: Cannot replace top-level type with star projection: S
  • KT-73399 compile-time JVM codegen failure on a KProperty argument of a KSuspendFunction parameter
  • KT-72725 KMP: Unsupported actualization of inherited java field in expect class
  • KT-73153 K2: Standalone diagnostics on type arguments are not reported

Compose compiler

  • CMP-5680 Compose compiler: unexpected stability warnings for classes compiled with 2.0.10
  • b/381407900 Avoid adding Compose annotations on synthetic classes

IR. Inlining

  • KT-73981 [2.1.10] Suppress checkIncorrectCrossFileDeclarationAccess warning for Compose <class>$stable field access

JavaScript

  • KT-70778 Kotlin Js companion is undefined in production build
  • KT-73130 KJS: Missed break for do/while in generated JS code
  • KT-58797 Optimize the code generated for objects on JS and Wasm backends

Klibs

  • KT-70146 [KLIB Resolve] Don't fail on nonexistent transitive dependency
  • KT-73951 Workaround for "Partial linkage engine may not patch some discrepancies in IR when compiling Kotlin/Native static caches" in 2.1.10

Native

  • KT-73559 K/Native: AndroidNativeArm64 linking fails starting from Kotlin 2.1.0

Tools. CLI

  • KT-73967 JDK 25: "IllegalArgumentException: 25-ea" with EA builds

Tools. Daemon

  • KT-73311 "Unable to release compile session, maybe daemon is already down" flakiness

Tools. Gradle

  • KT-73728 'generatePomFileForMavenPublication' creates pom with dependencies with 'unspecified' version

Tools. Gradle. Multiplatform

  • KT-73620 KMP 2.1.0: Transitive dependency is broken when setting publication groupId

Tools. Gradle. Native

  • KT-73572 [Gradle] kotlin.native.cacheKind=none doesn't work anymore
  • KT-71419 Light bundle KGP IT run against a stable K/N version

Kotlin 2.1.10-RC2

20 Jan 14:44

Choose a tag to compare

Kotlin 2.1.10-RC2 Pre-release
Pre-release

Changelog

Compiler

  • KT-73858 Compose / iOS: NullPointerException on building
  • KT-74040 Compilation of inner class usage does not check the visibility of parent class during compilation in different rounds

Compose compiler

  • b/381407900 Avoid adding Compose annotations on synthetic classes
  • CMP-5680 Compose compiler: unexpected stability warnings for classes compiled with 2.0.10

Kotlin 2.1.10-RC

09 Jan 13:10

Choose a tag to compare

Kotlin 2.1.10-RC Pre-release
Pre-release

Changelog

Compiler

  • KT-73454 K2: Fix type parameters mapping for typealiases with inner RHS
  • KT-73043 K2 Compiler does not allow references to inner constructors with typealiases
  • KT-73339 K2: "VerifyError: Bad type on operand stack" because of missing implicit cast on generic field receiver with star projection
  • KT-72585 K2: Compilation failure when upgrading to Kotlin 2.0.20+: Cannot replace top-level type with star projection: S
  • KT-73399 compile-time JVM codegen failure on a KProperty argument of a KSuspendFunction parameter
  • KT-72725 KMP: Unsupported actualization of inherited java field in expect class
  • KT-73153 K2: Standalone diagnostics on type arguments are not reported

Compose compiler

  • CMP-5680 Compose compiler: unexpected stability warnings for classes compiled with 2.0.10

IR. Inlining

  • KT-73981 Cherry-pick the fix for KT-73482 to 2.1.10

JavaScript

  • KT-58797 Optimize the code generated for objects on JS and Wasm backends
  • KT-70778 Kotlin Js companion is undefined in production build
  • KT-73130 KJS: Missed break for do/while in generated JS code

Klibs

  • KT-73951 Workaround for "Partial linkage engine may not patch some discrepancies in IR when compiling Kotlin/Native static caches" in 2.1.10

Native

  • KT-73559 K/Native: AndroidNativeArm64 linking fails starting from Kotlin 2.1.0

Tools. CLI

  • KT-73967 JDK 25: "IllegalArgumentException: 25-ea" with EA builds

Tools. Daemon

  • KT-73311 "Unable to release compile session, maybe daemon is already down" flakiness

Tools. Gradle

  • KT-73728 'generatePomFileForMavenPublication' creates pom with dependencies with 'unspecified' version

Tools. Gradle. Multiplatform

  • KT-73620 KMP 2.1.0: Transitive dependency is broken when setting publication groupId

Tools. Gradle. Native

  • KT-73572 [Gradle] kotlin.native.cacheKind=none doesn't work anymore
  • KT-62826 Show a warning when KGP and K/N versions mismatch
  • KT-71419 Light bundle KGP IT run against a stable K/N version