Skip to content

Releases: JetBrains/kotlin

Kotlin 2.1.20-RC3

14 Mar 14:48
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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

Kotlin 2.1.20-Beta1

19 Dec 12:56
Compare
Choose a tag to compare
Kotlin 2.1.20-Beta1 Pre-release
Pre-release

Changelog

Analysis API

  • KT-71907 K2 debugger evaluator failed when cannot resolve unrelated annotation
  • KT-57733 Analysis API: Use optimized ModuleWithDependenciesScopes in combined symbol providers
  • 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

Analysis API. Code Compilation

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

Analysis API. FIR

Performance Improvements

  • KT-73017 Analysis API: FirReferenceResolveHelper.getSymbolsByResolvedImport searches for classes even when the selected FqName is a known package
  • KT-72025 FileStructureElement: reduce redundant resolve

Fixes

  • KT-72148 K2: KISEWA: Expected FirResolvedArgumentList for FirAnnotationCallImpl of FirValueParameterImpl(DataClassMember) but FirArgumentListImpl found
  • 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-72308 getOrBuildFir returns null for this expression for plusAssign operator
  • 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-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-73395 Analysis API: JavaElementPsiSourceWithSmartPointer contains strong references to PSI
  • KT-72390 Kotlin project full of red code
  • KT-72388 KaFirStopWorldCacheCleaner: Control-flow exceptions
  • KT-72644 "PSI has changed since creation" reason is misleading

Analysis API. Standalone

  • KT-70346 Analysis API Standalone: Remove the custom class loader option in Standalone session creation

Analysis API. Stubs and Decompilation

  • KT-69398 K2 IDE: SOE on editing top level private variable name
  • KT-72897 Analysis API: Smart PSI element pointers for KtEnumEntry stubs cannot be restored
  • KT-71565 KtClassOrObject should use isLocal from greenStub

Analysis API. Surface

New Features

  • KT-70301 Analysis API: 'KaSamConstructorSymbol' does not allow to find the constructed SAM type
  • KT-68236 Analysis API: add isExternal property for KtPropertySymbol
  • KT-68598 Analysis API: missed getClassLikeSymbolByClassId API

Performance Improvements

  • KT-60486 Analysis API: optimize KaExpressionTypeProvider.returnType for simple cases

Fixes

  • KT-72099 Analysis API: implement an API to retrieve default imports
  • KT-70356 analyzeCopy with IGNORE_SELF cannot find private members
  • KT-66783 Analysis API: KtFirSymbolProvider creates symbols when given PSI from unrelated modules
  • KT-72937 Migrate KaFirReceiverParameterSymbol to KaFirSymbol/KaFirKtBasedSymbol
  • KT-70243 K2 IDE: PsiMethod.callableSymbol returns null for constructor
  • KT-66608 Support OperatorFunctionChecks#isOperator in AA
  • KT-73068 Analysis API: A KaFirJavaFieldSymbol for a static Java field is open instead of final
  • KT-73055 Get rid of the deprecated Analysis API API
  • KT-65065 Provide KtTypeReference#getShortTypeText()
  • KT-63800 AA: this reference shortener doesn't simplify label
  • KT-72793 Analysis API: 'expressionType' returns raw type for typealiased constructors calls
  • [KT-72658...
Read more

Kotlin 2.1.0

27 Nov 14:17
Compare
Choose a tag to compare

Changelog

Analysis API

New Features

  • KT-68603 KotlinDirectInheritorsProvider: add an option to ignore non-kotlin results

Performance Improvements

  • KT-70757 Performance problem in KaFirVisibilityChecker for KaFirPsiJavaClassSymbol

Fixes

  • KT-70437 Class reference is not resolvable
  • KT-57733 Analysis API: Use optimized ModuleWithDependenciesScopes in combined symbol providers
  • KT-72389 K2: False positive "Redundant 'protected' modifier" for protected property inside protected constructor from private or internal class
  • KT-69190 K2: False-positive "redundant private modifier"
  • KT-64984 Analysis API: Support Wasm target
  • KT-70375 K2: NPE at org.jetbrains.kotlin.analysis.api.fir.symbols.KaFirNamedClassSymbolBase.createPointer
  • KT-71259 K2 evaluator: Invalid smart cast info collecting for Code Fragments
  • KT-69360 Lack of implicit receiver for the last statement under lambda in scripts
  • KT-70890 Analysis API: Experiment with weak references to LL FIR/analysis sessions in session caches
  • KT-70657 Analysis API: Inner types from classes with generics are incorrectly represented by the compiled jars
  • KT-71055 Suspend calls inside 'analyze()' break the block guarantees
  • KT-70815 Analysis API: Implement stop-the-world session invalidation
  • KT-69819 K2 IDE: LHS type in callable references is unresolved when it has type arguments and is qualified
  • KT-68761 Analysis API: Experiment with limited-size cache in KaFirSessionProvider
  • KT-70384 Analysis API Standalone: The same class in the same two renamed jars is unresolved
  • KT-71067 Exceptions from references cancel Find Usages
  • KT-69535 Redesign 'containingSymbol'
  • KT-71025 K2 IDE: Scopes in "importingScopeContext" have reversed ordering and "indexInTower" values
  • KT-67483 K2 IDE: Serializable plugin causes infinite resolve recursion when there is a star import from a class with annotation call
  • KT-69416 K2 IDE / Completion: “No classifier found” on simple value creating
  • KT-70257 CCE: class kotlin.UInt cannot be cast to class java.lang.Number
  • KT-70376 K2 IDE / Kotlin Debugger: IAE “Only componentN functions should be cached this way, but got: toString” on evaluating toString() method for value class
  • KT-70264 AA: service registration via XML fails with AbstractMethodError in Lint CLI
  • KT-69950 Analysis API: Introduce isSubtypeOf(ClassId)
  • KT-68625 K2: “lazyResolveToPhase(STATUS) cannot be called from a transformer with a phase STATUS.”
  • KT-67665 K2: contract violation for value class with a constructor parameter with an implicit type
  • KT-67009 Analysis API: Add abbreviated type tests for type aliases from source modules
  • KT-69977 KaFirFunctionalType#getAbbreviation is always null
  • KT-68341 Analysis API: Expanded function types from libraries don't have an abbreviated type
  • KT-68857 Analysis API: Refactor annotations
  • KT-70386 Do not filter out overloads from different libraries in dangling files
  • KT-65552 K2: CANNOT_CHECK_FOR_ERASED in KtTypeCodeFragment
  • KT-65803 K2: Analysis API: KtFirTypeProvider#getSubstitutedSuperTypes throws an exception in the case of "Wrong number of type arguments"
  • KT-68896 Support VirtualFile binary dependency inputs to Analysis API modules
  • KT-69395 K2 IDE: incorrect overload selection from binary dependencies in a shared native source set
  • KT-68573 ISE: "Unexpected constant value (kotlin/annotation/AnnotationTarget, CLASS)" at Kt1DescUtilsKt.toKtConstantValue()
  • KT-69576 Analysis API: FIR implementation of "isImplicitReferenceToCompanion" returns false for companion references in implicit invoke operator calls
  • KT-69568 Analysis API: FIR implementation of "isImplicitReferenceToCompanion" returns true for non-companion references in qualified calls
  • KT-69436 Analysis API Platform: Encapsulate LLFirDeclarationModificationService as an engine service
  • KT-63004 K2: Analysis API: Design API for querying declarations generated by compiler plugins (similar to indices)
  • KT-69452 AA FIR: wrong source PSI after compile-time evaluation
  • KT-69598 AA: definitely not-null type at receiver position should be wrapped in parenthesis
  • KT-60484 Analysis API: add support for KtType pointers similar to KtSymbolPointer
  • KT-68884 Analysis API: Rename/deprecate/remove declarations as part of Stabilization
  • KT-69453 AA FIR: miss to handle expected type of lambda with explicit label
  • KT-69533 Protect implementation parts of Analysis API with opt-in annotations

Analysis API. FIR

Performance Improvements

  • KT-71566 FirElementBuilder#getFirForNonKtFileElement should iterate a Psi file over and over
  • KT-71224 Analysis API: FirElementFinder.collectDesignationPath relies on naive iteration through FIR files

Fixes

  • KT-70327 Analysis API: Batch inspection causes deadlock in ValueWithPostCompute
  • KT-69070 Analysis API: Querying declared member scope for Java symbols results in exception in some use cases
  • KT-68268 LLSealedInheritorsProvider: reduce scope to kotlin files
  • KT-69671 TYPES phase contract violation through JavaSymbolProvider
  • KT-70624 Declaration symbols from code fragments are treated as not local
  • KT-70662 NPE: FirLazyBodiesCalculatorKt.calculateLazyBodyForProperty
  • KT-70859 Do not fail highlighting due to resolution problems
  • KT-70474 FirLazyResolveContractViolationException from JavaSymbolProvider
  • KT-70323 FirLazyResolveContractViolationException: lazyResolveToPhase(TYPES) cannot be called from a transformer with a phase TYPES
  • KT-71567 LLFirCompilerRequiredAnnotationsTargetResolver should calculate annotation arguments on demand
  • KT-71584 getNonLocalContainingOrThisDeclaration treats KtParameter from functional type as non-local

Analysis API. Light Classes

Performance Improvements

  • KT-69998 Drop redundant cache from ClassInnerStuffCache

Fixes

  • KT-69833 Support value classes
  • KT-71693 Wrong name mangling for JvmField class property and companion property clash
  • KT-71469 KtLightClassForDecompiledDeclaration: missed kotlinOrigin
  • KT-70710 Provide light classes for KMP modules in Android Lint
  • KT-70548 SLC: text of class object access expression is not the same as raw text
  • KT-70572 SLC: missing isInheritor implementation for type parameter
  • KT-70491 SLC: inconsistent source PSI of no-arg constructor for all default values
  • [KT-70458](https://youtrack.jetbrains.co...
Read more

Kotlin 2.1.0-RC2

18 Nov 14:12
Compare
Choose a tag to compare
Kotlin 2.1.0-RC2 Pre-release
Pre-release

Changelog

Compiler

  • KT-72345 K2: Method 'get' without @Override annotation not called
  • KT-73065 CCE with context receivers
  • KT-72996 false-positive unresolved reference error on an overloaded callable reference in a lambda return position on the left-hand size of an elvis operator

Compose compiler

  • CMP-6926 iOS compilation failure: Unresolved reference 'copy'

IR. Inlining

  • KT-72884 Internal error in body lowering: IllegalStateException: Can't inline given reference, it should've been lowered

JavaScript

  • KT-70533 KJS: changed string concatenation behavior in 2.0
  • KT-14013 JS toString produces different result for nullable/non-nullable ref to the same array
  • KT-43567 KJS: toString() method and string interpolation of variable produce different code
  • KT-72732 KJS / ES6: "SyntaxError: 'super' keyword unexpected here" with enabled -Xir-generate-inline-anonymous-functions and disabled arrow functions

Klibs

  • KT-72965 Ignore subclassOptInRequired constructor warning

Tools. Compiler Plugins

  • KT-72804 Regression in Kotlin 2.1.0: compilation fails when building iOS
  • KT-72824 Kotlin power-assert plugin StringIndexOutOfBoundsException

Tools. Gradle

  • KT-47897 Official Kotlin Gradle plugin api
  • KT-58858 Add KDoc documentation for Kotlin Gradle plugin API
  • KT-73076 Kotlin Gradle Plugin API Reference: adjust settings
  • KT-70543 Gradle: create migration guide for those who are using Kotlin compiler classes indirectly available in buildscripts