2.3.20Updated Apr 19, 2026

org.jetbrains.kotlin:kotlin-reflect

2.3.202026-03-16T09:37:25Z
Release notes

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

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

  • KT-81741 Native: stepping into data class hashCode in lldb goes to line 1

New Features

  • KT-81485 [Wasm] DebuggerCustomFormatters generation support for single module mode
  • KT-81483 [Wasm] Typescript generation support for single module mode
  • KT-81484 [Wasm] Dwarf generation support for single module mode

Performance Improvements

  • KT-83839 K/Wasm: CMP. Load time on Safari significantly increased with Kotlin = 2.3.20-Beta1
  • KT-81524 Unnecessary Any-JsAny conversions are generated for external instanceofs

Fixes

  • KT-82732 K/Wasm runtime crash when using fun reference: convertKotlinClosureToJsClosure
  • KT-82649 K/Wasm: Rewrite StringBuilder to use JsString
  • KT-73240 K/Wasm: consider using JS String Builtins proposal in String implementation for wasm-js target
  • KT-83995 K/Wasm: 2.3.0 -> 2.3.20-Beta1 degradation in arrow tests
  • KT-82309 K/Wasm: refactor _initialize function
  • KT-70075 Wasm: "OutOfMemoryError: GC overhead limit exceeded" during tests
  • KT-83046 K/Wasm: don't use StringBuilder implicitly for string concatenations
  • KT-82645 K/Wasm: wasmJs use js "String" for number2String conversion
  • KT-79937 K/Wasm: support kotlin.js.nativeInvoke annotation
  • KT-67461 Use new lowering phase creation API in Wasm backend
  • KT-83664 Wasm: Colon and space are not sanitized in output file names
  • KT-65779 JsExport declaration name clash
  • KT-82202 [Wasm] SourceMap generation support for single module mode
  • KT-82162 [Wasm] Run single module tests with standalone vm's
  • KT-81325 [Wasm] Remove string pool initialiser dependent code
  • KT-73238 K/Wasm: stop using linear memory inside our code
  • KT-83025 Wasm: Compose application is not loading
  • KT-73239 K/Wasm: use JS String Builtins proposal to transfer strings to and from JS
  • KT-83194 K/Wasm: create WasmIR test infrastructure
  • KT-65234 K/Wasm Ensure that fp operations are aligned with other b-ends
  • KT-81856 K/JS/Wasm interop: external instanceofs do not link in singleModule mode
  • KT-81610 [Wasm] Add CLI test for performance metrics for klibs->binary scenario
  • KT-81550 Incorrect generation of .wat files
  • KT-71533 K/Wasm + K2: no error on KClass::qualifiedName usages

New Features

  • KT-75736 Enable reading/writing annotations in metadata on JVM by default
  • KT-79330 Implement the first version of inference for Collection Literals
  • KT-83401 Collection literals: support different types of expected types for CL
  • KT-55548 JSR-305: Overload resolution ambiguity: Platform Types vs Kotlin Types
  • KT-74860 Support Unit coercion (incl. fun refs) in unused return value checker
  • KT-13968 Support vertx nullable annotation
  • KT-79656 Use org.jetbrains.annotations.UnmodifiableView and/or org.jetbrains.annotations.Unmodifiable to infer read-only types for Java entities
  • KT-81684 Implement explicit passing of context arguments using named syntax [TEST_ONLY]
  • KT-80492 Checkers for operator of
  • KT-82638 Collection literals: resolve to factory functions for standard library classes
  • KT-82467 Improve binary and JVM compatibility by generating bridges for abstract interface methods
  • KT-82655 Bridges generated for non-fake overrides shall include annotations from target methods
  • KT-74223 Move Kotlin/Native TestProcessor phase to the first phase
  • KT-27090 Support contracts in getter and setter for top-level extension properties
  • KT-74809 Support unnamed local variables
  • KT-45683 Allow generics in contract type assertions

Performance Improvements

  • KT-81974 Do not eagerly initialize reflection for KProperty objects for delegated properties
  • KT-83697 Native: increased bitcode produced with enabled safe casts
  • KT-83036 Native: too many casts emitted with -Xgeneric-safe-casts=true
  • KT-80061 Compiler (or IDEA) hangs due to importing large Kotlin reflect functions (e.g. KFunction999999999)
  • KT-68592 Investigate performance implications of enabling -Xjvm-default for ir.tree module
  • KT-73687 Inefficient KtCommonFile#getFileAnnotationList
  • KT-71673 Consider making EnhancementSymbolsCache. enhancedFunctions using simple cache

Fixes

  • KT-84773 Annotations not persisted in IR for internal external functions
  • KT-78783 K2: absence of warning for KTLC-284 migration
  • KT-81553 INITIALIZER_TYPE_MISMATCH and ASSIGNMENT_TYPE_MISMATCH is reported on the entire initializer
  • KT-83395 Kotlin/Native 2.3.0 iOS release framework fails with Invalid LLVM module (PHI node type mismatch)
  • KT-84620 Incorrect optimization of property delegation
  • KT-81567 Add a use-site warning if a @DslMarker-marked annotation is used on entities where it is a no-op
  • KT-81700 flaky overload resolution behaviors (false-positive errors, different final candidates, compile-time failures)
  • KT-83372 compileDebugKotlinAndroid hangs in 2.3.0 with SQLDelight
  • KT-82579 Update specificity rule for context parameters
  • KT-83590 Some explicit backing fields must still be considered private-to-this
  • 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-72994 K2: Remove resolution to context receivers
  • KT-80247 No diagnostic on unresolved type annotation from a dependency in an inferred type
  • KT-78730 Move more LLVM-agnostic code to compiler/ir/backend.native or compiler/ir/backend.common
  • KT-74051 Add a Continuation for tail-call suspend functions
  • 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-83824 Delegated property in Gradle DSL fails to compile
  • KT-83657 [K/N] Pre-codegen inline produces invalid bitcode
  • KT-81555 Kotlin scripts: top-level name-based destructuring with _ = prop fails with “exception while generating code”
  • KT-83314 JSpecify @NullMarked changes Java equals(Object) to equals(Any?) causing override conflict in Kotlin 2.3
  • KT-83282 JvmExposeBoxed: Duplicate annotation interface kotlin.coroutines.jvm.internal.DebugMetadata in class %class%$1 for suspend inline class value
  • KT-78443 Refactor session component initialization for multi-target compilation
  • KT-83427 Arguments of plugin-generated annotations are serialized incorrectly
  • KT-83538 OPERATOR_RENAMED_ON_IMPORT is not reported for 'provideDelegate' operator
  • KT-83537 OPERATOR_RENAMED_ON_IMPORT is not reported for 'of' operator
  • KT-82721 Inconsistent explicit backing fields behavior
  • KT-83589 Explicit backing fields don't likely work with intersection overrides
  • KT-81951 K2: Another false positive "Assigned value is never read" in composable function
  • KT-83588 Explicit backing field is falsely accessible from a subclass via a substitution override
  • KT-82849 Collection literals (minor): collection literal should only be resolved to operator
  • KT-83363 VerifyError: "Bad type on operand stack" on multi-line suspending call with default parameter value since API version 2.4
  • KT-83570 K2: Resolve problematic IR when referencing Kotlin const from annotation in Java
  • KT-83362 Starting from 2.3 DefaultImpls bridge functions deprecated with the level HIDDEN are no longer synthetic
  • KT-9182 Java interoperability: Overload resolution ambiguity on Java's @NotNull and primitives
  • KT-83633 Forbid inline functional context parameters in inline functions
  • KT-83449 compile-time IR failure on smart cast information leaking from capturing closure
  • KT-82375 Add ATOMIC_REF_WITHOUT_CONSISTENT_IDENTITY warning for any argument without consistent identity
  • KT-82524 Access to a companion that requires opt-in is possible without opt-in
  • KT-83367 VolatileFieldsLowering may emit wrong parameter types for atomic intrinsic calls
  • KT-83382 K2: Unreachable method exit breaks MUST_BE_INITIALIZED checks for succeeding value declarations
  • KT-82211 False positive SENSELESS_NULL_IN_WHEN with nullable var
  • KT-83157 ExplicitBackingFields: "Property with explicit backing field should be final" in 2.3.0
  • KT-83269 K2: Wrong types in IR for explicit backing fields
  • KT-68606 Argument type mismatch, despite being from the same star-projected type
  • KT-83324 Native: problem with loops handling in types computation pass
  • KT-83241 K2: "NoSuchElementException: List is empty" with top-level destructuring declaration and lambda initializer
  • KT-82277 Misleading Inapplicable candidate(s): fun <K> WHEN_CALL(vararg branches: K): K when a when expression branch contains an unresolved reference
  • KT-80839 Get rid of an obsolete -Xcompile-builtins-as-part-of-stdlib flag once previous changes are bootstrapped
  • KT-82900 Language Feature EnhancedBridgesGeneration
  • KT-82651 Do not generate self-recursive bridges in JVM backend
  • KT-5486 Better errors for integers with leading zero
  • KT-83185 Kotlin repeatable annotations are incorrectly deserialized from bytecode
  • KT-82863 @NoInfer regression since 2.2.20
  • KT-82376 Header mode: Index out of bounds when generating bodies of data class
  • KT-82311 Header mode: Error expression when assigning function declaration to a property
  • KT-82408 Header mode: Java files are not compiled successfully
  • KT-82378 Header mode: Sequence contains no element matching the predicate
  • KT-82407 Header mode: Backend Internal error: Exception during IR lowering
  • KT-81763 Incorrect comparison result when using elvis ?: with nullable Long values
  • KT-83153 Properly ignore contract statements in the Return Value Checker
  • KT-83076 Don't report WRONG_JS_INTEROP_TYPE on expect types during metadata compilation
  • KT-78589 "Class does not have member field" caused by delegation from a Java to Kotlin class
  • KT-82640 K2: CCE on green code
  • KT-82684 "Don't know how to compile annotation value ERROR_EXPR" on incorrect array literal in annotation default arguments
  • KT-81948 K2: ClassCastException: "java.lang.String cannot be cast to java.lang.Void" when calling @Nullable Java function
  • KT-82788 false-positive duplicate JVM class name error in IJ monorepo
  • KT-82841 "kotlin.NoWhenBranchMatchedException" in when with !is check & non-sealed class in the middle of hierarchy
  • KT-82844 "when" with no branches does not evaluate subject (side effects ignored)
  • KT-81625 Incorrect empty parameters parsing (comma is highlighted in red)
  • KT-81193 K2: SOE from AbstractTypeApproximator.approximateToSuperType with local enum class
  • KT-65059 Stack overflow when typechecking an Elvis expression with deeply generic values
  • KT-82555 @Deprecated(HIDDEN)` objects not skipped when resolving qualifiers
  • KT-82737 Leaked type variable in diagnostic when top-level lambda with uninferred type parameter has non-functional expected type
  • KT-78019 Change K1 API deprecation level from Warning to Error
  • KT-82683 K2: FIR2IR: compile-time JVM codegen failure on an argument of function subtype for a KSuspendFunction parameter
  • KT-82671 Do not report ignorability mismatch on override/actualization if the function returns Unit type
  • KT-82506 Misleading compilation warning: "This class is not recommended for use in Kotlin. Use 'java.util.Map' instead"
  • KT-52498 Test privateSuperType.kt is failing with caches enabled
  • KT-82336 Header mode: Cannot infer argument for type parameter T
  • KT-69326 Inference chooses controversial order to fix variables
  • KT-82545 Handle data class with extra components in migration warning for name-based destructuring
  • KT-82303 Improve UNSUPPORTED_FEATURE message when compiler argument has a parameter
  • KT-81866 K2: False positive ILLEGAL_RESTRICTED_SUSPENDING_FUNCTION_CALL caused by smart-casted @RestrictsSuspension receiver
  • KT-13412 Improve error message on callable reference with expression of nullable type
  • KT-82466 KotlinIllegalArgumentExceptionWithAttachment when return is used in explicit delegation expression
  • KT-82454 Local types aren't approximated in public declaration types
  • KT-82487 False positive REDUNDANT_VISIBILITY_MODIFIER inside private class
  • KT-82369 [K2 REPL] Crash in the serialization plugin backend with "unable to transform declaration"
  • KT-82243 Usage of nested type aliases is forbidden despite the feature flag
  • KT-62900 K2: Expected expression to be resolved during Fir2Ir
  • KT-81941 IllegalArgumentException: class org.jetbrains.kotlin.psi.KtValueArgument is not a subtype of class org.jetbrains.kotlin.psi.KtExpression for factory POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION
  • KT-80741 Fix rendering of inner classes with generic outer classes
  • KT-82331 Do not propagate context parameters from classes to constructors
  • KT-77276 K2: Wrong scope for annotation arguments for the parameters of a secondary constructor header
  • KT-77275 Inconsistency between scopes for primary/secondary constructor headers
  • KT-15152 Improve error message for unresolved reference for delegation specifier and primary constructor call
  • KT-81498 Make Kotlin/Native stdlib in distribution reproducible
  • KT-81408 Allow local-variable-target annotations on destructuring declarations
  • KT-82012 Annotations without parentheses on full form of name-based destructuring don't work
  • KT-81915 Exception when analysing 'when' expression with annotated expression as a subject
  • KT-78364 Static methods are not generated for companion object JvmStatic property accessors with JvmExposeBoxed
  • KT-81838 Prohibit usage of nested type aliases (from lib) for sources with LV < 2.3
  • KT-81357 Forbid compilation of code with explicit root_ide_package in CLI mode
  • KT-73138 K2: "Assignment type mismatch" when class name is underscore_
  • KT-82169 Add quotes to message of WRONG_NUMBER_OF_TYPE_ARGUMENTS
  • KT-78386 JvmExposeBoxed (with no name) + JvmOverloads + JvmName produces ambiguity
  • KT-78358 Propagated JvmExposeBoxed annotation doesn't copy JvmName argument
  • KT-81699 Move native klib compilation to a separate module
  • KT-81692 Decouple compilation of Native klib from the Native backend
  • KT-80673 Consider forbidding/minimizing usages of ClassId.isLocal and CallableId.isLocal
  • KT-81376 False negative UNEXPECTED_TRAILING_LAMBDA_ON_A_NEW_LINE & bad positioning
  • KT-81946 false-positive JAVA_CLASS_ON_COMPANION in case of an explicit companion reference
  • KT-74461 K2: Render function types nicely
  • KT-81875 NCDFE: kotlinx/coroutines/internal/intellij/IntellijCoroutines at :compiler:multiplatform-parsing:jvmTest
  • KT-49722 Report NOT_YET_SUPPORTED_IN_INLINE for inherited default parameters with inline function
  • KT-81913 Inapplicable candidate when vararg-adaption for callable reference might be used (array parameter)
  • KT-81841 Inapplicable candidate when vararg-adaption for callable reference might be used (generic parameter)
  • KT-39697 "Cannot infer type parameter" in map with java static or global method reference
  • KT-81896 Improve RedundantCallOfConversionMethod inspection for @UnsafeNumber annotated typealiases
  • KT-66413 Incorrect line mapping in suspendable code before suspend call without parameters
  • KT-80525 Update IntelliJ SDK dependency to 251.27812.49
  • KT-81808 Setting hasDefaultValue = true in irValueParameter() crashes the compiler
  • KT-78927 False positive 'USELESS_JVM_EXPOSE_BOXED'
  • KT-81703 Drop obsolete K1 frontend code from Kotlin/Native
  • KT-81698 DecoupleSpecialBackendChecksTraversal from Native backend
  • KT-81687 Different LightTree and PSI outputs when annotated class-like declaration is used as an expression
  • KT-81302 False positive: Type Mismatch caused by context parameters, lambdas, and generics
  • KT-81584 IAE "Collection contains more than one matching element" in FirElementSerializer on contextual property with same name as primary value class property
  • KT-77237 JvmExposeBoxed breaks compilation with a secondary constructor with value class
  • KT-81262 False positive: Access declaration type exposure: during access to public function class from internal inline declaration
  • KT-80112 Kotlin Debugger: “Cannot find local variable” on evaluating default lambda inside inline function
  • KT-76806 K2: AIOOBE in FirEqualityCompatibilityChecker
  • KT-81693 Introduce lightweight versions of KonanConfig and PhaseContext
  • KT-72446 K/N: inline function's default values aren't lowered with caches
  • KT-81521 Anonymous function in context parameters breaks parser
  • KT-80853 Class reference in context parameters breaks parser
  • KT-81441 Missing type checks when class has deeply generic supertype
  • KT-79116 Wrong parameter arguments mapping (compiler skips empty arguments)
  • KT-81422 False negative in full-form name-based destructuring: annotations before val/var not rejected
  • KT-80652 K2: USELESS_IS_CHECK is not detected in when
  • KT-80049 Mangle ERROR_TYPEs in diagnostics reported to user
  • KT-73786 Evaluator: cannot evaluate inline methods with reified parameter
  • KT-75828 Store backing field/delegate annotations and extension receiver annotations in metadata
  • KT-74572 Context parameters: contracts don't work with context parameters
  • KT-42824 FIR: false INAPPLICABLE_CANDIDATE when using in variance on a Java class

Compose compiler

  • b/481953005, b/481769383 Cache stability inference results during session
  • b/481735904 Fix Compose codegen crash in inline function
  • b/479646393 Add groups to inline functions with two or more inline parameters
  • b/458234821 Disable Compose K1 tests on CI
  • b/456948687 Force resolution of declarations when looking up SAM functions in FIR
  • b/445426829 Add a diagnostic for key call with no arguments

IR. Actualizer

  • KT-82418 KMP Separate Compilation: NPE caused by actualization of NsCalendar.getEra
  • KT-82313 ACTUAL_ANNOTATION_CONFLICTING_DEFAULT_ARGUMENT_VALUE checks throw conflicting values in expected and actual annotations

Fixes

  • KT-82017 [Inliner] Inline function overrides abstract method with default value
  • KT-80814 [IR Inliner] Space: jsBrowserProductionWebpack task failed with HookWebpackError
  • KT-83280 Split LibrarySpecialCompatibilityChecksTest into pure JS and pure Wasm tests
  • KT-81766 K/N: Recursive inline expect/actual causes StackOverflowError
  • KT-80953 [Inliner] Eliminate excessive IMPLICIT_CAST after IR Inliner on 2nd stage.
  • KT-79899 [IR Inliner] Split single-module tests having inline fun into files
  • KT-83148 KLIB inliner: Make both "inliner" language features to require Api Version = 2.3
  • KT-80791 classFunctionsAndFieldsWithCrossModuleInliner fails per-file with cross-module inliner
  • KT-80696 Can not get instance of singleton 'Obj': No class found for symbol
  • KT-82065 IR inliner: Inline function's default value argument may get wrong offsets in a temporary variable
  • KT-81753 Review diagnosticReporters usage in pre-serialization lowerings
  • KT-80793 Test friendDependencyWithCrossModuleInliner fails per-file with cross-module inliner
  • KT-80698 [IC][WASM] Mismatched file stats
  • KT-80697 [IC][JS per file] Mismatched rebuilt modules
  • KT-80660 [Inliner] Bodyless functions should not be inlined at 1st compilation stage
  • KT-79064 Try to get rid of TypeOfPostProcessor

IR. Interpreter

  • KT-82161 Enable Enum.name and KCallable.name to constant evaluation
  • KT-80646 Enable unsigned conversion functions when bootstrapped compiler is available

IR. Tree

  • KT-82765 Kotlin/Native: Internal compiler error when building DFG
  • KT-82829 IR deserializer: Don't deserialize any cinterop fake overrides from Klibs
  • KT-83236 PeopleInSpace_mpp compilation error: The symbol table has been sealed
  • KT-81154 [IrValidator] Fine-tune IrVisibilityChecker on 2nd stage
  • KT-80243 Support Name Based Destructuring in loop with withIndex()
  • KT-79436 KLIB stdlib symbols loading: Drop all functions from SymbolFinder except for loading the whole collection of (potentially unbound) symbols by name
  • KT-79435 KLIB stdlib symbols loading: Load symbols and and filter/map them lazily in BuiltinSymbolsBase hierarchy when accessed by IR
  • KT-69082 Migrate maps of IR elements to IR attributes
  • KT-67457 Introduce a way to simplify IR lowering phase creation

New Features

  • KT-22265 Support for inherited annotations

Performance Improvements

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

Fixes

  • KT-83608 Kotlin-reflect: "Unknown origin of public abstract operator fun invoke(p1: P1, p2: P2): R"
  • KT-57357 Reflection: "KotlinReflectionInternalError" when using callBy on constructor that has inline class parameter with nullable value
  • 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
  • KT-83067 Reflection: IAE "argument type mismatch" on callBy with vararg of generic type parameter with primitive upper bound
  • KT-82699 Reflection: incorrect behavior of KFunction.isExternal for Java native methods
  • KT-82350 Reflection: incorrect behavior of KType.javaType on a type obtained from KType.withNullability
  • KT-29203 KType.javaType always returns void class for local delegated property
  • KT-81899 Reflection: incorrect javaType for local delegated property setter return type
  • KT-82093 Reflection: IAE from defaultType for inner class of generic class
  • KT-77312 KotlinReflectionInternalError: "Container of deserialized member is not resolved" on computing type parameter captured in a local delegated property
  • KT-82316 Reflection: type parameters of top-level declarations behave incorrectly
  • KT-81987 Reflection: error when calling function in inline class with inherited default value
  • KT-81870 Reflection: Error when calling function with default parameters and extension receiver
  • KT-81880 Reflection: Error when calling function with default & context parameters
  • KT-81907 Reflection: incorrect result when calling function with default values and context parameters
  • KT-81859 Reflection: do not use descriptors in ValueClassAwareCaller
  • KT-81854 Reflection: incorrect type for instance receiver of inner class constructor
  • KT-81855 Reflection: IAE "object is not an instance of declaring class" on function with context and extension receiver of inline class
  • KT-81843 Reflection: NPE on accessing property accessor returnType for Java field
  • KT-81588 Reflection: KotlinReflectionInternalError "Inconsistent number of parameters" on calling contextual declaration with value class type in the signature
  • KT-81111 Reflection: suspend function types are loaded incorrectly by the new implementation
  • KT-81206 Reflection: non-substituted Function type in suspend function supertypes
  • KT-81804 Reflection: remove support for multi-field value classes
  • KT-81664 Reflection: IAE "argument type mismatch" on calling member extension with value class in the signature

New Features

  • KT-83454 K/JS: Support ES6 classes in js() calls
  • KT-83455 K/JS: Support ES6 default function arguments in js() calls
  • KT-83453 K/JS: Support ES6 concise methods in js() calls
  • KT-83457 K/JS: Support ES6 spread operators in js() calls
  • KT-83456 K/JS: Support ES6 rest function parameters in js() calls
  • KT-54504 K/JS: Support ECMAScript tagged string templates
  • KT-82327 KJS: Export parameter names of function types if present in .d.ts files
  • KT-82371 KJS: Generate more concrete TypeScript for members of an uninhabited enum

Performance Improvements

  • KT-16379 KotlinJs - ArrayList get is now slow

Fixes

  • KT-64951 Kotlin-Multiplatform does not allow JSExport of expect
  • KT-83528 K/JS: Array holes in array literals are ignored in the new js() parser
  • KT-84134 KJS/CMP: "IrLinkageError: Function 'get' can not be called: No function found for symbol"
  • KT-65802 How to implement Interfaces in Javascript/Typescript?
  • KT-83830 Relocate org.antlr.v4 to an internal package
  • KT-83572 KJS/Wasm: Cannot access @JsModule-declared class from non-modular project
  • KT-83930 Kotlin/JS: JsStatic on property of interface companion generates incorrect d.ts
  • KT-70986 Add Swc into the compilation pipeline of Kotlin/JS
  • KT-78742 Investigate the usage of the ANTLR-generated parser for the js function
  • KT-60554 KJS: rethink JS_*_NAME_CLASH diagnostics
  • KT-82552 KJS: "Non-abstract class does not implement inherited abstract member from class" errors in generated .d.ts
  • KT-82652 KJS: Exported abstract inner classes can be constructed from TypeScript
  • KT-82542 KJS: Inner class can be constructed from TypeScript without passing an outer instance
  • KT-82499 KJS: Omit parameters in private constructors in .d.ts files
  • KT-41082 KJS: 'Reflection is not supported on JavaScript target, so you won't be able to read this annotation in runtime' warning is inconvenient and misleading
  • KT-82279 KJS: DCE removes external members overrides without reason
  • KT-52800 KJS / IR: sealed interface with nested data classes not accessible
  • KT-67460 Use new lowering phase creation API in JS backend
  • KT-82667 Kotlin/JS: ESM TypeScript definitions for exported nested Enums do not compile
  • KT-82553 KJS: Incorrect .d.ts generated for generic inner classes
  • KT-82263 Implement exporting top-level properties in Analysis API-based TypeScript Export
  • KT-82362 KJS: Incorrect types generated in .d.ts for JsName-annotated enum entry
  • KT-82262 Implement exporting top-level functions in Analysis API-based TypeScript Export
  • KT-82144 K/JS: 'meta' identifier usage in js() inline calls prevents expression from parsing
  • KT-82149 K/JS: new calls without arguments produce exceptions in js() inline calls
  • KT-81730 Optimize suspend functions compilations via JS generators
  • KT-79243 [JS] Drop K1-specific tests, testrunners and test directives

New Features

  • KT-83101 Implement experimental KLib ABI dump parser

Fixes

  • KT-82586 Export in previous version (JS, Wasm): adjust the checker for incompatible Kotlin stdlib/compiler pairs
  • KT-84273 [Klib] Added IrOffsetsChecker broke backward klib compatibility
  • KT-80910 [Klib] Ensure serialized source coordinates are correct
  • KT-81955 [JS] Support testing of forward compatibility with export in previous version
  • KT-81957 [JS] Create a common Gradle test task
  • KT-82736 False positive IR_PRIVATE_CALLABLE_REFERENCED_BY_NON_PRIVATE_INLINE_FUNCTION_ERROR on referenece to local declaration
  • KT-82758 [PL] Change the behavior of getting name of removed property
  • KT-81470 Simplify inline function deserialization after the bootstrap update
  • KT-81466 Enable KlibAnnotationsInMetadata by default in LV 2.5
  • KT-82208 K/Wasm: allow using newer stdlib with older compiler
  • KT-83328 kotlin-wasm-benchmarks: Compilation errors due to missing KLIB dependencies
  • KT-83071 Failure on Native Nightly
  • KT-78365 [PL] Change the behavior of getting name of removed function
  • KT-81977 Klib compatibility tests: Implement sanity checks
  • KT-81410 Klib metadata: migrate to using the common annotations instead of klib-specific extensions in kotlinx-metadata-klib
  • KT-82577 Don't use KLIB resolver in the KLIB tool
  • KT-82213 IR linker doesn't complain when a private value class constructor is used from another module
  • KT-81003 KLIBs: Eliminate excessive implicit casts in common prefix on the 1st stage
  • KT-81670 K/N: Many Section still use none cacheable zip when Xklib-zip-file-accessor-cache-limit flag set
  • KT-81954 [JS] All forward compatibility tests fail
  • KT-81709 [KLIB Reproducibility] KLIB zip file generation is non-deterministic due to unsorted file system traversal
  • KT-81474 [Tests][Klibs] Migrate Klib evolution tests to PL tests engine

Language Design

  • KT-83009 Exposing of non-exportable API from interfaces
  • KT-73502 Context parameters: it is not possible to declare local function with a context

New Features

  • KT-81997 Method to create a detached copy of a Map entry
  • KT-79093 Expose FirResolvedStatus.hasMustUseReturnValue in kotlin-metadata

Performance Improvements

  • KT-75801 Optimize Array to list conversion using array copy instead of a loop
  • KT-82038 K/N: iterating over Array.asList is slower compared to ArrayList

Fixes

  • KT-78115 Investigate the current situation with 22 kotlin.context standard library overloads
  • KT-82363 Add assertIs to the list of ignorable functions
  • KT-80666 K/N and K/Wasm: Regex: unassigned category is excluded from other chars
  • KT-80665 K/N and K/Wasm: Regex: unicode category Symbol matches some punctuation marks
  • KT-78089 K/N: Regex: Quantified groups matching is causing a stack overflow
  • KT-82783 HashMap (K/N, Wasm), MapBuilder (all targets) duplicate keys
  • KT-52400 Deprecate @BuilderInference
  • KT-80786 Annotate kotlin-stdlib-jdk7/8 with @IgnorableReturnValue
  • KT-83181 Remove @IgnorableReturnValue from contract DSL functions
  • KT-82033 Array<Array>.flatten fails with obscure error when total length exceeds List's size limit
  • KT-83290 Remove unnecessary ExperimentalTime annotation from Uuid functions
  • KT-83026 Specify compareTo behavior for Boolean
  • KT-82868 Restore accidentally deleted JS-specific note in ArrayList documentation
  • KT-81563 Document kotlin.collections.HashMap and HashSet
  • KT-81562 Document kotlin.collections.ArrayList
  • KT-60535 Mark SubclassOptInRequired and RequiresOptIn with MustBeDocumented
  • KT-64649 Add explanation to "A compileOnly dependency is used in the Kotlin/Native target" warning message

Native

  • KT-83542 Switch the default GC back to PMCS in 2.3.20-RC
  • KT-82387 Kotlin <-> Xcode compatibility issue
  • KT-75806 KN Compiler with debug build can not produce executable with debug info
  • KT-81828 Update exception messages regarding disabling native cache
  • KT-81495 Consider making Kotlin/Native distribution compiler cache reproducible
  • KT-81501 Make Kotlin/Native distribution runtime .bc and fingerprint reproducible
  • KT-80790 'Argument list too long' error when using dynamic_caches
  • KT-48566 ExceptionInInitializerError when configuring Gradle project with kotlin-multiplatform plugin on a host unsupported by Kotlin/Native

Native. Build Infrastructure

  • KT-82886 KonanTarget's clinit causes deadlock
  • KT-81345 Temporary turned off Swift Export execution tests
  • KT-80869 Extract per-module test generators for Native tests
  • KT-82028 Kotlin/Native: move runtime building flags to runtime building code
  • KT-81500 Make Kotlin/Native distribution shared libraries reproducible
  • KT-72011 Kotlin/Native: consider building platform libraries with bootstrap compiler
  • KT-81666 Kotlin/Native: build stdlib with the bootstrap compiler

Native. C and ObjC Import

  • KT-79741 Native: implement type checking against Objective-C protocols without protocolGetter
  • KT-83039 Native: mark header-defined functions and globals unavailable with -Xccall-mode direct
  • KT-82200 Native: implement type checking against Objective-C protocols with objc_runtime_name without protocolGetter
  • KT-82669 Kotlin/Native: cinterop tests failure with no class for metaclass
  • KT-79742 Native: import C global variables without C wrappers
  • KT-81937 Native: switch cinterop to -Xccall-mode both by default for custom cinterop klibs
  • KT-81548 Native: compiler doesn't sanitize CCall.Direct symbol names in C stubs
  • KT-81538 Native: InteropBridgesNameInventor doesn't handle legitimate '$' characters in function names
  • KT-81017 Native: compiler can't call CCall.Direct with '$' in the symbol name

Native. ObjC Export

  • KT-82160 K/N: bridge for fake override is not built but requested
  • KT-83736 Objective-C export with objcExportBlockExplicitParameterNames generates invalid block signature when lambda parameter is named id
  • KT-83014 Native: experimental support for generating an NS_ENUM in addition to an Objective-C class for Kotlin classes
  • KT-76637 ObjCExport: K1 + K2 integration test

Native. Runtime

  • KT-82077 Kotlin/Native: in runtime make main module depend on mm module

Native. Runtime. Memory

  • KT-82635 Enable CMS GC by default in 2.3.20-Beta1
  • KT-83470 Potential race condition in TryRequestThreadsSuspension due to initialization order
  • KT-83549 Provide an experimental Platform property which returns information about object allocation mode
  • KT-83535 Typo in out-of-memory error message
  • KT-81152 Kotlin/Native: deprecate isMemoryLeakCheckerActive
  • KT-81156 Kotlin/Native: deprecate forceCheckedShutdown

New Features

  • KT-82908 Swift Export: bridges for FT should be recursive

Fixes

  • KT-82054 Swift Export: private set is ignored by swift export
  • KT-83499 Swift Export: trampoulines w/ varargs results in a broken swift code
  • KT-83655 Typealias to a closure receiving a closure results in broken swift code
  • KT-82053 Swift Export: Returning generic on top level function produces uncompilable code
  • KT-80971 Swift Export: Support exception throwing
  • KT-83141 Swift Export: suspendable covariant functional type
  • KT-82907 Swift Export: attributes are not printed for parameters of closures
  • KT-80970 Swift Export: Support cancellation
  • KT-82726 Swift Export: filters out wrong module for coroutines
  • KT-81591 Custom type translation rules in Swift export
  • KT-81270 K/N - Build fails when exposing suspend functions

Tools. BCV

  • KT-80938 Binary compatibility validation: can't exclude container types of Repeatable annotations by filters.excluded.byNames
  • KT-83484 Create fat-jar artifact for abi-tools [ABI Validation]
  • KT-80747 Refactor API of ABI tools [ABI Tools]

New Features

  • KT-80681 BTA: introduce a special argument for passing compiler plugins
  • KT-80338 Kotlin CRI generation
  • KT-78198 BTA: implement basic metrics collection
  • KT-79975 BTA: add ability to cancel build operations
  • KT-81790 [BTA] Make build operations and configuration immutable after execute
  • KT-82702 BTA: Allow collecting compiler lookups in non-incremental mode
  • KT-81847 Add CRI <-> BTA integration
  • KT-81845 Add CRI <-> Maven integration

Fixes

  • KT-84577 BTA: API 2.3.20 incompatible with compiler 2.3.10
  • KT-82682 BTA: reading non-nullable arguments may return null or throw NPE
  • KT-81729 BTA: loading from a classloader without implementation fails with CNFE instead of error with explanation
  • KT-83971 BTA: OperationCancelledException cannot be thrown properly from isolated classloader
  • KT-82167 Add BuildTimeMetric for the CRI data generation
  • KT-81846 Add FUS for CRI usage in Gradle / Maven
  • KT-82399 [BTA] JvmClasspathSnapshottingOperationImpl doesn't use Option defaults
  • KT-82039 BuildEvent compilation error missing with KGP 2.3.0-Beta1
  • KT-81887 Implement the CRI lookup data generation
  • KT-81886 Implement the CRI data serialization
  • KT-81780 Add Gradle <-> CRI integration tests
  • KT-81645 BTA prints unreadable version in "option available only since" error (shows KotlinReleaseVersion@hash instead of 2.x.y)

Tools. CLI

  • KT-83044 Report redundant CLI arguments when they have no effect
  • KT-83202 Report all errors during parsing CLI arguments instead of a single one
  • KT-73320 Migrate the main JS CLI pipeline to the phased structure
  • KT-81898 Introduce a CLI option to disable source file sorting
  • KT-73606 Provide a unified interface for managing the reporting of compiler warnings
  • KT-48419 Using a @RequiresOptIn API that does not exist should have an option to not output a warning
  • KT-81861 Introduce a mechanism that allows suppressing CLI diagnostics
  • KT-82321 KMP Separate Compilation: Common fragments are missing forward declaration symbol providers
  • KT-81551 Introduce an experimental CLI option for enabling local type aliases
  • KT-74196 Remove patched copy of com.intellij.util.lang.JavaVersion from the Kotlin repo

Tools. CLI. Native

  • KT-64509 Refactor Kotlin/Native compiler setup: run FE without KonanConfig

Tools. Compiler Plugin API

  • KT-83823 Deprecate PreprocessedVirtualFileFactoryExtension
  • KT-82809 [FIR][IC] New containingFileName parameter API is not actually compatible with IC
  • KT-46709 IR plugin lookups don't work as expected for expect class with actual typealias
  • KT-82518 Disable automatic body generation of the plugin-generated callables
  • KT-82159 [FIR] Automatically add expressions to properties or functions
  • KT-58886 K2: compiler plugin generated top level declarations cause AssertionError on K/JS and K/Native

New Features

  • KT-71893 Support @Builder lombok annotation on methods
  • KT-28594 Add a 'jpa' pre-defined flavor to the allOpen compiler plugin.
  • KT-81604 Lombok Kotlin compiler plugin and -Werror: Unable to ignore warning for the plugin appliance

Fixes

  • KT-83119 Lombok. canEqual is not available from kotlin for a class with @Data annotation
  • KT-83334 Lombok. Builder function is unavailable for a generic class
  • KT-83063 Lombok: Setter/getter is not available with a protected access level
  • KT-83217 Lombok. With method is available for the static field
  • KT-83120 Lombok. A constructor is available for a class with an existing constructor and @Data/@Value annotation
  • KT-83256 Lombok. Setter is available for non-final fields if @Value and @Data/@Setter are used together
  • KT-83251 Lombok. Constructor from @Value includes fields that are initialized in declaration
  • KT-83252 Lombok. Class marked with @Value isn't final
  • KT-83085 Lombok: getter/setter is available for a static field if class is annotated
  • KT-83078 Lombok: getter and setter are not available for a static Java field
  • KT-82341 Migrate official compiler plugins to IC-safe reference... API

Tools. Compiler plugins. Compose

  • KT-84218 [2.3.20-Beta1] "IllegalStateException: no implementation for FUN MISSING_DECLARATION" during bitcode lowering
  • KT-84055 Reference to lambda in lambda in function 'TextField' can not be evaluated

Tools. Compiler plugins. Serialization

  • KT-82351 Migrate kotlinx.serialization to IC-safe reference... API
  • KT-76949 Serialization: "IllegalStateException: Serializer for element of type kotlin.Any has not been found" on custom serializer for Map<String, Any?>
  • KT-73107 Serialization: "IllegalStateException: Serializer for element of type kotlin.Any? has not been found" with star projection

New Features

  • KT-79389 Add allopen plugin + JPA preset to kotlin.plugin.jpa
  • KT-78200 Gradle: enable JVM compilation through BTA by default
  • KT-81844 Add CRI <-> Gradle integration

Performance Improvements

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

Fixes

  • KT-80186 Remove usage of deprecated Gradle API Project.container(...)
  • KT-78754 KGP: Remove usages of isVisible/setVisible
  • KT-80356 Compatibility with Gradle 9.2.0 release
  • KT-78763 Compatibility with Gradle 9.1.0 release
  • KT-83316 [BTA] Build Reports missing information when JVM compilation uses Build Tools API
  • KT-82885 Run tests against Gradle 9.3.0
  • KT-83125 Deprecate out-of-process compilation mode
  • KT-82323 Deprecate LanguageSettings.enableLanguageFeature DSL
  • KT-83323 Run integration tests against Gradle 9.2
  • KT-82884 Compile against Gradle API 9.3.0
  • KT-78104 Deprecate CleanableStore infrastructure
  • KT-80096 Strange "Inconsistent JVM Target Compatibility" warning
  • KT-82715 Declaring dependencies using multi-string notation has been deprecated
  • KT-83161 CRI: it is not clear that CRI generation requires BTA being enabled
  • KT-82717 Specifying 'org.gradle.java.installations.auto-detect' as a project property on the command line has been deprecated
  • KT-81830 Create autogenerated kotlin version constants to be used with disableNativeCache DSL
  • KT-83322 Compile against Gradle 9.2 API
  • KT-81831 Verify Problems API implementation with Gradle guidelines
  • KT-80120 Support colored value for --console command in Gradle 9.1
  • KT-81400 ToolingDiagnosticFactory: check if documentationLink set multiple times
  • KT-83070 The KGP api reference is missing a description
  • KT-82459 Improve iOS simulator boot implementation
  • KT-80008 Track cross compilation status from project dependencies
  • KT-78764 Compile against Gradle 9.1 API

Tools. Gradle. BCV

  • KT-80674 Rename tasks to avoid using legacy word [ABI Validation]
  • KT-80614 Add dependency on abi check from gradle's check task [ABI Validation]
  • KT-80827 Delete DSL for working with dump variants [ABI Validation]
  • KT-80823 Stabilize DSL for filtering [ABI Validation]

Tools. Gradle. Cocoapods

  • KT-80641 EXECUTABLE_DEBUG_DYLIB_PATH problem
  • KT-80644 Cocoapod plugin builds a synthetic project for "generic/platform=iOS Simulator"

Tools. Gradle. JS

  • KT-84772 Bundled yarn.lock for kotlinWasmToolingSetup does not include @swc/helpers@0.5.17
  • KT-82946 Js, Wasm: Upgrade NPM dependencies

New Features

  • KT-77258 Query status of cross-compilation or compilation task
  • KT-81849 Replace kotlin-test-common and kotlin-test-annotations-common with just kotlin-test

Fixes

  • KT-83917 compileCommonMainKotlinMetadata fails in CMP core repository with Kotlin 2.3.20-Beta1
  • KT-82090 Kotlin JVM + Android Shared Source set fails Import with the Project Isolation enabled
  • KT-81973 NPE with Cannot invoke "java.util.List.get(int)" because "path" is null in KMP + Android project
  • KT-79257 Consider deprecating and removing kotlin.kmp.isolated-projects.support
  • KT-81944 Legacy KMP Android uses wrong configurations to infer common dependencies
  • KT-83687 Revert deprecation of 'androidTarget' for AGP lower than 9
  • KT-81536 "Couldn't resolve dependency in 'commonMain' for all target platforms" in 2.2.20-Beta2
  • KT-81724 IntelliJ successfully resolves imports that are not actually available in the given module
  • KT-79073 compileTest* tasks pass separateCompilation parameters but don't behave accordingly
  • KT-71130 Enable Isolated Projects support by default for KMP

Tools. Gradle. Native

  • KT-84759 iosX64 should not be marked as deprecated in Kotlin Gradle DSL
  • KT-83598 KotlinNativeDownloadTask build caching is unsafe
  • KT-80715 Deprecate kotlin.native.cacheKind and introduce DSL instead
  • KT-83353 DisableNativeCache breaks up-to-date checks for non-cacheable K/N targets
  • KT-81443 ConfigurationCacheError on Linux arm64 due to disabled iOS targets
  • KT-82970 Warning about disabled K/N caches for non-cacheable targets is printed twice
  • KT-82786 Warning about disabled K/N caches is displayed twice

Tools. Gradle. Swift Export

  • KT-82727 Swift Export: generated kotlin bridges don't see neighboring modules

Tools. Gradle. Wasm

  • KT-82525 K/Wasm: kotlinToolingSetup does not depend on package manager installation

Tools. Incremental Compile

  • KT-80483 Incorporate IC lookups into reference... methods of IrPluginContext

Tools. JPS

  • KT-76927 Switching from VAL to VAR does not trigger recompilation of usage in Kotlin-uses-Kotlin
  • KT-79362 JPS/NoArg: Failed to build project with 'java.lang.NoClassDefFoundError: org/jetbrains/kotlin/com/intellij/psi/PsiElement'

Tools. Kapt

  • KT-81691 K2: KAPT: "ClassCastException: IrErrorTypeImpl cannot be cast to class IrSimpleType"
  • KT-82338 K2 KAPT: ISE "Cannot evaluate IR expression in annotation" on unresolved enum usage

Tools. Maven

  • KT-83565 Maven: auto‑detect src/main|test/kotlin
  • KT-79304 Maven: Automatically add kotlin-stdlib dependency
  • KT-83111 Add JavaVersion argument resolver for kotlin-maven-plugin-test
  • KT-83112 Add MavenVersion argument resolver for kotlin-maven-plugin-test

Tools. REPL

  • KT-82575 [K2 REPL] Redesign frontend resolution for REPL snippets
  • KT-82741 [K2 Repl] OOM in FirJavaElementFinderKt.collectAllDependentSourceSessionsTo when rerunning the same cell multiple times

Tools. Scripts

  • KT-81679 Script explain: while loop explanation may lead to the hanging code
  • KT-81677 Script explain: Contents of the if/when branches are not explained
  • KT-67063 LauncherReplTest flaky on Windows

Tools. Statistics (FUS)

  • KT-82877 Add performance measurement for KLIB size
  • KT-79576 Included build subprojects produce FUS files with unknown_id when configuration cache is enabled
README is not available yet.

Compare versions

Pick two releases with changelog notes to review the changes.

Only releases with available changelog notes are listed here.

Select two versions to compare changes.