Releases
v2.4.20
Compare
Sorry, something went wrong.
No results found
Changelog
Analysis API
KT-86546 Check suspicious when over ConeKotlinType in ConeTypeCompatibilityChecker
KT-85418 Implement an API for accessing deserialized file annotations in Analysis API
KT-74448 K2. False positive MISSING_DEPENDENCY_SUPERCLASS in LinkedListTest.kt, kotlinx.coroutines
KT-85856 containingSymbol of constructor property differs for local and non-local classes
KT-65417 K2 IDE: KTOR false positive expect-actual matching error on enum class because of implicit clone() in non-JVM source sets
Analysis API. Code Compilation
KT-76457 K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm
Analysis API. FIR
KT-70552 No expects for actual
KT-69727 K2 IDE. Wrong error in the editor on calling clone function of actual enum instance in non-jvm platform
KT-69726 FP errors on declaring fun clone() in actual enum in not-jvm source-set
KT-86014 Types are broken after remove parameter through change signature
KT-86363 KotlinIllegalArgumentExceptionWithAttachments: No dangling modifier found on companion blocks
KT-86147 Drop kotlin.parallel.resolve.under.global.lock registry key
KT-85543 Avoid lazy resolve for the contracts phase if no constracts might be resolved
Analysis API. Infrastructure
KT-84914 Do not publish analysis-api-test-framework
KT-86986 kotlin-compiler-common-for-ide bundles unrelated Analysis API modules
KT-86186 Analysis API: Codebase tests run twice in some analysis modules — pick a single JUnit runner and migrate
KT-85360 Drop kotlin-compiler-testdata-for-ide artifact
KT-85585 Simplify the dependencies graph for the Analysis API modules
KT-85381 Remove tests for the FE10 implementation
Analysis API. Light Classes
New Features
KT-84645 Support resolving to companion block members & extensions from Java (light classes)
KT-80775 Support PsiClass#getRecordComponents in light classes
Fixes
KT-57537 SLC: propagate default parameter value from (@JvmOverloads) expect declarations to actual declarations
KT-85040 [Analysis API] Improve Java / Kotlin interop in KMP projects
KT-87301 SymbolLightAccessorMethod#isValid returns false for delegated properties
KT-87171 SLC: non-mapped Kotlin collection supertype is dropped from supertype list
KT-87250 JvmExposeBoxed: light classes shouldn't be autogenerated for private declarations
KT-70428 AA: good code is red when a Java class extends a Kotlin class implementing MutableList by delegation
KT-63568 Symbol Light Classes: KtAnnotationApplicationWithArgumentsInfo.normalizedArguments() may work incorrectly when psi is not set
KT-36740 MPP: False-positive incompatible types in .java when using expect-class returned by non-expect member from common when actual is actual typealias
KT-67749 Analysis API: Symbol Light classes should be available only to pure JVM sources
KT-68169 K2 IDE. KMP. False positive type mismatch in java file of jvm source-set when using common declaration which expects String
KT-37783 KMP Java Interop: JVM-only methods on actual superclass not resolved in Java for common subclass
KT-40059 Provide type correction for expect/actual types used from Java-code
KT-71429 MPP: False positive "Function1 is not a functional interface" when calling code from Common in Java
KT-70426 SLC: kotlin.Collection#size is not exposed by default
KT-60480 Symbol Light Classes: Classes implementing kotlin.collections.* interfaces don't implement all methods from the corresponding java.util.* interfaces
KT-36991 IDE: "both methods have same erasure" for Java classes directly or indirectly extending Kotlin collections
KT-22594 KotlinCollection.getSize is not highlighted as an error in Java
Analysis API. PSI
KT-84925 Move KtReference to the Kotlin IntelliJ plugin
KT-85052 Move mutation methods out of the Kotlin PSI
KT-85427 Use factory-like pattern instead of reflection in KtNodeType
KT-84789 Ensure all KtClassBody.parent usages are correct
KT-85154 PSI: "AE: parent is ERROR_ELEMENT" with top-level destructuring declaration
Analysis API. Providers and Caches
KT-82220 Analysis API: Support platform-specific session components and checkers in metadata sessions
KT-76526 Incorrect built-in module is provided for non-JVM sources in Standalone
Analysis API. Standalone
KT-83191 Analysis API: JvmDependenciesIndexImpl performs very poorly for large classpaths
KT-61404 Analysis API: implement proper library publishing structure
KT-85112 AA does not see packages from unpacked klibs
KT-86417 Support parameters in 'getExpectsForActual()'
KT-84916 Metadata stub deserializers aren't properly set up for Analysis API Standalone
Analysis API. Stubs and Decompilation
KT-86250 KotlinIllegalArgumentExceptionWithAttachments: No fir element was found for KtDestructuringDeclaration on destructuring declaration typing
KT-86520 KotlinDeclarationInCompiledFileSearcher doesn't support visibility-mangled declarations
KT-64901 Inconsistency between AST and Stub tree in the case of non-local destructuring declarations
KT-84444 Support stubs for companion blocks & extensions
Analysis API. Surface
New Features
KT-73214 Add KaScope#declarations with name filter
KT-69085 Provide API to retrieve label/name from KtFunctionLikeSymbol
KT-70771 KaLocalVariableSymbol: support isDelegatedProperty
KT-85037 Add API for KaFunctionType's returnType modification
KT-80460 AA: Introduce KtExpression.isStableForSmartCasting API
KT-66566 AA: api to create functional types
KT-65912 Analysis API: Implement type building API for all KtType
Performance Improvements
KT-70021 Analysis API: optimize KaFirExpressionTypeProvider.expressionType for simple cases
Fixes
KT-66039 K2: Analysis API: redesign resolution API
KT-86394 Resolve from KDoc reference is inconsistent with source code
KT-87337 Integrate KaContextParameterOwnerSymbol into KaCallableSymbol
KT-78234 Analysis API: Context parameters for accessors
KT-86786 Investigate suspicious when over ConeKotlinType in ConeKotlinType.getDirectSupertypes
KT-72902 Shouldn't KaSymbolProvider#findClass return KaNamedClassSymbol?
KT-87237 No expected type inside arrayOf in annotation entries
KT-87143 findKDoc returns parent property KDoc for accessors of an overriding property
KT-83224 Support "Compile-time functions" in the Analysis API
KT-87174 Expected class KaFirSymbol instead of class KaFirPackageSymbol exception
KT-87199 [Analysis API] Remove KaEnumEntryInitializerSymbol
KT-85382 Remove the FE10 implementation
KT-70774 Unary operators on literals are not resolvable
KT-85206 Provide information about potentially removable context-sensitive resolution qualifiers via Analysis API
KT-86872 KtOperationReferenceExpression should be KtResolvableCall
KT-85800 Analysis API: The internal utility PrettyPrinter is used in the public API surface
KT-73796 Consider "KaAnnotation#useSiteTarget" removal
KT-70794 K2 IDE: Reference to object does not resolve as LHS in "plusAssign" assignment expression
KT-86757 Flaky annotations result for @all annotation on a backing field
KT-86681 [Analysis API] Move isDelegated to KaVariableSymbol
KT-86685 collectCallCandidates works incorrectly for a constructor vs. a companion invoke
KT-86514 No expected type within collection literal in annotation entry using array rather than varargs
KT-76076 K2 AA: safe call expression navigates to parent array index access expression
KT-86418 Support property accessors in 'getExpectsForActual()'
KT-71312 KaFirPsiJavaClassSymbol.{hasAnnotations, annotationSimpleNames} is inconsistent with FirJavaClass implementation
KT-86248 isUsedAsExpression true for typealias lhs in ::
KT-85778 Analysis API: Ensure that all public endpoints in implementation modules are internal or opt-in
KT-78285 resolveToCallCandidates inconsistent behaviour with invoke operator and constructor
KT-85852 CCE in buildClassType
KT-85989 Super type references should be aware of type alias constructors
KT-84184 [Analysis API] Provide a unification substitutor API
KT-84584 Support companion extensions and blocks in the Analysis API
KT-84932 Deprecate utilities exposed through analysis-internal-utils
KT-73059 Consider dropping of KaOriginalPsiProvider
KT-73050 KaFirSymbolRelationProvider#expectsForActual: suspicius logic for KaReceiverParameterSymbol
KT-71101 [AA] Consider getting rid of KaTypeNullability
Backend. J2KLIB
KT-88165 Add Support for -XheaderModeType=compilation to improve header compilation performance
KT-86239 [JKLIB] Investigate which type system context is needed in JklibIrLinker
KT-88306 [JKLIB] Unbound symbols for kotlin.coroutines.SuspendFunctionN
KT-88120 [JKLIB] Add -jvm-target to K2JKlibCompilerArguments
KT-88176 [JKLIB] DeserializationStrategy.WITH_INLINE_BODIES when deserializaing dependencies
KT-88163 Allow to disable firAggressivePrunner for Jklib
Backend. Native. Debug
KT-85264 [Native] Stepping trace starts with // test.kt:1 box in some debug stepping tests
KT-81740 Native: importing konan_lldb.py to lldb prints a warning
Backend. Wasm
Fixes
KT-73452 K/Wasm: turning on range checks by default
KT-83171 K/Wasm: Investigate import.meta usage in mjs files
KT-83159 K/Wasm: generate one common base class fun interfaces (including Function*)
KT-82843 K/Wasm: pass a lambda call helpers to convert funs as an argument instead of exporting them
KT-86123 [Wasm] Callable reference refactoring (KT-83159 ) broke klib binary compatibility with libraries compiled by Kotlin 2.0.x
KT-83356 K/Wasm: Difference in behavior on nested class initialization (for enums?)
KT-87639 [Wasm] Multimodule wasm fails on Pointer usages
KT-87583 Wasm IC cache is not invalidated when kotlin.wasm.compilationMode changes causing IndexOutOfBoundsException in WasmDeserializer
KT-84267 K/Wasm: init order of companion objects is different from JVM
KT-86192 K/Wasm: Raise a warning on usage of top-level require in JsFun
KT-86242 K/Wasm: deprecate and prohibit using wasmExports
KT-86245 K/Wasm: provide an API to get a reference to wasm memory
KT-84610 [Wasm] Failed to compile klibs in IC mode
KT-87078 Wasm/JS: OutOfMemoryError (or BufferUnderflowException) during incremental compilation of multiple files with @JsExport
KT-76207 K/Wasm: prototype generating suspend functions with stack-switching proposal
KT-86166 [Wasm] Make possible to have passing test in multimodule but having it fail in monolith
KT-71039 [Wasm, IC] Investigate synthetic function types loading
KT-71505 [Wasm, IC] Incremental step can produce wrong main function call
KT-86822 K/Wasm: don't cast the result of calling callable references with Unit return type
KT-86180 [Wasm] backward compatibility is broken in 2.1->2.2 by changed order of type parameters
KT-86640 [wasm]: Single-module test failures with companion object initializers
KT-66105 Wasm: SyntaxError: Identifier 'box' has already been declared
KT-83245 K/Wasm: Run stepping tests with local variables with K/Wasm
KT-86478 K/Wasm JS: StringBuilder.setLength crashes when growing with js-string builtins
KT-84667 wasm: Add general support for custom sections/annotations
KT-85506 [Wasm/WASI] Stdlib readLn and readlnOrNull implementation
KT-85270 K/Wasm: incremental compilation fails with NoSuchElementException when a stdlib call is removed
Compiler
New Features
KT-73431 Unresolved reference errors should state the type they're acting on
KT-80373 Add initial support for release compiler caches
KT-84618 Emit a warning when an undesrcore variable is assigned to a Unit expression
KT-86409 [KMP] Create JVM IC metadata output
KT-84295 Support Companion Block of Operator for Collection Literals
KT-84956 Resolve of references to static & companion object members of generic class
KT-85925 Native: rework virtual trampolines machinery
KT-86657 Native: turn on incremental compilation by default
KT-86018 Short-form of name-based destructuring for multi-field value classes
KT-86406 Swift Export: support supercalls for cross-language inheritance
KT-77616 Native: consider adding an annotation that enforces thread state switching for a @SymbolName external fun`
KT-86410 [KMP] Implement acceptance of JVM IC metadata from previous compilation
KT-85593 ELA: Support multiple lambda arguments
KT-83040 Collection literals: ensure normal interaction with CFG
KT-84333 Collection literals: type inference in delegate expression
KT-84289 Resolution to Companion Block & Extension Invoke Operator
KT-82961 Type inference from upper type for type parameters designed for tracking of checked exceptions
KT-81444 False positive: "Overload resolution ambiguity" with @OverloadResolutionByLambdaReturnType and multiple lambda parameters
KT-75736 Enable reading/writing annotations in metadata on JVM by default
Performance Improvements
KT-85621 Native: fix optimization in CastsOptimization
KT-69758 FastJarFS - avoid copying data on inflating (JDK 16+)
KT-85647 Compilation performance regression in AbstractFirDeserializedSymbolProvider since 2.3.20
KT-86104 [JVM] use static methods/fields of KTypeProjection in typeOf generated bytecode
KT-86084 IDEA freezes when a lot of properties are modified to lazy delegates
KT-83068 Investigate long compilation times with many generics & overloads
KT-66469 Long compilation with mockk import
KT-79677 Remove meaningless LVT records
Fixes
KT-88953 CCE caused by suspend conversion of nullable argument to nullable expected type
KT-85842 Collection literals (and CSR): internal failure when lambda is analyzed during inference of outer call
KT-86751 IntroducedAt: Do not generate @IntroducedAt overloads as synthetic
KT-81708 K/N incremental compilation: No module deserializer for FUN name:writeObject
KT-82510 K/N, IC: "Undefined symbols for architecture arm64" for iosSimulatorArm64 with kotlin.incremental.native=true
KT-88316 K/N: StackOverflowError in CastsOptimization when two nullable local variables are assigned to each other across nested loops
KT-80841 Confusing positioning of NO_VALUE_FOR_PARAMETER
KT-85300 Improve message for UNRESOLVED_REFERENCE_WRONG_RECEIVER
KT-87983 CCE on member extension property delegated to bound property reference
KT-85403 kotlin.NoWhenBranchMatchedException on Kotlin Native with sealed interface
KT-87922 K1FakeDescriptorsForReferencesKt classes duplicated between kotlin-scripting-compiler-embeddable and kotlin-build-tools-impl
KT-87499 ClassCastException "Float cannot be cast to Unit" when a suspend function's result is discarded in a when-branch
KT-85656 [NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS] False negative for nested type alias
KT-85641 Nullable-marked object qualifiers in LHSs of callable references
KT-86957 Warning on the underscore variable is not reported for java.lang.Void call
KT-87261 K/N debug: 'is' check miscompilation — local variable reports wrong type when two smart-cast extractions precede an inline loop
KT-87577 Compiler crash on red code with ambiguous type parameter used as expression
KT-80867 [Native] Stack allocation is blocked after cross-module inlining of stdlib
KT-86949 Native: ComputeTypesPass handles type checks across loop iterations wrong
KT-86959 Native: OptimizeCasts gets confused by "complex" terms leaking between different loop iterations
KT-78079 Enable generation of when using invokedynamic by default for JVM targets 21+
KT-86525 JvmExposeBoxed: Inconsistent number of parameters during reflection
KT-72999 K/N: Do not consider IrTypeOperatorCall as a tail call expression
KT-84802 Add new synthetic class flag to JVM metadata
KT-87606 Compiler crash on red code with redeclaration of type parameter which is used as expression
KT-85888 Native: incremental compilation blows up when a method changes from open to final
KT-87335 Context parameters: wrong LINENUMBER emitted for context argument loads in JVM bytecode
KT-84344 Disambiguate fake source elements for source-based symbol IDs
KT-86618 Collection literals: internal PCLA failure with reassignment
KT-85703 Drop pre-2.0 language features from K2 & common compiler code
KT-87245 Report UnsupportedFeature on ExplicitContextArgument
KT-80227 Support unnamed context parameters in evaluation
KT-72706 Confusing "INVISIBLE_REFERENCE" when calling private constructor
KT-86110 K/N Incremental compilation: stale cache is reused after enum entry reorder
KT-86133 K/N IC: stale cache is reused after reified inline body change
KT-30728 "VerifyError: Operand stack underflow" on crossinline lambda usage inside inline function in anonymous object
KT-87507 False-positive ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED on fake-override with value parameter of type missing in dependencies
KT-87439 Postpone UnitConversionsOnArbitraryExpressions indefinetely
KT-87434 JAVA_CLASS_ON_COMPANION not reported when companion accessed through typealias
KT-64622 [K/N] ar utility fails with symbol @ in module/klib name on Linux with static cache
KT-84037 Native: rework ar invocations in the compiler
KT-87339 JVM: Support recursive type provided as an argument of typeOf
KT-86551 Check suspicious when over ConeKotlinType in FirExposedVisibilityDeclarationChecker#findVisibilityExposure
KT-87395 StackOverflowError in return value checker when a Java class member is annotated with the class's own nested annotation
KT-87290 Investigate possible bug in value class deserialization
KT-61141 K/N: irText tests failed with K/N irText first run
KT-85764 Native: Prohibit compiling sources in 'kotlin' package by default
KT-86469 Check 'when's over 'ConeKotlinType' which could miss some branches in DFA
KT-87253 Missed ConeCapturedType check in processing of equals contracts
KT-84522 Refactor FirResolvedQualifier
KT-84299 resolvedToCompanionObject is not set in some situations
KT-87327 JVM IR: NullPointerException in JvmInlineClassLowering when using == between value of generic value class and another value class
KT-86948 Native: CastsOptimization merges results of type checks across loop iterations wrong
KT-86947 Native: CastsOptimization drops side effects of always-null safe casts
KT-87276 Drop or move ConeTypeCompatibilityChecker
KT-78623 No-arg constructor should be generated if all parameters are optional, even when one of the parameters is inline type
KT-86886 Kotlin Lombok: compiler crash with IllegalArgumentException on builder with a single type parameter
KT-83880 Consider making OPERATOR_RENAMED_ON_IMPORT a warning (instead of error)
KT-70461 K2: "Inline class types should have the same representation" caused by value class and smart check
KT-87140 K/N: Test generation leaks BaseClassSuite's INSTANCE type parameter
KT-87291 Enable ProhibitScriptTopLevelInnerClasses in 2.5
KT-87226 CompanionBlocksAndExtensions: COMPANION_EXTENSION_RECEIVER_IS_OBJECT diagnostic is absent when object used via typealias
KT-87058 Investigate abandoned language features
KT-86655 mismatched mutability annotations in overriding lead to misaligned behavior in warn-mode and strict-mode
KT-85169 Return value checker: RETURN_VALUE_NOT_USED: object expression highlighted entirely instead of just the keyword
KT-86464 Support isPublicAbi JVM metadata flag for anonymous and synthetic local classes
KT-87083 JVM: AssertionError in if UIntArray is declared in sources
KT-87032 JvmExposeBoxed: forbid private @JvmExposeBoxed declarations
KT-85954 Implicit JvmExposeBoxed leads to IOOBE when data class constructor accepts nullable inline class
KT-85955 Implicit JvmExposeBoxed: double default constructor parameter leads to IOOBE
KT-86523 JvmExposeBoxed: Cannot generate code for exposed constructor with default parameter referencing another default parameter
KT-86524 JvmExposeBoxed: Collection does not implement abstract method
KT-86526 JvmExposeBoxed: Sequence contains more than one matching element
KT-86865 Support abstract full value classes with non-trivial constructors
KT-87016 Drop ANNOTATION_ON_ANNOTATION_ARGUMENT diagnostic
KT-86615 K2: Missing INVALID_CHARACTERS diagnostic for enum entry name with illegal JVM characters, leading to runtime ClassFormatError
KT-86849 Remove old @JvmInline multi-field value classes
KT-87014 [KGP] failing testSwiftExportCoroutines
KT-86481 Compilation failure with spread arrayOf inside arrayOf
KT-86996 unwrapVarargValue does not consider some cases
KT-86955 K2: Companion block funs in interfaces have OPEN modality after Fir2IR
KT-87035 K2: Context parameter type leaks unsubstituted into callable-reference adapter
KT-86940 Diagnostic range of NONE_APPLICABLE in enum entry is hard to see
KT-86046 Put @K1Deprecation to all public declarations of K1 modules
KT-86555 CL-based annotation resolve: clean up CFG-related hacks
KT-86482 Collection literals: do not fallback if not supertype of List is expected
KT-84154 Invalid qualifiers with type arguments in package parts compile without diagnostics
KT-85288 Consider dropping use-site target checks in checkRepeatedAnnotation and similar places
KT-85469 Native: potential concurrency problem with caches
KT-81567 Add a use-site warning if a @DslMarker-marked annotation is used on entities where it is a no-op
KT-86853 FIR: Char.code not being const-evaluated under IntrinsicConstEvaluation feature
KT-86877 Postpone ELA-related language features
KT-86852 Initialize full value classes fields before calling super
KT-86824 Native: support spaces in paths for Linux
KT-85816 Drop remaining usages of ComponentRegistrar
KT-86534 Extract reworked annotations resolution under separate language feature
KT-82555 @Deprecated(HIDDEN)` objects not skipped when resolving qualifiers
KT-84626 Try to combine FirConstChecks and FirExpressionEvaluator
KT-85291 MFVC: consider analyzing the type of declaration instead of use-site target in AnnotationChecker
KT-86755 False negative NATIVE_SPECIFIC_ATOMIC in type arguments
KT-86752 K2: False negative NO_REFLECTION_IN_CLASS_PATH on type parameters, intersection types, captured types
KT-85972 [ArrayEqualityCanBeReplacedWithContentEquals checker] Checker misses smart-cast array operands when the original type is a type parameter
KT-85970 [ArrayEqualityCanBeReplacedWithContentEquals checker] Warning message mentions ==/=== instead of !=/!== for inequality operator
KT-86705 False positive REDUNDANT_SINGLE_EXPRESSION_STRING_TEMPLATE for nullable String? expressions with -Wextra
KT-86798 Native: don't use stale incremental cache when a new compiler version is used
KT-86298 LEAKED_IN_PLACE_LAMBDA when a lambda parameter is forwarded into an inline function parameter
KT-76632 K2: False positive "Assigned value is never read" with 'flatMap()'
KT-86699 Kotlin/Native: get rid of OptimizeTLSDataLoads
KT-86577 Companion block member is determined as a fake override
KT-86646 IllegalStateException "unknown supertype kind null" when compiling data class with definitely non-nullable type parameter (U : T & Any)
KT-86662 Check for loss of ConeIntersectionType.upperBoundForApproximation
KT-86629 Approximation of Intersection Type to Upper Bound is Broken by Bang Bang Operator
KT-86115 Platform declaration clash on no-arg constructor with @JvmExposeBoxed and @IntroducedAt
KT-86643 Warning for returning callsInPlace lambda
KT-86609 Make KDocSection implement PsiLanguageInjectionHost
KT-86642 Flexible type with nullable intersection types in both bounds
KT-85148 Native: check/fix KT-72710 Incorrect behaviour of tail call suspend functions optimization
KT-85230 False negative deprecation diagnostics on import of member of nested class
KT-62467 K2: Result type of elvis operator should be flexible if rhs is flexible
KT-86319 K2: StackOverflowError in AbstractConeSubstitutor with recursive Java type bound under mixed JSpecify @NullMarked/@NullUnmarked
KT-86512 K2: Bad IR for adapted callable reference to function with generic vararg and optional parameter
KT-85947 Collection literals: internal failure when SAM is expected
KT-85535 Collection literals: Migrate to new resolve in annotations under "-Xcollection-literals"
KT-86468 K2: False negative DSL_SCOPE_VIOLATION when type parameter has DSL-annotated bound
KT-86292 False negative: INFERRED_TYPE_VARIABLE_INTO_EMPTY_INTERSECTION_WARNING reported for direct getValue call but not for equivalent by delegation
KT-86467 K2: False negative ILLEGAL_RESTRICTED_SUSPENDING_FUNCTION_CALL with DNN, flexible, captured and intersection receiver types
KT-85848 Recursion on value classes through type parameters
KT-75874 K2: Adjust the type mismatch diagnostic on lambda parameters
KT-82456 K2. Missing deprecation for object with invoke
KT-86184 KDoc: syntax highlighting incorrect when @param, @return, or summary line begins with a backtick
KT-85454 Make :compiler:android-tests:test cacheable
KT-51400 Additional independent candidate with @OverloadResolutionByLambdaReturnType could change inference results
KT-86042 Inference fixes lambda's return type variable too early
KT-86327 Add flag to LanguageFeature enum to enable it in the latest language version tests
KT-84718 Provide information for simple names resolved through imports which might be resolved via context-sensitive in IDE mode
KT-75112 FE resolves wrong receivers order for property passed to delegate
KT-86191 Check not null on a dynamic-typed property leads to malformed CFG
KT-86143 operator keyword is allowed on arbitrary equals in enum entries
KT-73197 Order-dependent choice of overload by lambda return type with Unit
KT-86144 Unresolved code in ambiguous plus assign is not reported
KT-86006 CFG: Exponential growth when visiting unresolved delegates in FirLocalVariableAssignmentAnalyzer
KT-86103 Incorrectly reported CONFLICTING_OVERLOAD on companion member
KT-85965 Native: incremental compilation blows up with NoSuchFileException: class_fields
KT-86005 Fix misuse of DeferredMethodVisitor.intermediate in AnonymousObjectTransformer
KT-72840 [JVM Inliner] Two fails AFTER mandatory stack transformations: incorrect bytecode
KT-84589 Prohibit Array<Nothing> in lhs of ::class
KT-84766 Kotlin/Native: separate compiler cache for latin1Strings=true
KT-82899 Native IC: AIOOBE on coroutines
KT-85188 Don't poison binaries with companion blocks & extensions for LV >= 2.5
KT-80176 ASSERT FAILED: SDE.c : 296 - bad SourceDebugExtension syntax - position 376 - expected ':'
KT-84581 Inline function with @JvmOverloads produces SourceDebugExtension attribute with invalid line numbers
KT-85203 Kotlin/Native: "Invalid LLVM module - Instruction does not dominate all uses" with nested inline suspend functions and withContext
KT-85766 Confusing error message "'this' is not defined in this context" on companion extension delegated property
KT-85720 K2: Missing null check in generic vararg function call when passing value of flexible type
KT-85701 K2: Type parameter is out of bounds for IMPLICIT_DYNAMIC_CAST
KT-82196 False positive: "Recursive call is not a tail call" inside when/if with lambda and elvis
KT-85841 Error message for NULLABLE_ON_DEFINITELY_NOT_NULLABLE uses obsolete term for DNN types
KT-81932 False positive TAIL_RECURSION_IN_TRY_IS_NOT_SUPPORTED caused by try in another branch inside tailrec function
KT-78443 Refactor session component initialization for multi-target compilation
KT-85661 Lazy resolve for substituted property accessors with a contract doesn't work
KT-84719 Provide information for qualified types that might be replaced with context-sensitive simple names in IDE mode
KT-85667 Add experimental language version 2.6
KT-85770 Support companion block properties in interfaces
KT-85168 Generate static initializers as proper IR functions
KT-74516 False negative TYPE_PARAMETER_AS_REIFIED for DNN type
KT-85733 Illegal unqualified resolution to companion extension through scope linking
KT-85679 Internal Compiler Error when trying to access a value parameter from companion block
KT-85358 Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed
KT-81814 Field name '$$context-Functor#1' cannot be represented in dex format
KT-6071 Change USELESS_CAST warning message
KT-85626 @JvmRecord in commonMain breaks compileCommonMainKotlinMetadata with "Cannot access 'java.lang.Record'"
KT-85527 Unmute Android tests after removing IGNORE_BACKEND_K1 directive
KT-84939 Kotlin/Native: support llvm passes in -Xsave-llvm-ir-after
KT-85341 K2."TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM" false positive on accesses to properties of an anonymous object
KT-84861 Support Companion Blocks & Extensions in Scripts/REPL
KT-84327 Name-based destructuring conflicts with in-scope functions
KT-78678 Checking for nullable type against nullable type falls back to inline-when generation mechanism
KT-83652 Confusing messages when using package parts with type arguments in qualifiers
KT-75372 Deprecate K1 compiler
KT-80093 Type inference depends on the presence of transitive dependency
KT-68933 CompilationException: Back-end: Could not get inlined class
KT-63746 K2: JSpecify: If a class has a @Nullable type-parameter bound, Kotlin should still treat unbounded wildcards like platform types
KT-17738 Java cannot extend class implementing kotlin.collections.Map
Compose compiler
Fixes
b/549552317 Fixed a bug that, in certain cases, prevented execution of
non-local return statements inside lambdas called from when
expressions.
b/543684938 Fix composable singleton in function with type parameters
b/537617330 Fixed a bug that caused miscompilation of cross-module calls
to getters and setters, causing spurious runtime errors.
b/522127447 Fixed a bug that was making the stability of pre-cast types be
used in certain skipping checks instead of the stability of post-cast
types
b/489339299 Move Compose runtime to a stable version
b/509945632 Always wrap inline lambdas with a composable group with a group
b/422193018 Fix callableInferenceNodeOf in ComposableTargetChecker.kt
IR. Inlining
KT-86558 Forbid accesing volatile references after inlining
KT-87272 IR: Function value is inlined with out-of-scope type parameter
KT-87274 IR: Synthetic accessors are generated with out of scope type parameters
KT-79065 Try to remove NativeRuntimeReflectionIrBuilder
KT-72464 [Native][JS][Wasm] Non-local return through suspend conversion breaks the IR inliner
IR. Tree
Fixes
KT-69305 Re-enable reporting out-of-scope type parameter usages during pre-lowering IR validation
KT-86943 Investigate if lambdas must be transformed into static or regular functions
KT-73921 False negative: tailrec checkers with recursive functions (without tail recursion)
KT-85896 Type parameter is out of bounds (in setter) for a property with context parameters
KT-85698 Type parameter is out of bounds (in setter) for an extension property with type parameter
KT-85575 KLIBs: Add IR text & ABI dump tests for companion blocks and companion extensions
KT-87138 IR: Rich callable reference to an inner-class member leaks outer class type parameters into the generated adapter
KT-74938 Use SYNTHETIC_OFFSET in IR fake overrides
KT-87105 [Tests][IR] Unify or split IR dump for different backends
KT-87292 IR: Drop lateinit modifier from IrFile.module property
KT-86884 IrTreeSymbolVisitor is not visiting symbols declared in non-final class
KT-85147 K/N: Segfault when calling SAM instance converted to type with nullable type parameter upper bound
KT-86527 Remove unreachable code from UpgradeCallableReferences
KT-85673 Replace classId with IrClassSymbol in IrAnnotation
KT-85572 KLIBs: New signatures for companion funs/vals
KT-78175 Remove remaining usages of attributeOwnerId outside of JVM backend
KT-85573 Store "companion parameter" in IR of funs/vals declared as companion extensions
JVM. Reflection
New Features
KT-73657 Fix kotlin-reflect performance issues for reflection operations common for both reflection implementation: stdlib and kotlin-reflect
Fixes
KT-86477 Reflection: test builtin class contents
KT-87369 Reflection: KClass.members fails on Java class with self-referential raw type bounds
KT-76521 Reflection: change KType representation to avoid dependency on K1
KT-85902 Reflection: support call/callBy for companion blocks & extensions
KT-85903 Reflection: do not inherit companion block members from supertypes in KClass.members
KT-86709 Reflection: KRIE with Reaktor on fresh master
KT-86101 Reflection: additional Java constructors are not added for mapped builtins in the new implementation
KT-86545 Reflection: extra Serializable supertype for non-mapped enum classes in "kotlin" package
KT-83677 Reflection: aliased extension function type is rendered as non-extension in toString
KT-85836 Reflection: KotlinReflectionInternalError on isSubtypeOf with definitely-not-null type
KT-83986 Reflection: java.io.Serializable is not shown in supertypes of Int type in new reflection
KT-84495 Reflection: "KotlinReflectionInternalError: Annotation class not found: kotlin/jvm/internal/EnhancedNullability" on Java Optional type
KT-86177 Reflection: incorrect modality of Java constructors in the new implementation
JavaScript
Fixes
KT-88571 K/JS: "llegalStateException: Internal error: cannot find external signature" caused by @Serializable enum in 2.4.20-RC
KT-87410 [K/JS] Companion block initialization order of super types differs from JVM
KT-86273 @JsExport.Ignore does not work properly with data classes properties
KT-85599 Allow exporting annotation classes into JS/TS
KT-86934 K/JS: Stack overflow when implementing interface with suspend fun using anonymous object
KT-80188 Design exporting of suspend lambdas into JS/TS
KT-87127 KJS: @JsPlainObject factory contains duplicated parameters
KT-70622 Kotlin/JS: Incremental compilation doesn't recompile kotlin js stdlib while changing a collection
KT-87307 [JS] Reflection: runtime KClass of a Long value differs from Long::class
KT-85990 K/JS: Default parameter values ignored in @JsStatic suspend functions when class is exported
KT-84992 Remove body of isLongCompiledToBigInt intrinsic after boostrap version updated
KT-40768 KJS: initialization order for companion objects (inherited classes) different from K/JVM
KT-87074 KJS: Fix inheritance issues in Analysis API-based TypeScript export
KT-75176 Add infrastructure for bundle size testing
KT-85616 [K/JS] Add synthetic and internal compiler APIs into sourcemap's ignoreList
KT-70223 Delete the source code for the legacy JS backend
KT-73067 Drop support for the legacy JS metadata from the metadata decompiler
KT-82224 Respect file-level annotations in Analysis API-based TypeScript export
KT-82340 Implement supertype approximation in Analysis API-based TypeScript Export
KT-82317 Support Kotlin collections in Analysis API-based TypeScript Export
KT-84710 Kotlin/JS: Suspending default interface methods are not accessible on subclasses from JS
KT-19819 JS: source maps: write the longest common prefix of all paths to "sourceRoot" field
KT-82266 Support transitive export in Analysis API-based TypeScript export
KT-80991 K/JS/Wasm interop: JsReference.get is easy to accidentally use in JS target
KT-85424 Replace each js call with jsClassIntrinsic after bootstrapping
KT-84457 KJS: Support implementable interfaces in Analysis API-based TypeScript Export
KT-85452 K/JS: Cannot create static member with @JsStatic in non-companion object
KT-83462 Usage of star projection makes any generic type not-exportable
KT-85563 Kotlin/JS: TypeScript mts files do not properly escape enum values
KT-60899 K2 JS: Implement warning NO_REFLECTION_IN_CLASS_PATH
Klibs
Performance Improvements
KT-84837 Introduce an index in IR linker for faster look up of suitable module deserializers
Fixes
KT-84821 [K/N] Load libclangstubs from configured path
KT-87294 [Wasm] Implement Wasi Klib backward compatibility testing
KT-86320 [PL] Replacing unusable classifiers with Any? type may cause a signature clash
KT-86632 KLIBs: Rework serialization logic for IrTypeAlias
KT-87006 Extract/remove K1-specific parts from :kotlin-util-klib-metadata
KT-81947 [Wasm] Klib backward and forward compatibility testing
KT-81659 Load symbols on 2nd compilation stage without frontend involvement
KT-85611 Change usage of KlibCompilerDeserializationConfiguration in IntelliJ to CommonCompilerDeserializationConfiguration
KT-86451 Get rid of deprecated '-no-endorsed-libs' usages in Kotlin project
KT-85578 KLIBs: New manifest property to indicate "new initialization order"
KT-84836 Minimize usages of IrBuiltIns in the KotlinIrLinker
KT-86037 [Tests] Split test directive IGNORE_KLIB_BACKEND_ERRORS_WITH_CUSTOM_FIRST_STAGE
KT-86228 Simplify Klib's ReadBuffer
KT-58409 [KLIB Reproducibility] File path separators should be platform-independent in KLIBs
KT-74417 Deduce the metadata version based on LV in KLIB-based backends
KT-76195 Combine toJvmMetadataVersion and toKlibMetadataVersion
KT-84750 [K/N] Set "kotlin.native.home" appropriately in forward testing of master -> 2.4.0-Beta2
KT-85805 AtomicfuNativeKlibSyntheticAccessorTestGenerated broken
KT-85587 [Tests] Update test data so it ignores failing compatibility tests correctly
KT-85359 ExportKlibToOlderAbiVersion with LV=2.2 is silently ignored
KT-85290 Make :native:native.tests:klib-compatibility:testMinimalInAggregate cachable
KT-85080 Klib/IR Tests TC configuration -- need to explicitly download the necessary dependencies
KT-84990 Investigate the usage of allDependencyModules in IR linker
KT-84349 [Wasm] Implement forward klib compatibility testing
KT-71414 KotlinLibraryResolver.resolveWithDependencies was evolved in binary incompatible way
Language Design
KT-86089 Explicit context arguments: Stable release
KT-11914 Confusing data class copy with private constructor
KT-86761 DM 2026-06-08: Another round on ELA (2)
KT-86895 Make full value classes poison builds
KT-86201 Name-based destructuring stable release of only-syntax in 2.5
KT-7882 Generic vs Non-Generic and implicit Unit return type
KT-78796 Decide the future of the AllowEagerSupertypeAccessibilityChecks language feature
Libraries
New Features
KT-30270 Provide allDistinct() and allDistinctBy{} for iterables
KT-10380 allEqual function for Iterable
KT-31305 Support JUnit5-like assertions with message suppliers in kotlin-test
KT-86595 Introduce StackTraceRecoverable interface into the standard library
KT-86766 Add @EqualityBound declaration to stdlib
Performance Improvements
KT-86010 K/N, K/Wasm: MatchResultImpl function arguments checks takes significant portion of time for regex with capturing groups
KT-86032 K/N, K/Wasm: BitSet::get allocates objects for each access
Fixes
KT-86329 Update kotlinx.collections.immutable in Kotlin project to 0.5.0
KT-86053 Update kotlin-metadata-jvm for the companion blocks and extensions
KT-87173 isSortedBy and isSortedByDescending inline their selector twice at every call site
KT-87166 allEqualBy inlines its selector twice at every call site
KT-85020 Path.copyToRecursively silently corrupts directory structure when copying across file systems with different path separators
KT-86696 return-value-checker: false positive Path.setPosixFilePermissions and Path.setLastModifiedTime
KT-86470 Stdlib doc: Wrong timestamp in kotlin.time.Instant.parse example (leads to InstantFormatException)
KT-80654 K/N and K/Wasm: implement missing Regex tests
KT-85326 Libraries: rangeUntil docs sample code uses a rangeTo example
KT-82505 API reference: add links to array transformations returning arrays from their list-returning counterparts
KT-57883 Description and code mismatch in CoroutineContextImpl.kt
KT-65526 Rewrite builtins as expect-actual
Native
KT-74844 kotlin.native.internal.FileFailedToInitializeException when running native tests with Kotlin 2.1.20-Beta2
KT-80830 [K/N] -Xruntime-logs doesn't work with caches
KT-36076 KotlinNullPointerException: Gradle parallel compilation fails on 1.3.70
Native. Build Infrastructure
KT-86889 Kotlin/Native: restore benchmarks after bootstrap update
KT-82607 [K/N] Dist build fails when gradle daemon was started on a JRE (i.e., without JNI headers)
KT-85451 Native: migrate the remaining tests to testFixtures
KT-86725 Kotlin/Native: make KonanCacheTask aware of per-file caches
KT-85823 Kotlin/Native: delete outputs in :kotlin-native:distNativeLibs
KT-85522 Kotlin/Native: llvmLinkBreakpadMainMacos_arm64 fails
Native. C and ObjC Import
New Features
KT-86654 [K/N] CValuesRef overload for c-string parameters
Performance Improvements
KT-84043 Native: findMacros takes a lot of time with -fmodules in cinterop
Fixes
KT-33092 Kotlin/Native doesn't mangle names clashing with standard macros when generating Objective-C headers
KT-85765 Prohibit emitting C-interop KLIBs with kotlin or kotlinx.cinterop packages
KT-87461 Native: platform.darwin cache build failure with symbol is already bound
KT-83940 Generate IR from C-interop KLIBs without descriptors
KT-84665 Don't use KLIB resolver in the CInterop tool
KT-86263 Generate IR for forward-declared classes without descriptors
KT-86871 C-interop Klib caches are not deterministic after KT-83940
KT-86559 [K/N] More stable @CCall ids
KT-73656 Native: @OverrideInit on a capturing local class constructor causes a compiler crash
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
Native. ObjC Export
KT-86443 Native: crash in SwitchThreadState when KotlinBase methods are called from a thread without an initialized Kotlin runtime
KT-85423 Native: ObjC export throws and breaks IDE highlighting and navigation support due to mangling inconsistency
KT-86069 Native: the annotation target for @ObjCEnum.EntryName` is wrong
KT-83504 ObjCExport: Source unresolved dependency
KT-83505 ObjCExport: Transitive unresolved dependency
Native. Runtime
KT-85897 [K/N] C Export sometimes hangs on termination on mingw
KT-85811 K/N: FirNativeGCTestGenerated.testMemoryDump fails
KT-85882 Performance improvement in Kotlin_getCurrentStackTrace: use vectorized/range-checkless copy
KT-85077 Native: if CoreSymbolication fails, report this to users with a troubleshooting guide
Native. Runtime. Memory
KT-86432 Native: PMCS GC bug - alive object seems to be freed prematurely
KT-85457 Native: TSAN tests fail with Xcode 26.4
Native. Swift Export
New Features
KT-80000 Swift Export: Sealed Classes
KT-66888 Swift Export: cross-language subtyping
KT-87503 Swift Export: Support properties in cross-language inheritance
KT-87068 Swift Export: default interface method implementations
KT-86890 Swift Export: Support async calls in cross-language subtyping
KT-79477 Make Swift Export work handle @OptIn declarations well
Fixes
KT-66890 Swift Export: cross-language protocol conformance
KT-66889 Swift Export: cross-language inheritance
KT-86509 [Swift Export] Probable race in tests
KT-87340 [Swift Export] runtime crash during existential creation
KT-87462 [Swift Export] variadic params in functions requiring reverse bridges generates incomparable code
KT-87221 [Swift Export] abstract class with inherited interface fails to compile
KT-87229 [Swift Export] OptIn property inside interface fails to compile
KT-86463 Swift Export: nested sealed interface in kotlinx-datetime (DateTimeFormatBuilder.WithDate) is referenced but never emitted, causing Swift compile error
KT-87088 Protocols that came from cinterop should lose the Protocol suffix
KT-87150 [Swift Export] member function with param named result fails to compile
KT-87144 [Swift Export] nullable closure in member function fails to compile
KT-87106 [Swift Export] suspend closure with context parameter fails to compile
KT-86780 Native: Swift Export coroutines tests are flaky on the CI
KT-87022 [Swift Export] Optional Range results in incompilable code
KT-86650 [Swift Export] Trampoulinebuilding for a function with changed argument name produces incorrect code.
KT-85870 [Swift Export] Invalid unavailability propagation to protocol members
KT-85918 [Swift Export] unavailable operator function fails to compile
KT-85869 [Swift Export] release function conflicts with unavailable NSObject.release
KT-85868 [Swift Export] Factory function conflicts with class name
KT-85871 [Swift Export] 'AbstractCoroutineContextKey' is inaccessible due to '@_spi' protection level
KT-85788 [Swift Export] Doesn't resolve generic upper bound
KT-85534 [Swift Export] Fails to bind private class implementing deprecated public interface
KT-85784 [Swift Export] generic class with multiple upper bounds fails
Tools. BCV
KT-85950 Add support of "com.android.kotlin.multiplatform.library" plugin [ABI validation]
Tools. Build Tools API
New Features
KT-84401 BTA: implement Kotlin/JS incremental compilation support
KT-78206 BTA: implement basic Kotlin/Wasm compilation support
KT-78204 BTA: implement basic Kotlin/JS compilation support
KT-78207 BTA: implement basic Kotlin/Wasm binaries linking support
KT-78205 BTA: implement basic Kotlin/JS binaries linking support
KT-78224 BTA: implement support for metadata compilations
KT-85663 Make BTA JS Compiler Arguments Type-Safe
KT-66425 BTA: implement ClasspathEntrySnapshot.hashCode
KT-84598 [BTA] Expose API Version via Public Property
KT-85421 BTA: validate arguments for invalid characters and guide users to feedback issue
Fixes
KT-85556 BTA: SearchPathType compiler arguments (classpath, -Xklib, -Xmodule-path) not resolved to absolute paths
KT-86703 Support JVM classpath metadata for KMP incremental compilation
KT-86876 Migrate WasmBinaryTransform to BTA
KT-78209 BTA: split Kotlin/Wasm compilation and linking arguments
KT-86916 [BTA] adopt availableSinceVersion for WASM option holders
KT-85696 BTA: deepCopy() in JvmCompilerArgumentsImpl uses string round-trip, corrupting delimiter characters
KT-85958 argumentsToStrings produces corrupted arguments when value starts with "@"
KT-86059 [BTA] Handle enum parsing errors related to case sensitivity
KT-86156 BTA: report all invalid argument values at once instead of stopping at the first one
KT-86702 [BTA] Drop JVM classpath metadata arguments
KT-86676 Add Gradle property to control KMP JVM metadata usage in incremental compilation
KT-87040 Track source-file-to-metadata-fragment mapping when writing KLIB metadata
KT-78208 BTA: split Kotlin/JS compilation and linking arguments
KT-86243 [BTA] Compat package has wrong version of compiler on compile classpath
KT-88348 MessageCollector in IncrementalCompilerRunner drops diagnostics IDs
KT-87743 Make KotlinCoreEnvironment.disposeApplicationEnvironment() unnecessary for K2 BTA compilation
KT-87370 JS/Wasm history IC fails when compiler plugin generates callables
KT-87597 [BTA] KotlinCompilationProcessFailedException causes LinkageError
KT-87034 Introduce SerializedFirMetadata to track source file per metadata fragment
KT-87152 Decouple JVM IC-specific metadata writing logic from common metadata components
KT-85504 Kotlin Daemon crashes if there is a typo in compiler args added as key-value freeCompilerArgs
KT-82986 BTA: setting unknown options may pass silently
KT-86734 Add Kotlin 2.4.0 into backward-compatibility tests
KT-85093 [BTA] Resolve Forward Compatibility Test Blocker for X_IGNORED_ANNOTATIONS_FOR_BRIDGES
KT-85787 BTA: Distinguish typed argument values from raw string values in compatibility test descriptors
KT-85736 BTA tests: automate detection of missing versions in compatibilityTestsVersions
KT-85505 Kotlin daemon crashes if "-Xwarning-level=" compiler option is added with a syntax error
KT-86247 [BTA] Improve -Xjsr305 parser error message: include the full failing entry
KT-86117 CRI: fileId is hashed from the absolute source path, not the stored relative path
KT-85722 [SSoT, JS/Wasm] Switch to "nopack" naming for argument controlling packing of klibs to unify with Native backend
KT-85702 [SSoT] Simplify compiler argument enum serialization by replacing per-type serializers with a generic contextual serializer
KT-85607 [BTA] -Xignored-annotations-for-bridges missing forward compatibility support (API 2.3.20 + impl 2.4.x+)
Tools. CLI
New Features
KT-86473 Report usages of removed CLI arguments as warnings
KT-86202 Warn against disabling a language feature with a parametrized compiler argument that's already stable
Performance Improvements
KT-87868 In-process compilation via CLI/Build Tools API pays a large ThreadMXBean.getCurrentThreadUserTime penalty on Linux: PerformanceManager.measureSideTime measures unconditionally around every class file read
Fixes
KT-88475 IncrementalCompilationComponents instances are not being called anymore
KT-85591 Remove Xklib-normalize-absolute-path compiler argument
KT-86314 Add a CLI flag which controls ELA status
KT-86284 Deprecate using PSI mode from compiler CLI
KT-86405 Generalize reporting of deprecated CLI arguments
KT-87057 Return a legacy JVM KMP IC implementation until the proper one is implemented
KT-85003 Fix name check for @JvmName and @JvmExposeBoxed
KT-86746 Drop all org.jetbrains.kotlin.asJava usages from CLI
KT-85813 Inconsistent behavior of -Xcontext-parameters warning depending on daemon/in-process
KT-85920 Remove MessageCollector Usage from ErrorReportingContext
KT-85898 Register all KtDiagnosticsContainers
KT-85187 Add compiler argument for companion blocks & extensions
Tools. CLI. Native
KT-87123 Phased klib compiler does not read -native-library arguments
KT-85538 Native: allow using JNI in CLI tools on JDK 24+ and Unsafe on JDK 24
Tools. Compiler Plugin API
KT-63881 Allow registering generated properties in IrGeneratedDeclarationsRegistrar
KT-86860 Generalize generateProperties to support FirVariableSymbol but not only FirPropertySymbol
Tools. Compiler Plugins
New Features
KT-86842 Lombok: introduce ARGUMENT_IS_NOT_SUPPORTED diagnostic
Fixes
KT-86145 Support for @EqualsAndHashCode annotation on kotlin classes
KT-81622 Support @Slf4j and other logging annotations (@CommonsLog, @Flogger, @JBossLog, @Log4j, @Log4j2, @XSlf4j)
KT-85758 Support for @Log annotation on Kotlin classes
KT-88179 Power-assert: IrGenerationExtensionException (StringIndexOutOfBoundsException) when assert() wraps a context-parameter function call
KT-87137 Lombok: builder methods aren't resolved if use an existing builder and generics
KT-87044 [DataFrame] Plugin generates a spurious backing field for generated column accessors
KT-86225 Atomicfu generates IR with out-of-scope type parameters
KT-87153 Lombok: merge module common into k2
KT-86980 Delete sources of K1 parts of compiler plugins
KT-87053 Lombok: @NoArgsConstructor factory references an out-of-scope type parameter of a generic class
KT-86839 Handle @Log on Java classes
KT-86985 Can't use @JvmName on class member properties of JPA entities even when using the 'final' modifier
KT-86286 all-open plugin makes @JvmRecord classes non-final, causing compilation error "'@JvmRecord' class must be final"
KT-86774 PowerAssert: allow changing the last parameter to a different type if not specified
KT-86620 Lombok incorrectly detects clashing constructor with varargs argument
KT-86773 PowerAssert: sorting of possible overloads
KT-83121 Lombok. A constructor without parameters is available for a class with @Data and staticConstructor
KT-84059 Lombok. CANNOT_INFER_PARAMETER_TYPE for toBuilder function if @Builder is applied to a generic class
KT-84058 Lombok. NoSuchMethodError for the builder function when @Builder is applied to the method
KT-86058 Check the frontend-owned plugins for the Companion blocks and extensions
KT-86065 Scripting plugin adds HashMap<K, V> (with HashMap's own out-of-scope type parameters) as a supertype of the synthetic REPL state class
KT-86064 Plugin sandbox generates IrClassReferenceImpl typed as KClass<T> where T is KClass's own type parameter
KT-86063 PowerAssert plugin generates IR call to listOf<T> with an out-of-scope type parameter as its type
KT-86070 PowerAssert: Enum entries should not be displayed
KT-85472 Compiler crash if use unexpected value of AccessLevel in a lombok annotation
KT-85693 Don't generate declarations with NONE access level
Tools. Compiler plugins. Compose
KT-88028 Compose compiler: IndexOutOfBoundsException in ComposableTargetAnnotationsTransformer when overriding a @Composable function with default parameter in another module
KT-87326 Compose compiler plugin: NoClassDefFoundError / IrLinkageError at runtime when calling @Composable interface method with default parameter across modules
Tools. Compiler plugins. Serialization
KT-86224 Serialization plugin generates IR with out-of-scope type parameters
Tools. Daemon
KT-71048 KotlinCompileDaemon compatibility not discriminated by JVM version
KT-75840 Almost dead daemons are considered in the daemon elections
KT-85634 -Xwarning-level warnings are escalated to errors when -Werror is enabled in BTA daemon mode
Tools. Gradle
New Features
KT-80509 Gradle: implement metadata compilation through BTA
KT-78216 Gradle: implement Kotlin/Wasm compilation and linking through BTA
KT-78214 Gradle: implement Kotlin/JS compilation and linking through BTA
KT-87481 Introduce DelicateKotlinGradlePluginApi Opt-In
KT-85709 Write Kotlin Daemon warnings and Errors to Problems API
Performance Improvements
KT-88084 Each build leaves a strong reference to an instance of BuildMetricsService
Fixes
KT-83679 Add ERROR deprecation for CleanableStore and CleanDataTask
KT-87992 Compatibility with Gradle 9.7 release
KT-87256 KotlincOutputParser fails to parse compilation errors under Gradle when task path prefixes are enabled (Kotlin 2.4.20-Beta1)
KT-87509 Stop using Gradle Problems API severity field
KT-87508 Wire buildNeeded/buildDependent only for Gradle <9.5.0
KT-87994 Run Gradle integration tests against Gradle 9.7
KT-87993 Compile against Gradle API 9.7
KT-85568 Use compiler diagnostic identifiers in KGP Problems API reporting
KT-85567 Carry compiler diagnostic identifiers through Build Tools API messages
KT-85942 Carry compiler diagnostic identifiers through MessageCollector infrastructure
KT-84957 Add configuration time build metric
KT-87911 Report an actionable diagnostic when .kar files reach compilation classpaths in Kotlin 2.4.20
KT-86435 Replace File.ensureParentDirsCreated() with NIO Path createDirectories()
KT-86827 [KGP] Add KgpJson helper and bump kotlinx-serialization-json 1.4.0→1.4.1
KT-86039 Compile against Gradle 9.6.0 API
KT-86040 Run tests against the Gradle 9.6.0 release
KT-78294 Applying kotlin-dsl in buildSrc with org.jetbrains.kotlin.ecosystem in settings.gradle.kts causes sync failure
KT-87241 CleanDataTask.exec() deprecation message unreachable - task fails with cryptic UninitializedPropertyAccessException instead
KT-87187 Bump Apple deployment targets to match Xcode 27
KT-86515 Replace mavenLocal() with build-dir repo in KGP functional tests
KT-86429 Deprecate KGP contentEquals() utility, move it to internal utility function
KT-76515 IC misses dependency to recompile when named kt file with JvmField instructed property was replaced with an object with the same name
KT-87186 Fix failing testSwiftExportCoroutines
KT-87160 Fix failing Swift Export testExportingTransitiveDependencies test
KT-85689 Delete prepareDeps from kotlin repo
KT-86118 CRI: Enabling kotlin.compiler.generateCompilerRefIndex does not invalidate compileKotlin UP-TO-DATE state
KT-85901 [Gradle] Refactor KGP functional test task configuration to use file-backed system properties
KT-66381 Build reports in JSON: incorrect path to a json build report is printed to build output if a relative path defined as a value for kotlin.build.report.json.directory property
KT-55452 Values of the compiler arguments set via KotlinCompile task configuration are duplicated by the KaptGenerateStubs task
KT-57653 Explicit API mode is not enabled when free compiler arguments are specified in Gradle project
Tools. Gradle. Compiler plugins
KT-84811 PowerAssert: Gradle configuration option for default sourcesets to transform
Tools. Gradle. JS
New Features
KT-87484 Update Browser JS Test DSL after DM for 2.4.20-Beta2
KT-86260 Integrate Playwright with JS Tests pipeline
KT-86707 Cover new Browser Js Test DSL with diagnostics and invariant checks
KT-86715 Add ability to configure Dev-server URL (or specification) to run browser tests from
KT-87483 Mark parts of JS Test DSL with DelicateAPI
KT-86630 Introduce mocha browser runner for kotlin test as part of kotlin-web-helpers
Fixes
KT-87647 Upgrade tooling NPM dependencies versions for 2.4.20
KT-85854 Improve AbstractSetupTask logging
KT-84724 NPM dependency versions do not invalidate KotlinWebpack task cache key in kotlin multiplatform project
KT-84790 Use package.json as 'source of truth' for KGP npm tooling dependencies
KT-87052 JS tests: browser downloading hangs in Windows
KT-86958 Unclear error for js test failure on timeout
KT-87674 JsBrowserTestsIT test fails with an error on Linux
KT-86911 Configured post-processing for playwright reports missing an input or output annotation
KT-87501 Throw an error if new JS test DSL is used with Wasm
KT-87600 Playwright install on multiple subprojects cause Gradle build to fail
KT-87023 Add ability to change / set path to custom browser executable
KT-86922 Correct browserDefaults timeout
KT-86106 Fix task dependency in KGP lockfile generation
KT-86271 [WasmJs/Js] 2.4.0-Beta2 - Node version not compatible with popular JS dependencies
Tools. Gradle. Multiplatform
KT-82398 KMP Separate Compilation: missing fragment dependencies to commonized cinterop
KT-88154 Swift PM lock file is ignored on switching version from exact to from
KT-88107 clean task leave swiftpm checkout in root build directory
KT-88104 dumpXcodebuildArgs task fails if the root build directory is removed
KT-87790 Kotlin 2.4.0 increases Gradle sync times
KT-83917 compileCommonMainKotlinMetadata fails in CMP core repository with Kotlin 2.3.20-Beta1
KT-81434 [uklib] androidCompileClasspath resolves java compatibility variant instead of android for uklib library
Tools. Gradle. Native
New Features
KT-84852 Wire linkage package integration check with Swift Export's embedAndSign
KT-84420 Figure out the handling of XCFramework when SwiftPM dependencies are involved
KT-85797 Use faster findMacros in SwiftPM import cinterops
KT-86155 Print what changed in the linkage package
KT-86667 Switch off sandboxing in integrateEmbedAndSign
KT-86047 Suggest CocoaPods -> SwiftPM migration skill and documentation on cocoapods plugin application
Fixes
KT-86995 Cocoapods plugin: pass all frameworks to the compiler
KT-86015 Swift export binary doesn't see main compilation cinterop output
KT-85468 Don't fail IDE import if the SwiftPM import pipeline has failed somewhere
KT-86288 Eliminate redundant SwiftPM fetch tasks using shared fingerprinting strategy
KT-87196 Ld override falls apart in Xcode 27
KT-87667 SwiftPM import can deadlock when joiner tasks submit blocking workers before owner starts
KT-84223 Move local SwiftPM package IO validation and name inference from configuration time to execution time
KT-85961 integrateLinkagePackage without parameters fails with an obscure error
KT-84238 SPM Import: Ensure generated Package.swift preserves symlinks in local package paths
Tools. Gradle. Wasm
New Features
KT-86633 K/Wasm: Introduce wasmtime support as a runtime for wasm-wasi target in KGP
KT-87258 K/Wasm: Introduce a way to use multimodule compilation only for development
KT-86919 K/Wasm: Allow to configure wasm compilation mode
Fixes
KT-88566 K/Wasm: Webpack configuration generated after user defined chunks from the webpack.config.d directory
KT-88285 WasmJS tooling version overrides are ignored
KT-88115 "Your lockfile needs to be updated": Outdated bundled yarn.lock breaks kotlinWasmToolingSetup with --frozen-lockfile
KT-86878 K/Wasm: Update wasmtime to 46.0.0
KT-86673 K/Wasm: update binaryen to 130
KT-82419 wasm failed to compile on windows arm64
KT-85688 K/Wasm: Remove setting of failOnNoDiscoveredTests in Wasm Gradle tests
KT-86054 K/Wasm: Not set sourceMapBaseDir if there is no sourceMap property in JS and Wasm
KT-85861 K/Wasm: Upgrade NPM dependencies
KT-85806 K/Wasm: Do not rewrite native_implementations.kt file path in source map
Tools. Gradle. Xcode
KT-86858 Eager SwiftPM check in XCFramework task crashes if Kotlin extension is not yet registered
Tools. Incremental Compile
KT-85074 IC: false build success when anonymous class fails to implement new abstract member from another module's interface
KT-86781 Deprecate FIR based incremental runner
KT-87217 JS/Wasm IC: "Could not close incremental caches" with "Storage is already registered"
KT-85241 IC: star-import conflicts are not re-evaluated after adding new declarations, leading to missed ambiguity errors
KT-60584 IC does not propagate RequiresOptIn level change effect transitively
KT-84271 Kotlin Incremental compilation failure "The following FqNames can't be derived from DirtyData.dirtyLookupSymbols"
KT-85740 Incremental compilation misses classpath removal when removed type is used only in a dependency's method signature
KT-85642 IC: Classpath snapshot cache may serve stale entries when snapshot file is overwritten at the same path
Tools. Kapt
KT-85195 KAPT: IntroducedAt is not supported in KAPT
KT-86550 Kapt: properties with context parameters are translated incorrectly
KT-86003 Remove MessageCollector usage from kapt
KT-85453 Make :kotlin-annotation-processing-cli:test cacheable
Tools. Maven
KT-83374 CRI: it is not clear that CRI generation requires IC being enabled in Maven
KT-85622 [Maven] setting kotlin.compiler.jdkRelease without explicit jvmTarget causes compilation failure due to conflicting default
KT-61667 Maven: -Xjdk-release=20 leads to "'-Xjdk-release=20' option conflicts with '-jvm-target 1.8'. Please remove the '-jvm-target' option"
KT-84163 Maven smart defaults: and overrides not respected
Tools. Performance benchmarks
KT-85233 Refine benchmarks module and add new custom long-running tests to it
Tools. REPL
KT-86290 Drop GenericReplTest & LegacyReplTest
Tools. Scripts
KT-87958 K2 scripting: FirPropertyImpl transformation crash when using class from @file:Import-ed script in 2.4.0+
KT-87041 Scripting: classpath extraction fails to extract stdlib from kotlinc
KT-87331 Scripting: compiling scripts with kotlinc doesn't update the compilation config after refinement
KT-87042 Scripting cache test fails on the kotlin runner
KT-86391 Drop SkipStandaloneScriptsInSourceRoots
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. Wasm
KT-86407 Get rid of '-Xwasm' usages in Kotlin project
KT-83434 K/Wasm: add wasm-wasi stdlib into compiler distribution (dist/)
You can’t perform that action at this time.