Skip to content

Releases: JetBrains/kotlin

Kotlin 2.4.0-Beta2

22 Apr 09:52

Choose a tag to compare

Kotlin 2.4.0-Beta2 Pre-release
Pre-release

Changelog

Analysis API

  • KT-65683 Analysis API: Dangling file session creation causes a computeIfAbsent contract violation

Analysis API. FIR

  • KT-70896 AA: False positive deprecation warning with override of built-in method in JDK mapped class
  • KT-84625 Analysis API: collectDesignationPath fails for nested classes inside plugin-generated top-level classes

Analysis API. Infrastructure

  • KT-84913 Extract compiler classes used by the PSI & Analysis API to a separate module
  • KT-64986 Analysis API: Implement Analysis API tests for different KMP Platforms
  • KT-80379 Extract per-module test generators for AA tests

Analysis API. PSI

  • KT-84715 removeModifier doesn't delete whitespaces around the removed modifier
  • KT-84564 KtEnumEntry.delete deletes semicolon
  • KT-84781 Use computed properties in KotlinElementTypeProviderImpl

Analysis API. Stubs and Decompilation

  • KT-85371 StackOverflowError from LLKotlinStubBasedLibrarySymbolProvider and StubBasedClassDeserialization
  • KT-83935 Support KDoc loading in decompiled stubs

Analysis API. Surface

  • KT-82519 Automatically recognize the appropriate analysis mode for in-memory file copies based on their content
  • KT-85239 Streaming version of collectDiagnostics()
  • KT-83921 Extend KaKDocProvider to read Kdoc from KLIB metadata
  • KT-77426 KaFirCompilerFacility uses an arbitrary JVM counterpart for common sources
  • KT-84737 KaCallableSymbol#directlyOverriddenSymbols doesn't work for java overrides of kotlin properties
  • KT-84621 Migrate symbol tests to ManagedTest properly
  • KT-80575 KaFirJavaInteroperabilityComponent#getJavaGetterName should not throw exception on incomplete code

Backend. Wasm

  • KT-76205 K/Wasm: stabilize and turn on incremental compilation by default
  • KT-83728 [Wasm] Invalid Ir type while suspend call with blocked if null comprehansion
  • KT-81637 K/JS/Wasm interop: Inconsistent behavior of is/as operations for JsReference<C> and C

Compiler

New Features

  • KT-84484 Companion Extensions Analysis & Resolution
  • KT-84298 K2: Generate IR for Companion Blocks & Extensions
  • KT-84292 Enforce Companion Blocks & Extensions Language Feature during Resolution
  • KT-84291 Companion Blocks & Extensions Checkers
  • KT-84290 Callable References to Companion Block Declarations & Extensions
  • KT-84287 Build Raw FIR for Companion Blocks & Extensions
  • KT-73256 Implement all meta-target for annotations
  • KT-84319 Add JVM target bytecode version 26
  • KT-84297 Serialize & Deserialize Companion Block Declarations & Extensions to/from Metadata
  • KT-84199 Implement DontMakeExplicitNullableJavaTypeArgumentsFlexible feature

Fixes

  • KT-80489 Collection literals: experimental version (Frontend)
  • KT-84566 Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler
  • KT-85358 Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed
  • KT-84931 Incorrect type nullability in SAM super type in anonymous class-based SAM conversion
  • KT-83920 False positive "modifier 'value' is not applicable to 'local variable'" with soft keyword in positional destructuring (square bracket) declaration
  • KT-85626 @JvmRecord in commonMain breaks compileCommonMainKotlinMetadata with "Cannot access 'java.lang.Record'"
  • KT-52673 Don't report deprecation warning/error on imports
  • KT-84991 Improve Argument type mismatch diagnostics
  • KT-82216 Sanitize '.kotlin_module' filename
  • KT-84678 K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target
  • KT-77726 Move FirUnusedExpressionChecker to the default checkers list
  • KT-85354 checkPsiTypeConsistency: add psi text attachments
  • KT-85479 Improve diagnostic messages for upper bound violations
  • KT-84585 Upper bound violated warning for expansion of type alias in LHS
  • KT-84924 Native: stdlib-cache.lock used by mulitple processes
  • KT-85244 False positive DUPLICATE_BRANCH_CONDITION_IN_WHEN with guard condition
  • KT-78432 No-arg constructor should be generated for regular classes with a value class parameter in case of JvmExposeBoxed
  • KT-85487 Investigate why WrapContinuationForTailCallFunctions does not work in Android Test
  • KT-59633 K2: Implement running AndroidRunner tests with FIR
  • KT-85392 Native: concurrency issues in per-file caches
  • KT-76237 Store File-level annotations in KLIB metadata separately
  • KT-85162 Introduce diagnostics to refine numeric types casting
  • KT-80060 False positive REDUNDANT_CALL_OF_CONVERSION_METHOD in case of overloads
  • KT-85289 False-positive smartcast from == with type parameter based variable
  • KT-83890 return-value-checker: false positive "Unused return value of 'context'" on kotlin.context() functions
  • KT-84106 False negative "NON_EXHAUSTIVE_WHEN": "NoWhenBranchMatchedException" at runtime with sealed and platform type
  • KT-85005 Consider all: target in the checker of repeatable annotations
  • KT-85210 Enabling -XXLanguage:+IntrinsicConstEvaluation breaks highlighting on some broken code
  • KT-85217 Rework implementation supporting simple-to-suspend function conversion
  • KT-85036 Introduce a proper handling of optional expectation annotations in platform checkers during metadata compilation
  • KT-85086 False-negative JVM_EXPOSE_BOXED_CANNOT_BE_THE_SAME
  • KT-84082 [OPT_IN_USAGE_ERROR] duplicates for destructuring declaration
  • KT-84732 Collection literals: "Expected FirCollectionLiteralImpl to be resolved" in RHS of equality operator
  • KT-84841 Collection literals: Drop special treatment of when with expected type
  • KT-85007 Properly implement special rules for kotlin.Result in @JvmExposeBoxed support
  • KT-74383 Support new callable reference nodes in JVM backend
  • KT-84828 Cleanup JVM backend from the old callable references-related code
  • KT-85006 Refine error messages for INAPPLICABLE_ALL_TARGET diagnostic
  • KT-84296 Support Companion Blocks in CFG
  • KT-85058 Remove final field modification in DescriptorRendererOptionsImpl to prevent warnings on JDK 26+
  • KT-85021 False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project
  • KT-84727 [K/N] Segfault when returning null as generic Int typ...
Read more

Kotlin 2.3.21

23 Apr 10:11

Choose a tag to compare

Changelog

Backend. Wasm

  • KT-84610 [Wasm] Failed to compile klibs in IC mode

Compiler

  • KT-84566 Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler
  • KT-85358 Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed
  • KT-85626 @JvmRecord in commonMain breaks compileCommonMainKotlinMetadata with "Cannot access 'java.lang.Record'"
  • KT-85405 Postpone/Revert DontIgnoreUpperBoundViolatedOnImplicitArguments
  • KT-84678 K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target
  • KT-85021 False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project

JavaScript

  • KT-82395 Support top-level declarations from compiler plugins in JS incremental compilation
  • KT-84475 K/JS: false-positive exportability warnings in multi-module project
  • KT-84633 Kotlin/JS: "Serializer for class not found" error when IR output granularity is whole-program
  • KT-85047 Kotlin/JS: @JsStatic on suspend fun of class companion generates incorrect d.ts
  • KT-84517 K/JS: bad mappings data in outputted Kotlin stdlib source map

Libraries

  • KT-71848 Kotlinx.metadata: Add CompilerPluginData into Km API

Native. C and ObjC Import

  • KT-85399 Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabled
  • KT-85508 K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20

Tools. Gradle

  • KT-84729 Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal

Tools. Gradle. Compiler plugins

  • KT-85257 AGP/Compose: MergeMappingFileTask clears R8 artifacts due to @OutputDirectory annotation on AGP 9.1+

Tools. Scripts

  • KT-85105 Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous object
  • KT-85103 Exception while generating code when explain destructuring decls
  • KT-84842 scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20
  • KT-85029 Kotlin Scripting: ScriptDiagnostic reports "at null" instead of error location

Tools. Statistics (FUS)

  • KT-85628 KGP: composite build FUS metrics fail on access of 'configurationTimeMetrics'

Kotlin 2.3.21-RC2

16 Apr 13:59

Choose a tag to compare

Kotlin 2.3.21-RC2 Pre-release
Pre-release

Changelog

Compiler

  • KT-85626 @JvmRecord in commonMain breaks compileCommonMainKotlinMetadata with "Cannot access 'java.lang.Record'"

Native. C and ObjC Import

  • KT-85508 K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20

Tools. Scripts

  • KT-85105 Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous object
  • KT-85103 Exception while generating code when explain destructuring decls

Tools. Statistics (FUS)

  • KT-85628 KGP: composite build FUS metrics fail on access of 'configurationTimeMetrics'

Kotlin 2.3.21-RC

07 Apr 12:24

Choose a tag to compare

Kotlin 2.3.21-RC Pre-release
Pre-release

Changelog

Backend. Wasm

  • KT-84610 [Wasm] Failed to compile klibs in IC mode

Compiler

  • KT-84678 K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target
  • KT-84566 Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler
  • KT-85021 False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project

JavaScript

  • KT-82395 Support top-level declarations from compiler plugins in JS incremental compilation
  • KT-84633 Kotlin/JS: "Serializer for class not found" error when IR output granularity is whole-program
  • KT-85047 Kotlin/JS: @JsStatic on suspend fun of class companion generates incorrect d.ts
  • KT-84517 K/JS: bad mappings data in outputted Kotlin stdlib source map

Libraries

  • KT-71848 Kotlinx.metadata: Add CompilerPluginData into Km API

Tools. Gradle

  • KT-84729 Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal

Tools. Gradle. Compiler plugins

  • KT-85257 AGP/Compose: MergeMappingFileTask clears R8 artifacts due to @OutputDirectory annotation on AGP 9.1+

Tools. Scripts

  • KT-84842 scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20
  • KT-85029 Kotlin Scripting: ScriptDiagnostic reports "at null" instead of error location

Kotlin 2.4.0-Beta1

31 Mar 13:10

Choose a tag to compare

Kotlin 2.4.0-Beta1 Pre-release
Pre-release

Changelog

Analysis API

  • KT-83867 OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ repo
  • KT-83723 [Analysis API] Enable experimental KDoc resolver by default
  • KT-83388 Analysis API: properly support KMP in KotlinPackageProvider

Analysis API. Code Compilation

  • KT-78946 Evaluation of variable with local class in type parameter leads to InventNamesForLocalClasses exception

Analysis API. FIR

  • KT-84711 K2 IDE sometimes loses FIR plugin-generated declarations after file changes
  • KT-84596 Improve K2 Jooq completion performance
  • KT-84525 KaValueParameterSymbol#getHasSynthesizedName returns false for FirDeclarationOrigin.SubstitutionOverride.DeclarationSite
  • KT-68260 K2 AA: InvalidFirElementTypeException β€œFor CALLABLE_REFERENCE_EXPRESSION with text ::lam1, unexpected element of type: no element found” with illegal callable reference call
  • KT-83546 Kotlin analysis reach ClsCustomNavigationPolicy
  • KT-84259 Move CommonDefaultImportsProvider to the frontend independent module
  • KT-82945 Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl
  • KT-71135 AA: exception from sealed inheritors checker when analyzeCopy

Analysis API. Infrastructure

  • KT-84776 The test data manager misses the redundancy check in the update mode
  • KT-84962 The test data manager misses -ea flag
  • KT-84388 Preserve the EOF status in the test data manager to avoid extra changes
  • KT-83905 Analysis API: Improve UX with test data
  • KT-84362 Analysis API tests produce many warnings due to "not yet loaded registry"
  • KT-84279 Test Data Manager fails on a clean build
  • KT-83913 Exclude compiler-based Analysis API tests from Git tracking
  • KT-80379 Extract per-module test generators for AA tests
  • KT-84120 Move CLI modules out of kotlin-compiler-fe10-for-ide
  • KT-83200 Track external dependencies of the Analysis API modules

Analysis API. Light Classes

  • KT-82434 Light classes should prefer enum entries to properties
  • KT-84200 SLC: return type is not boxed for delegated methods with generic original method
  • KT-72451 "CCE: class PsiPrimitiveType cannot be cast to class PsiClassType" with same-named enum class and typealias

Analysis API. PSI

Analysis API. Providers and Caches

  • KT-82731 Analysis API: Limit granular tree change processing to a few files
  • KT-79234 Analysis API: Usage of asMap() on Caffeine caches bypasses stats counters
  • KT-74090 Analysis API: Support dumb mode (restricted analysis)

Analysis API. Standalone

  • KT-83801 Nested typealiases are not correctly indexed in standalone mode

Analysis API. Surface

New Features

  • KT-73534 SAM method API
  • KT-82993 Support explicit backing fields in the Analysis API

Fixes

  • KT-84397 KtDefaultAnnotationArgumentReference should return only results with value name
  • KT-84804 buildSubstitutor does not work correctly with Java type parameters
  • KT-84389 Cover references with ABI and documentation checks
  • KT-57042 K2, Analysis API: KaJavaInteroperabilityComponent#callableSymbol returns null for a Java getter implementing Kotlin property
  • KT-80856 Analysis API: analysisContextModule incorrectly determines the module of an original file when used for dangling file context assignment
  • KT-84363 AA, isUsedAsExpression: Unhandled Non-KtExpression parent of KtExpression: class org.jetbrains.kotlin.psi.KtContractEffect
  • KT-70476 Analysis API: "KtDefaultAnnotationArgumentReference.resolveToSymbols" does not work in FIR implementation
  • KT-68499 Split KtDefaultAnnotationArgumentReference on K1 and K2 implementation
  • KT-70521 Analysis API: Impossible to distinguish between 'iterator' operator calls dispatched with imports from objects
  • KT-77669 Context arguments are missed on implicit invoke calls
  • KT-77670 resolveToCall: extensionReceiver is incorrectly chosed due to a conflict with context parameters for an implicit invoke call
  • KT-68633 K2 AA: IAE "Expected class KaClassSymbol instead of class KaFirEnumEntrySymbol" with enum entry initializer
  • KT-79186 KtCompletionExtensionCandidateChecker does not work for extensions when using callable references of a type
  • KT-83777 Analysis API: The resolution scope of a context module accepts elements from associated dangling files
  • KT-82571 No expected type for overridden property without explicit type
  • KT-83759 Analysis API: Mark platform interface APIs with @KaPlatformInterface
  • KT-83223 Support "Explicit context arguments" in the Analysis API
  • KT-65186 K2: Analysis API: KtExpressionTypeProvider.getExpectedType works incorrectly for the right hand side of assignment expressions
  • KT-76011 KaFirNamedClassSymbol#companionObject doesn't provide generated objects generated by compiled plugins
  • KT-73290 Analysis API: Improve the architecture of content scopes and resolution scopes

Backend. Native. Debug

  • KT-83804 Native: debug information generator converts relative paths to absolute ones

Backend. Wasm

  • KT-83162 K/Wasm: renaming temporary and synthetic variables in the Chrome debugger
  • KT-85008 Develop and publish a demo app using an early version of the component model support
  • KT-65030 K/Wasm: memory allocator for Component Model ABI
  • KT-83607 WasmJS: Production build eliminates 'else if' branch when 'else' is not wrapped with curly braces
  • KT-83728 [Wasm] Invalid Ir type while suspend call with blocked if null comprehansion
  • KT-82803 Kotlin/WASM: Failed to compile the doResume function with if inside catch block
  • KT-83800 [Wasm] Closed world per-module compilation

Compiler

New Features

  • KT-84319 Add JVM target bytecode version 26
  • KT-83165 Collection literals: treat Deprecated(HIDDEN) operators of reasonably
  • KT-84487 "-Xcollection-literals" compiler flag
  • KT-84072 Collection literals: treat visibility of of during resolve correctly
  • KT-80500 Collection literals: Analyze ConeCollectionLiteralAtom in cases their expected type is not fully known
  • KT-80491 Implement fallback mechanism for collection literals
  • KT-80490 Implement overload resolution mechanism for collection literals
  • KT-84484 Companion Extensions Analysis & Resolution
  • KT-84199 Imple...
Read more

Kotlin 2.3.20

16 Mar 09:37

Choose a tag to compare

Changelog

Analysis API. FIR

New Features

  • KT-78090 Implement stubs support for new conditional returns and holdsIn contracts

Fixes

  • KT-82948 'FirRegularClass' expected as a containing declaration, got 'FirTypeAliasImpl'
  • KT-83467 Package-level JSpecify annotations are ignored when coming from jars or libraries
  • KT-82057 K2. Cannot infer type parameter 'R' in Ktor routing post() function with explicit response type
  • KT-82846 AA: unresolved KtExpression.expressionType for the reference to the parameter with default value
  • KT-80485 False positive UNRESOLVED_REFERENCE on nested interface from super-super class in the super type position inside an anonymous object
  • KT-82772 Flaky false positive deprecation warning on PersistentMap.put in Kotlin repo in IDE mode
  • KT-76487 StdLibSourcesLazyDeclarationResolveTestGenerated.testWrappedInt is unstable
  • KT-82618 Various tests are failing with NPE in kt-master after updating the compiler on 19.11.25
  • KT-82076 Error querying members of JavaClass created for SymbolLightClassForAnnotationClass during library analysis
  • KT-71596 Include Js/Wasi checkers in AbstractLLFirDiagnosticsCollector
  • KT-82085 No OUTER_CLASS_ARGUMENTS_REQUIRED on type parameter bound in IDE
  • KT-81873 Provide a way of including traces in phase JFR events
  • KT-71929 Consider leaving the non-post-compute version at EnhancementSymbolsCache.enhancedFunctions

Analysis API. Infrastructure

  • KT-83173 Analysis API Tests: Library names with RC versions aren't sanitised
  • KT-65140 LL FIR: Implement AbstractFirPsiJsDiagnosticTest for LL FIR
  • KT-82212 [Analysis API, LL FIR] Implement AbstractDiagnosticsFirWasmTest and AbstractDiagnosticsFirWasmWasiTest for LL FIR

Analysis API. Light Classes

  • KT-82227 Value classes should expose regular static methods

Analysis API. PSI

  • KT-81710 'KtTypeReference.getTypeText' does not account for 'suspend' modifier on suspend lambdas
  • KT-82258 Prepare PSI for migration from context receivers to context parameters
  • KT-81074 KDoc: List rendering is broken

Analysis API. Providers and Caches

  • KT-82449 K2 IDE Analysis Freezes During Gradle Sync (Recursive Module Dependency Computation in KotlinModuleDependentsProviderBase.computeTransitiveDependents)
  • KT-82629 'collectDiagnostics' returns stale syntax error after editor fix
  • KT-74907 Analysis API: Apply platform-based library module content restrictions consistently

Analysis API. Standalone

  • KT-81107 AA: KtSourceModuleBuilder.sourceRoots doesn't works with symbolic links

Analysis API. Stubs and Decompilation

  • KT-82792 Stub for KtValueArgumentList inside KtAnnotationEntry should be present if it is present in psi
  • KT-82527 TypeClsStubBuilder.createFunctionTypeStub throws NullPointerException
  • KT-82558 Deserialized DNN type should have a fully qualified Any
  • KT-81928 KaArrayAnnotationValueImpl.values missing first element
  • KT-82139 Support contracts for property accessors
  • KT-82198 Support context parameters in contracts

Analysis API. Surface

New Features

  • KT-82851 Property accessors should inherit KDoc from the parent property
  • KT-63339 Analysis API: Provide a way to extract KDoc for symbols
  • KT-79070 KaTypeProvider: add API to build a default type with star projections
  • KT-66566 AA: api to create functional types
  • KT-66043 KtTypeCreator doesn't provide a way for creating annotated types

Performance Improvements

  • KT-83694 Provide psi-based implementation of KaDeclarationSymbol#isExternal
  • KT-70868 KaSymbol: support PSI-only visibility and modality for the case without compiler plugins
  • KT-81627 KaFirSymbolDeclarationOverridesProvider#processOverrides should process only relevant declarations

Fixes

  • KT-83152 [Analysis API, KDoc] Make class name links on constructors point to the class
  • KT-83695 Deprecate KaSymbolInformationProvider#{getter, setter}DeprecationStatus
  • KT-82853 Add a convenience property for testing declarations for effective external-ness
  • KT-83226 Support "Collection literals" in the Analysis API
  • KT-83225 Support "@IntroduceAt" in the Analysis API
  • KT-83222 Support "Improve use-site defaulting for annotations" in the Analysis API
  • KT-83351 Rename KaSession context parameter from 's' in bridges to something nicer
  • KT-83199 Clarify API around extension points
  • KT-83074 Inner enum entry class has incorrect default visibility
  • KT-82442 Add Ka prefix to org.jetbrains.kotlin.analysis.api.symbols.AdditionalKDocResolutionProvider
  • KT-82443 Add Ka prefix to org.jetbrains.kotlin.analysis.api.symbols.DebugSymbolRenderer
  • KT-82441 Add Ka prefix to org.jetbrains.kotlin.analysis.api.compile.CodeFragmentCapturedValue
  • KT-82439 Add Ka prefix to org.jetbrains.kotlin.analysis.api.components.DebuggerExtension
  • KT-82438 Add Ka prefix to org.jetbrains.kotlin.analysis.api.components.DefaultTypeClassIds
  • KT-68577 asPsiType and mapTypeToJvmType: leading delimiter for class in a root package
  • KT-81734 MIssing "ARGUMENT_TYPE_MISMATCH" caused by self-referential generic type
  • KT-82856 Redesign KotlinReferenceProviderContributor to make it extensible
  • KT-82615 Clarify KtReference#resolvesByNames contract
  • KT-82534 No expected type for property accessor without body
  • KT-82406 Add a test to ensure that all top-level classes in the Analysis API Surface have Ka prefix
  • KT-78397 investigate if there is a need in Extra support for the "various little features in contracts"
  • KT-74009 Analysis API: Expose "isOverloadable" check for callable symbols similar to "OverloadChecker.isOverloadable"
  • KT-78399 Check return value - check how we see from Java(+Stub) we see β€œannotated” signatures
  • KT-80357 [Analysis API] KaType.enhancedType doesn't enhance type parameters
  • KT-73659 Analysis API: The name of KaType.enhancedType is too general
  • KT-80545 [Analysis API] Deprecate KaFunctionType.arity
  • KT-77708 K2 Mode: Potentially redundant smart cast highlighing when passing smartcasted expressions as arguments
  • KT-81264 K2 AA: KaValueParameterSymbol.hasDefaultValue is false for overriding or actual functions
  • KT-81166 Forbid the usage of KaSessionComponent implementation types directly
  • KT-74801 Analysis API: Publish/subscribe to modification events with a single message bus topic

Backend. Native. Debug

Read more

Kotlin 2.3.20-RC3

10 Mar 12:54

Choose a tag to compare

Kotlin 2.3.20-RC3 Pre-release
Pre-release

Changelog

Tools. Gradle. JS

  • KT-84772 Bundled yarn.lock for kotlinWasmToolingSetup does not include @swc/helpers@0.5.17

Tools. Gradle. Native

  • KT-84759 iosX64 should not be marked as deprecated in Kotlin Gradle DSL

Kotlin 2.3.20-RC2

03 Mar 11:47

Choose a tag to compare

Kotlin 2.3.20-RC2 Pre-release
Pre-release

Changelog

Compiler

  • KT-84620 Incorrect optimization of property delegation
  • KT-81974 Do not eagerly initialize reflection for KProperty objects for delegated properties

JVM. Reflection

  • KT-84600 Performance regression around Kotlin properties JVM reflection during instantiation

Tools. Build Tools API

  • KT-84577 BTA: API 2.3.20 incompatible with compiler 2.3.10

Tools. Compiler plugins. Compose

  • KT-84218 [2.3.20-Beta1] "IllegalStateException: no implementation for FUN MISSING_DECLARATION" during bitcode lowering

Tools. Gradle

  • KT-84152 Memory Leak and OOM Errors in Kotlin Gradle Plugin 2.3.20-Beta2 with in-process execution mode

Kotlin 2.3.20-RC

19 Feb 13:11

Choose a tag to compare

Kotlin 2.3.20-RC Pre-release
Pre-release

Changelog

Backend. Wasm

  • KT-82649 K/Wasm: Rewrite StringBuilder to use JsString
  • KT-83995 K/Wasm: 2.3.0 -> 2.3.20-Beta1 degradation in arrow tests
  • KT-83839 K/Wasm: CMP. Load time on Safari significantly increased with Kotlin = 2.3.20-Beta1

Compiler

  • KT-83372 compileDebugKotlinAndroid hangs in 2.3.0 with SQLDelight
  • KT-83849 False-positive NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS for Optional.orElse(null) call
  • KT-84192 "Member overrides different '@Throws' filter from" caused by overriding in different module
  • KT-83697 Native: increased bitcode produced with enabled safe casts
  • KT-83984 Data races around kotlinx.serialization plugin protobuf extensions registration
  • KT-83031 K2: unstable resolution of EnhancedNullability from type-use NotNull in presence of unused code
  • KT-83824 Delegated property in Gradle DSL fails to compile
  • KT-81700 flaky overload resolution behaviors (false-positive errors, different final candidates, compile-time failures)
  • KT-78443 Refactor session component initialization for multi-target compilation

Compose compiler

JavaScript

  • KT-83572 KJS/Wasm: Cannot access @JsModule-declared class from non-modular project
  • KT-84134 KJS/CMP: "IrLinkageError: Function 'get' can not be called: No function found for symbol"
  • KT-64951 Kotlin-Multiplatform does not allow JSExport of expect

Klibs

  • KT-84273 [Klib] Added IrOffsetsChecker broke backward klib compatibility

Native

  • KT-83542 Switch the default GC back to PMCS in 2.3.20-RC

Native. ObjC Export

  • KT-83736 Objective-C export with objcExportBlockExplicitParameterNames generates invalid block signature when lambda parameter is named id

Tools. Build Tools API

  • KT-83971 BTA: OperationCancelledException cannot be thrown properly from isolated classloader

Tools. Compiler plugins. Compose

  • KT-84055 Reference to lambda in lambda in function 'TextField' can not be evaluated

Tools. Gradle

  • KT-82885 Run tests against Gradle 9.3.0

Tools. Gradle. Multiplatform

  • KT-82090 Kotlin JVM + Android Shared Source set fails Import with the Project Isolation enabled
  • KT-83917 compileCommonMainKotlinMetadata fails in CMP core repository with Kotlin 2.3.20-Beta1

Kotlin 2.3.10

05 Feb 11:48

Choose a tag to compare

Changelog

Compiler

  • KT-83984 Data races around kotlinx.serialization plugin protobuf extensions registration
  • KT-83317 ClassCastException: with cast kotlin.UInt to java.lang.Number when defining constant
  • KT-83031 K2: unstable resolution of EnhancedNullability from type-use NotNull in presence of unused code
  • KT-81700 flaky overload resolution behaviors (false-positive errors, different final candidates, compile-time failures)
  • KT-83983 Revert of KT-83081
  • KT-83314 JSpecify @NullMarked changes Java equals(Object) to equals(Any?) causing override conflict in Kotlin 2.3
  • KT-82863 @NoInfer regression since 2.2.20
  • KT-82841 "kotlin.NoWhenBranchMatchedException" in when with !is check & non-sealed class in the middle of hierarchy

JVM. Reflection

  • KT-83608 Kotlin-reflect: "Unknown origin of public abstract operator fun invoke(p1: P1, p2: P2): R"
  • KT-83361 "KotlinReflectionInternalError: Type parameter not found: 0" on super types with Kotlin 2.3.0
  • KT-42199 "KotlinReflectionInternalError: Unknown origin of public abstract operator fun invoke" on function reference to FunctionN.invoke
  • KT-81024 Reflection: New KType implementation fails on arguments comparison for a Nothing type parameter

Tools. Compiler Plugins

  • KT-83266 "Unsupported class file major version 69" for "produceReleaseComposeMapping" task with Kotlin 2.3
  • KT-83099 Compose compiler does not generate stack trace mappings for project files

Tools. Gradle

  • KT-83070 The KGP api reference is missing a description
  • KT-82459 Improve iOS simulator boot implementation

Tools. Gradle. JS

  • KT-82946 Js, Wasm: Upgrade NPM dependencies

Tools. Gradle. Multiplatform

  • KT-83687 Revert deprecation of 'androidTarget' for AGP lower than 9