2.4.10Оновлено Jul 24, 2026

org.jetbrains.kotlin:kotlin-reflect

Для 2.4.10 нотатки журналу змін ще не знайдено. Показуємо останній випуск із нотатками: 2.4.0.

Виявлено оновлення з безпеки

Цей випуск містить зміни з безпеки. Перегляньте нотатки та оновіться найближчим часом.

2.4.02026-06-03T09:31:47Z
Нотатки до випуску

Analysis API

  • KT-83867 OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ repo
  • KT-83723 [Analysis API] Enable experimental KDoc resolver by default
  • KT-83388 Analysis API: properly support KMP in KotlinPackageProvider
  • KT-65683 Analysis API: Dangling file session creation causes a computeIfAbsent contract violation

Analysis API. Code Compilation

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

Analysis API. FIR

  • KT-68260 K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION with text ::lam1, unexpected element of type: no element found” with illegal callable reference call
  • KT-70896 AA: False positive deprecation warning with override of built-in method in JDK mapped class
  • KT-84711 K2 IDE sometimes loses FIR plugin-generated declarations after file changes
  • KT-84625 Analysis API: collectDesignationPath fails for nested classes inside plugin-generated top-level classes
  • KT-84596 Improve K2 Jooq completion performance
  • KT-84525 KaValueParameterSymbol#getHasSynthesizedName returns false for FirDeclarationOrigin.SubstitutionOverride.DeclarationSite
  • KT-83546 Kotlin analysis reach ClsCustomNavigationPolicy
  • KT-84259 Move CommonDefaultImportsProvider to the frontend independent module
  • KT-82945 Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl
  • KT-71135 AA: exception from sealed inheritors checker when analyzeCopy

Fixes

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

Analysis API. Light Classes

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

Analysis API. PSI

  • KT-84715 removeModifier doesn't delete whitespaces around the removed modifier
  • KT-84564 KtEnumEntry.delete deletes semicolon
  • KT-84781 Use computed properties in KotlinElementTypeProviderImpl
  • KT-83846 Set up guidelines for PSI
  • KT-84135 Deprecate KtSelfType

Analysis API. Providers and Caches

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

Analysis API. Standalone

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

Analysis API. Stubs and Decompilation

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

New Features

  • KT-85239 Streaming version of collectDiagnostics()
  • KT-82519 Automatically recognize the appropriate analysis mode for in-memory file copies based on their content
  • KT-73534 SAM method API
  • KT-82993 Support explicit backing fields in the Analysis API

Fixes

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

Backend. J2KLIB

  • KT-86368 [JKLIB] MetadataJVMModuleDeserializer tries to deserialize all symbols
  • KT-86367 [JKLIB] kotlin.Cloneable built-in class not found
  • KT-84877 [J2KLIB] Remove withKotlinBuiltinsHack present in JKlibIrLinker.kt
  • KT-85846 Tests failing with fake override property missing accessors or backing field
  • KT-85717 IllegalStateException due to already bound symbol
  • KT-86204 [JKlib] Propagate private members from dependecies in the IR tree

Backend. Native. Debug

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

Backend. Wasm

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

New Features

  • KT-84487 "-Xcollection-literals" compiler flag
  • KT-84072 Collection literals: treat visibility of of during resolve correctly
  • KT-83165 Collection literals: treat Deprecated(HIDDEN) operators of reasonably
  • KT-80500 Collection literals: Analyze ConeCollectionLiteralAtom in cases their expected type is not fully known
  • KT-80491 Implement fallback mechanism for collection literals
  • KT-80490 Implement overload resolution mechanism for collection literals
  • KT-84298 K2: Generate IR for Companion Blocks & Extensions
  • KT-83765 Make -Xsuppress-version-warnings have a diagnostic ID
  • KT-84484 Companion Extensions Analysis & Resolution
  • KT-84199 Implement DontMakeExplicitNullableJavaTypeArgumentsFlexible feature
  • KT-84319 Add JVM target bytecode version 26
  • KT-84297 Serialize & Deserialize Companion Block Declarations & Extensions to/from Metadata
  • KT-84288 Companion Blocks Analysis & Resolution
  • KT-84286 Parse Companion Blocks & Extensions
  • KT-84292 Enforce Companion Blocks & Extensions Language Feature during Resolution
  • KT-84291 Companion Blocks & Extensions Checkers
  • KT-84290 Callable References to Companion Block Declarations & Extensions
  • KT-84287 Build Raw FIR for Companion Blocks & Extensions
  • KT-73256 Implement all meta-target for annotations
  • KT-66344 K1 & K2: False positive WRONG_NUMBER_OF_TYPE_ARGUMENTS in callable reference to inner class member
  • KT-76766 Warning is missing for wrong subclass checking
  • KT-74049 Introduce special override rule to allow overriding T! with T & Any

Performance Improvements

  • KT-84941 Skip linking klibs for generating ObjC headers
  • KT-80367 Reduce memory consumption of DevirtualizationAnalysis
  • KT-84412 iOS release build time dramatically increases with 2.3.20-Beta2 compared to 2.3.10
  • KT-82559 linkDebugTest*X64 tasks are slower for Kotlin 2.3 than for 2.2
  • KT-84095 Improve Unit tail-call optimization to support inline generic functions similar to suspendCoroutine

Fixes

  • KT-77726 Move FirUnusedExpressionChecker to the default checkers list
  • KT-84841 Collection literals: Drop special treatment of when with expected type
  • KT-84732 Collection literals: "Expected FirCollectionLiteralImpl to be resolved" in RHS of equality operator
  • KT-84675 Collection literals: 'Not singleClassifierType superType: TypeVariable(S)' in PCLA
  • KT-84559 @OptIn on collection literal and context-sensitive does not work
  • KT-84547 Collection literals: "Expected expression 'FirCollectionLiteralImpl' to be resolved" in elvis expression
  • KT-80489 Collection literals: experimental version (Frontend)
  • KT-84768 [K/N] switch thread state in org_jetbrains_skia_Canvas__1nDrawPicture to workaround the deadlock
  • KT-52673 Don't report deprecation warning/error on last segments of imports
  • KT-83988 Remove extraneous POP+GETSTATIC Unit for calls of Unit-returning suspend functions
  • KT-77584 Support scripts built from LT in scripting API
  • KT-80113 Consider improving diagnostic messages related to ==/===/is/as
  • KT-85392 Native: concurrency issues in per-file caches
  • KT-83938 Missing Tail call optimization in reference classes returning Unit
  • KT-78432 No-arg constructor should be generated for regular classes with a value class parameter in case of JvmExposeBoxed
  • KT-86130 False positive UNINITIALIZED_ENUM_COMPANION on LV 2.3 and lower
  • KT-84860 False positive UNINITIALIZED_ENUM_COMPANION in enum access with explicit receiver in enum initializer when enum class has a companion
  • KT-86210 Update -Xannotation-default-target CLI parameter doc
  • KT-80590 Drop language version 1.9 for JVM
  • KT-85948 Contracts in 2.4 stdlib is not compatible with 2.3 compiler
  • KT-82123 KDoc: references that goes after markdown blocks don't have links
  • KT-85957 Contract on function is getting discarded if any of effect declarations is unknown
  • KT-84931 Incorrect type nullability in SAM super type in anonymous class-based SAM conversion
  • KT-83766 K2: Wrong sourcePsi is set for SymbolPsiLiteral in SLC for annotation arguments referencing a const val
  • KT-85062 Deprecate language version 2.1
  • KT-79729 Kotlin should warn about orphaned block expressions, e.g. // if () \n { .... }
  • KT-83884 The unused return value checker doesn't report a coercion from reference to Unit
  • KT-85825 Context parameter lambda loses context type when wrapped in nested run blocks
  • KT-37179 false-positive shadowing warning on local and member extension functions in presence of member extension property with invoke operator
  • KT-84366 Invalid name for captured this in bytecode
  • KT-84960 Property contract leaks unsubstituted type parameter in smart cast
  • KT-84281 Standalone typealias-to-object qualifier allows type arguments and has type Unit in this case
  • KT-84280 Standalone Unit qualifier allows type arguments: Unit<Any>
  • KT-84380 Type alias to non-generic class can have (arbitrary number of) type arguments in LHS of ::class
  • KT-84190 Implement basic functionality for returnsResultOf contract
  • KT-83920 False positive "modifier 'value' is not applicable to 'local variable'" with soft keyword in positional destructuring (square bracket) declaration
  • KT-84991 Improve Argument type mismatch diagnostics
  • KT-82216 Sanitize '.kotlin_module' filename
  • KT-85354 checkPsiTypeConsistency: add psi text attachments
  • KT-85479 Improve diagnostic messages for upper bound violations
  • KT-84585 Upper bound violated warning for expansion of type alias in LHS
  • KT-84924 Native: stdlib-cache.lock used by mulitple processes
  • KT-85244 False positive DUPLICATE_BRANCH_CONDITION_IN_WHEN with guard condition
  • KT-85487 Investigate why WrapContinuationForTailCallFunctions does not work in Android Test
  • KT-59633 K2: Implement running AndroidRunner tests with FIR
  • KT-76237 Store File-level annotations in KLIB metadata separately
  • KT-84198 Support multiple embedded .let-like calls with returnsResultOf contract
  • KT-84196 Handle multiple entry/exit points for returnsResultOf functions
  • KT-84195 Handle function references in returnsResultOf
  • KT-85162 Introduce diagnostics to refine numeric types casting
  • KT-80060 False positive REDUNDANT_CALL_OF_CONVERSION_METHOD in case of overloads
  • KT-85289 False-positive smartcast from == with type parameter based variable
  • KT-83890 return-value-checker: false positive "Unused return value of 'context'" on kotlin.context() functions
  • KT-84106 False negative "NON_EXHAUSTIVE_WHEN": "NoWhenBranchMatchedException" at runtime with sealed and platform type
  • KT-84717 Provide information for qualified expressions that might be replaced with context-sensitive simple names in IDE mode
  • KT-38983 Bridges are not generated in interfaces, which leads to counterintuitive behavior of java.lang.reflect.Proxy
  • KT-85005 Consider all: target in the checker of repeatable annotations
  • KT-85210 Enabling -XXLanguage:+IntrinsicConstEvaluation breaks highlighting on some broken code
  • KT-85217 Rework implementation supporting simple-to-suspend function conversion
  • KT-85036 Introduce a proper handling of optional expectation annotations in platform checkers during metadata compilation
  • KT-85086 False-negative JVM_EXPOSE_BOXED_CANNOT_BE_THE_SAME
  • KT-84082 [OPT_IN_USAGE_ERROR] duplicates for destructuring declaration
  • KT-85007 Properly implement special rules for kotlin.Result in @JvmExposeBoxed support
  • KT-74383 Support new callable reference nodes in JVM backend
  • KT-84828 Cleanup JVM backend from the old callable references-related code
  • KT-85006 Refine error messages for INAPPLICABLE_ALL_TARGET diagnostic
  • KT-84296 Support Companion Blocks in CFG
  • KT-85058 Remove final field modification in DescriptorRendererOptionsImpl to prevent warnings on JDK 26+
  • KT-72710 Incorrect behaviour of tail call suspend functions optimization
  • KT-84727 [K/N] Segfault when returning null as generic Int type from dynamic framework
  • KT-83460 Deprecation from @all:Deprecated is not propagated to property accessors/backing fields
  • KT-84859 Skip deprecation phase for generic arguments in qualifier receiver of static call for companion block members and extensions
  • KT-85050 [Swift Export] usage of inline classes with ref types crashes at runtime
  • KT-84983 Type parameter annotations are lost for local functions
  • KT-78800 Investigate FirMissingDependencySupertypeInQualifiedAccessExpressionsChecker
  • KT-73945 K2 IDE: Duplicated inspections for redundant 'open' in interface member
  • KT-84294 Ensure Context Sensitive Resolution works with Companion Blocks & Extensions
  • KT-83904 [Inliner] Inline function overrides an abstract method with a default value in an inheritance chain
  • KT-81675 Improve message for CONTEXTUAL_OVERLOAD_SHADOWED
  • KT-84994 Rework optimization for companion extension resolution
  • KT-81598 incorrect type mismatch error messages for generic calls with explicit type arguments
  • KT-84185 Type arguments are wrongly allowed in receivers of static calls
  • KT-83441 False positive: REDUNDANT_CALL_OF_CONVERSION_METHOD
  • KT-83587 K2: Missing null-check when using == on Short! and Byte! platform types
  • KT-84405 ClassCastException with conflicting projection on the LHS of a callable reference
  • KT-84866 Reserve CoroutineContext as context parameter for future use
  • KT-65239 K2: Render FIR declaration instead of IR-based descriptors in IR signature clash diagnostics
  • KT-84743 Type parameter declared as 'in' can be used in 'out' position in DNN & flexible types
  • KT-84720 "Unused return value" is not reported inside used if/when multi-statement blocks
  • KT-84310 No Warning Emitted For Deprecated Java Enum Value Usage
  • KT-81871 Drop context receiver tests
  • KT-84714 KJS: Forbid exporting properties with context parameters
  • KT-80701 Native: -Xbinary=cCallMode is not integrated with compiler caches
  • KT-84000 Native: test pre-codegen inliner on CI
  • KT-57557 Implement getAndSet for AtomicNativePtr via getAndSetField intrinsic
  • KT-84352 createUninitializedInstance generates invalid LLVM for value classes
  • KT-84234 Rename CONST_VAL_WITHOUT_INITIALIZER diagnostic for properties with EBF
  • KT-84411 Confusing message for the class reference of the inner class with the type parameter
  • KT-84594 EBF is smartcasted in inline function with @PiblishedApi
  • KT-83989 Update coroutines-codegen.md after changes of Unit tailcall optimization
  • KT-84452 EBF is smartcasted in the default argument with noinline modifier
  • KT-80925 Replace "useless" in diagnostic messages
  • KT-83646 Native: don't use sun.misc.Unsafe in ByteArrayStream when running on JVM 24+
  • KT-82122 Prohibit arbitrary placement of type parameters in callable reference LHS
  • KT-82574 Fixation: consider preferring EQUALS constraints to LOWER ones
  • KT-83564 Consider dropping HAS_PROPER_NON_NOTHING_NON_ILT_LOWER_CONSTRAINT
  • KT-84213 Flaky incremental compilation behaviour with EBF
  • KT-84133 Adopt initInstance to handle value classes
  • KT-24840 Square bracket escaping in KDoc
  • KT-84167 Invalid type references with type arguments in package parts compile without diagnostics
  • KT-84209 False negative ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT on context parameters of function types
  • KT-83354 Wrong position for lambda context type error
  • KT-84206 Remove forcesPreReleaseBinaries = true from ExplicitBackingFields
  • KT-83524 An anonymous function with named parameters throws FileAnalysisException
  • KT-84155 K2: NO_CONTEXT_ARGUMENT caused by stale value in NewConstraintSystemImpl.hasContradictionInForkPointsCache
  • KT-83829 False-negative INVALID_DEFAULT_FUNCTIONAL_PARAMETER_FOR_INLINE
  • KT-83842 KIAEWA: Exception in expression checkers for @OptIn(markerClass=[…])
  • KT-84045 Evaluate default arguments of annotation's parameters using FIR evaluator
  • KT-83987 Refactor/fix CoroutineCodegen.isReadOfInlineLambda()
  • KT-83772 Create a language feature for wrapContinuationForTailCallFunctions
  • KT-84061 K2: IllegalStateException: FirResolvedNamedReference expected on plusAssign for array element with unresolved initializer inside buildList
  • KT-83985 Drop arrayOf check from EscapeAnalysisChecker after bootstrap update
  • KT-78885 Current frame disappears from stack trace when debugging inline-heavy suspend code
  • KT-78727 Split KonanConfig into NativeFrontendConfig and NativeBackendConfig
  • KT-83755 Support rendering of evaluated and original arguments in FirAnnotationRenderer#renderAnnotation
  • KT-17763 Inner class constructor has incorrect generic signature in the bytecode
  • KT-83625 Initialize annotations on Java record components
  • KT-83795 Compiler crash on suspend lambda as default parameter of inline function
  • KT-72880 Calls with incorrect VarHandle method signatures are generated with -Xjdk-release being used
  • KT-67809 Native: remove support for non-opaque LLVM pointer types
  • KT-82148 Suspend function returns the wrong value and not Unit
  • KT-55559 JVM: ClassCastException with Unit returning suspend function and tail-call Non-Unit returning suspend function and callable reference
  • KT-70995 Kotlin/Native: Treat all @HasFinalizer types as escaping in Escape Analysis
  • KT-83903 'when' with 'val' does not take previous nullability check into account
  • KT-83952 StackEntries for tail-call suspend functions have internal names for classes instead of FQ names
  • KT-83377 Investigate usage of declarationSymbols in resolve of local user type
  • KT-83770 Smartcast doesn't work for an explicit backing field with multiple intersections
  • KT-83650 Native: don't use sun.misc.Unsafe in CastsOptimization when running on JVM 24+
  • KT-83754 KotlinIllegalArgumentExceptionWithAttachments for explicit backing field with annotated type
  • KT-83756 Error while resolving FirNamedFunctionImpl with explicit backing field and implicit type
  • KT-83563 Consider dropping fixation readiness REIFIED
  • KT-83713 K2: No error with external primary constructor parameter
  • KT-83104 K2: No error with external enum entry
  • KT-83696 Consider dropping HAS_NO_RELATION_TO_ANY_OUTPUT_TYPE readiness
  • KT-83308 K/N: "IllegalArgumentException: An interface expected but was Any"
  • KT-81590 Switch latest stable version in Kotlin project to 2.4
  • KT-66701 K2: Java interface method override via Kotlin class rejected
  • KT-56563 Inference within if stops working when changing expected type from Any to a different type
  • KT-261 Can't specify function return type in a subclass

New features

  • c1bbb47 Started inferring the stability of all interfaces to be
  • Stability.Unknown, expect for those explicitly marked as known
  • stable.

Fixes

  • b/511102714 Made the default stability of non-final classes Unknown
  • instead of Stable
  • b/509945632 Do not generate groups in inline lambdas without @Composable calls.
  • b/504284805 Fix indentation for generated proguard mappings.
  • b/422193018 Fix applier inference for nested composables of different types.
  • b/497751457 Prevent a $stable property from being added to any object.
  • b/427530633 Do not infer a getter call as static across when it is defined in another file.
  • b/427530633 Started using Stability.Runtime more broadly. Now, when an
  • element depends on the stability of an internal or public class
  • defined in another file, the element will no longer infer the
  • stability of that class and will depend on the runtime stability of
  • that class instead.

IR. Actualizer

  • KT-84293 Expect Actual Matching for Companion Block Declarations & Extensions

IR. Inlining

  • KT-73708 Use some marker in KLIBs produced with IR inliner
  • KT-85605 "Local delegated property has not delegate" exception when calling inline function containing delegated property in a lambda from within an inline lambda
  • KT-84112 Intra-module inliner: No container found for type parameter 'T'
  • KT-84416 High memory usage for IrFileEntry after enabling inliner
  • KT-75396 [IR] Pass LoweringContext to inline and serialization checkers

IR. Interpreter

  • KT-86083 Create a new CLI flag to enable IntrinsicConstEvaluation feature
  • KT-80804 Enable constant evaluation for more standard library
  • KT-83514 Get rid of EvaluatedConstTracker
  • KT-84561 K2: Convert evaluated constant by default in FIR2IR

IR. Tree

  • KT-79663 KLIB-based compilers: Promote partial linkage to "always on"
  • KT-76934 Drop old IR parameter API
  • KT-72950 Partial Linkage: Change the semantics of -Xpartial-linkage-loglevel
  • KT-74763 Build: refactor ':compiler:backend.common' and ':compiler:ir.backend.common' modules
  • KT-76634 PL: Don't report warnings in cases that don't lead to runtime errors
  • KT-79801 KLIBs: Implement checks for symbols loaded by the compiler on 1st and 2nd phases
  • KT-72812 IR serializer: Don't serialize any cinterop fake overrides to Klibs

Fixes

  • KT-86017 KClass.constructors returns all java.lang.String constructors for mapped type kotlin.String
  • KT-85550 Reflection: KParameter.type.classifier returns boxed KClass for non-nullable primitive types
  • KT-82659 Reflection: IAE on a call to a Java inner class constructor
  • KT-85999 Reflection: ByteArray KType incorrectly has type arguments in Kotlin 2.4.0
  • KT-85285 Reflection: InvocationTargetException (UInt cannot be cast to Integer) when reading UInt annotation property via getter
  • KT-85091 Reflection: "KotlinReflectionInternalError: Unsupported parameter owner: null" on attempt to get annotations of annotation constructor parameter
  • KT-85322 Reflection: KotlinReflectionInternalError when loading ProGuard-obfuscated code compiled before 2.3.20
  • KT-84679 Reflection: confusing "Kotlin reflection is not yet supported for synthetic Java properties" for reference to Java enum's entries property
  • KT-85025 KTypeParameter instances not equal to each other for the same type parameter in member specialization KFunction
  • KT-84796 Reflection: mutable flexibility is lost for K1-based types in KClass.allSupertypes
  • KT-84494 Reflection: Java Collections have differences in kotlin supertypes from old K1 reflection
  • KT-84382 Reflection: raw list in Java type is transformed to List instead of MutableList
  • KT-84492 Reflection: supertypes of raw list in Java type are not raw
  • KT-84076 Reflection: list in Java type is transformed to flexible instead of mutable list
  • KT-14990 'callBy' for inner class constructor fails at run-time
  • KT-82881 Reflection: update KCallable.callBy kdoc to mention vararg parameters
  • KT-84075 Reflection: wildcard in Java type is transformed to out Any! instead of star projection

New Features

  • KT-51292 Proposed behavior of @JsExport on interfaces and classes with companion objects
  • KT-21626 Support ES2015 syntax in js function
  • KT-83451 K/JS: Support ES6 object destructuring in js() calls
  • KT-83452 K/JS: Support ES6 array destructuring in js() calls
  • KT-82128 [K/JS] Allow named companion objects in exported interfaces

Performance Improvements

  • KT-77646 KJS: optimize Byte/Char/Short/Int/Float/DoubleArray.copyOf(newSize)

Fixes

  • KT-84332 KJS: Reconsider disallowing nested classes in exported interfaces
  • KT-72198 KJS: ES2015 interop with ValueClass
  • KT-84090 Save variance in the generated TypeScript
  • KT-56618 KJS/IR: Support external interfaces from common code (via annotation?)
  • KT-85038 Kotlin/JS: @JsExport on sealed external interface with companion object causes NPE
  • KT-81787 KJS: Value class type lost when using JsExport on interface
  • KT-85411 Fix conversionCombinations.kt tests for the JS target
  • KT-83701 Escaped identifier with a quote cause an invalid d.ts file
  • KT-68281 K/JS: Order of classes in initMetadataForClass are not deterministic
  • KT-15101 js: Same callable references are not equal
  • KT-84810 [K/JS] Callable references operator produces duplicates
  • KT-85323 JsClass optimization doesn't work well for primitives
  • KT-60651 KJS / ES6: init block and constructor are not called
  • KT-84601 K/JS: KClass<> reference doesn't work in JS counterside as a new target in ES6 mode
  • KT-85099 KotlinJS: JsPlainObject from the js-plain-objects plugin does not respect overrides
  • KT-84615 KJS: Forbid @JsStatic on extension functions/properties
  • KT-84002 Bump version from 2.3 to 2.4 for JsNoRuntime-related annotations
  • KT-84474 Kotlin/JS: Long::class becomes null when passing the value to a generic function with -Xes-long-as-bigint
  • KT-84647 K/JS: Class expressions are not supported in js() calls
  • KT-84458 KJS: Fully support @JsStatic in Analysis API-based TypeScript Export
  • KT-84454 KJS: Generate protected overrides for abstract class inheritors in Analysis API-based TypeScript Export
  • KT-84490 KJS: Fix mutability of exported top-level variables Analysis API-based TS export with ES modules
  • KT-84459 KJS: Support default exportability in Analysis API-based TypeScript Export
  • KT-84456 KJS: Support deprecation comments in Analysis API-based TypeScript export
  • KT-82264 Implement exporting classes in Analysis API-based TypeScript Export
  • KT-84233 K/JS: exported collection views doesn't provide Iterator methods
  • KT-82127 Remove generator-based coroutines intrinsics after bootstrap
  • KT-84003 Remove @Suppress from JsReference after bootstrap
  • KT-44753 KJS / IR: @JsExport non-public fun exports nothing
  • KT-83992 Drop K1 JS entry point and IC code
  • KT-83722 K/JS: NON_EXPORTABLE_TYPE in the exported file with name-based destructuring declarations
  • KT-69353 KJS / d.ts: Kotlin does not export base collection classes along with their mutable collection counterparts

Performance Improvements

  • KT-84415 Ineffective hashMap usage in IrSymbolDeserializer
  • KT-80903 [Klib] Optimize size of serialized IR element coordinates
  • KT-84451 [Klib] Use varint encoding for element sizes in IR tables
  • KT-84400 [Klib] Optimize size of serialized IrExpression
  • KT-79675 K/N: Uncached ZipFIleSystemAccessor

Fixes

  • KT-78188 [JS] Klib backward and forward compatibility testing
  • KT-82471 [K/N] Klib forward compatibility testing with codegen tests
  • KT-83929 Add tests for IR signatures of static properties and functions
  • KT-81411 Merge KonanLibrary to KotlinLibrary to simplify adoption of KlibLoader in the Kotlin/Native compiler
  • KT-82469 [K/N] Klib backward compatibility testing with codegen tests
  • KT-84511 [Native][Tests] Improve descriptor-related logic in NativeCliBasedFacades.kt
  • KT-85017 [PL] Add test for added internal abstract fun
  • KT-84488 Export in previous version: Prohibit using on 2nd stage
  • KT-85149 Klib Dump parser: fix parsing of qualified names adjacent to vararg symbol
  • KT-85129 Klib Dump parser: fix enum names parsing
  • KT-84684 Remove UserVisibleIrModulesSupport from IR linker
  • KT-84820 [K/N] Load libcallbacks and libllvmstubs from configured path
  • KT-84819 K/N: Segfault on xctest when using internal abstract on a parent class
  • KT-83807 Restore non-nullability of symbols not available in 2.3.0 stdlib
  • KT-83012 Export in previous version (Native): add the checker for incompatible Kotlin stdlib/compiler pairs
  • KT-84341 Fix detection of box function in forward compatibility tests
  • KT-83748 Bump versions in JS Klib compatibility testing
  • KT-83724 Fix & unmute stdlib & kotlin-test compatibility tests
  • KT-83151 Restore non-nullability of symbols available since 2.3

Language Design

  • KT-14663 Support having a "public" and a "private" type for the same property
  • KT-80852 Version overloading: generate overloads corresponding to different versions of a function whose parameters are annotated with @IntroducedAt()
  • KT-73821 Decide the future of the ForbidUsingSupertypesWithInaccessibleContentInTypeArguments language feature
  • KT-85120 @IntroducedAt on expect parameter cannot be properly actualized

New Features

  • KT-84921 Add 'returnsResultOf' contract to appropriate declarations in the stdlib
  • KT-73111 No UInt.toBigInteger() and ULong.toBigInteger() conversion function
  • KT-78499 Add isSorted() extension to standard library

Performance Improvements

  • KT-70750 Kotlin's Regex implementation on Kotlin Native is painfully slow
  • KT-67731 Regular expressions works slowly on iOS
  • KT-80772 K/N: Regex: improve look behind matching performance for "fixed-length" patterns

Fixes

  • KT-83525 Introduce support window for Kotlin Stdlib versions
  • KT-86027 Hide returnsResultOf under a separate flag and remove its usages from kotlin stdlib
  • KT-84818 [Regex] Native and Wasm: Decomposed Unicode character are incorrectly process with CANON_EQ flag
  • KT-83131 Testing: assertNull has no contract
  • KT-85122 Deprecate kotlin.io.readLine with WARNING
  • KT-84970 Deprecate AbstractCoroutineContextKey and associated API
  • KT-81395 Stabilize kotlin.uuid.Uuid API
  • KT-85127 Remove kotlin.test.assert*NoInline hidden functions
  • KT-84264 Add appropiate @SinceKotlin to new contracts
  • KT-84697 Update the list of JDKs the stdlib is tested with
  • KT-83956 Clarify joinToString behavior when the receiver is empty
  • KT-61180 kotlin.ArrayIndexOutOfBoundsException on Native with Regex, works on Android/JVM though
  • KT-84871 compareValues, nullsFirst, nullsLast return 0 for -0.0 and 0.0 on JS
  • KT-84691 Add samples for toBigInteger extension functions
  • KT-84372 PathExtensionsTest.copyToRestrictedReadSource fails with JDK22+
  • KT-84369 StringJVMTest.formatter fails with JDK13+
  • KT-84613 String.toDouble() produces incorrect results on Wasm for large exponent values
  • KT-76905 Add samples for kotlin.math functions
  • KT-84355 Reduce the number of iterations for the removeHashAtStressTest
  • KT-83962 List.listIterator(Int) KDoc's exception condition is incorrect
  • KT-83958 Improve enumValueOf documentation
  • KT-83953 Add samples for kotlin.time extension functions
  • KT-83951 Rewrite stdlib samples to use assertPrints instead of assertEquals

New Features

  • KT-78686 LLVM update Q1 2026
  • KT-84826 Bump the minimum deployment version of Apple targets

Fixes

  • KT-84686 Removing x64 in gradle file breaks builds on certain platforms
  • KT-71278 Enable Concurrent Mark and Sweep (CMS) GC by default
  • KT-81748 Create a phased CLI for Native klib compilation
  • KT-84733 LLVM Update: rebase LLVM once the upstream stabilizes
  • KT-83914 Native: when loading JNI libraries, java.library.path can contain system directories with libraries with same names
  • KT-83133 Native: don't use sun.misc.Unsafe in the compiler and cinterop when running on JDK 25+
  • KT-83648 Native: don't use sun.misc.Unsafe in NativeMemoryAllocator when running on JDK 25+
  • KT-83647 Native: don't use sun.misc.Unsafe in nativeMemUtils when running on JDK 25+
  • KT-82674 Native: dyld[...]: Symbol not found: _mach_vm_reclaim_update_kernel_accounting_trap on macOS
  • KT-82879 Native: DLLs in the Windows distribution are not reproducible
  • KT-83283 Test Kotlin/Native performance tests compilation in Gradle 9.0
  • KT-82872 Native: make Kotlin/Native distribution compiler cache reproducible for Linux
  • KT-82871 Native: cstubs.bc for android_* platform libraries contain absolute paths in string literals
  • KT-34467 Cinterop: Clang crashes when -fmodule-map-file is specified (SIGSEGV)

Native. Build Infrastructure

  • KT-85803 K/N: build not reproducible - platformLibs caches
  • KT-84503 Duplicate META-INF/serialization.shadow.kotlin_module entry in kotlin-native-compiler-embeddable jar
  • KT-85191 K/N: Dependency cycle in libclangInterop
  • KT-84937 Kotlin/Native: non-reproducible .bc for mingw_x64
  • KT-80072 Make Kotlin/Native distribution reproducible
  • KT-81771 konanc failing to load native libraries

Native. C Export

  • KT-61748 KMM- warnings when compiling native targets (Kotlin 1.9.0)

Native. C and ObjC Import

  • KT-85705 Swift-generated headers with external_source_symbol produce duplicate enum declarations
  • KT-82379 Introduce lenient modular cinterop mode
  • KT-81695 Repeated typedefs across multiple clang modules break cinterop with -fmodules
  • KT-82766 K/N: external_source_symbol clang attribute causes cinterops with -fmodules to downgrade to forward declaration
  • KT-84023 Modular import fails with an obscure error when the failing module is not the last one
  • KT-81433 Generate C-interop KLIBs in previous ABI version in Kotlin 2.4.0
  • KT-82402 Inter-cinterop type reuse with -fmodules uses forward declaration when an actual declaration is available
  • KT-82377 Fix ObjC forward declaration handling in modular cinterops
  • KT-81752 Native: investigate and remove filtering of -fmodule-map-file in cinterop
  • KT-83814 Native: includedHeaders= in platform libs manifests is not reproducible when modules= is used

Native. ObjC Export

  • KT-86068 Native: add support for ObjCEnum.EntryName
  • KT-85171 Red Swift code in Native UI Multiplatform App project from Template Gallery

Native. Runtime

  • KT-84331 Kotlin/Native: RunLoopFinalizerProcessor needs initialized runtime before it has any jobs

Native. Runtime. Memory

  • KT-83670 K/N: gc concurrent mark phase assert Failed to terminate mark in STW in a single iteration
  • KT-80770 Kotlin/Native: revise ObjC refcount methods called in runnable state
  • KT-84640 Native: comment for kotlin.native.runtime.SweepStatistics misses the word "number"

New Features

  • KT-84361 [Swift Export] Preserve TypeInfo on StateFlow
  • KT-85130 [Swift Export] Preserve TypeInfo on SharedFlow
  • KT-82705 Support convenient export of Flow types in Swift export
  • KT-66821 Swift Export: value class
  • KT-82598 Swift Export: Custom name translation
  • KT-69431 Swift export: inline functions
  • KT-84263 [Swift Export] Context Parameters on Functional Types

Fixes

  • KT-80305 Support coroutines in Swift Export
  • KT-85380 [Swift Export] Attempt to bridge unbridgeable type: SirUnsupportedType
  • KT-84317 Swift Export: "protocol members can only be marked unavailable in an '@objc' protocol" in generated code for kotlinx-coroutines
  • KT-85704 [Swift Export] cannot infer generic type of function returning a generic type
  • KT-85711 [Swift Export] suspend function returning non-null generic fails to compile
  • KT-85715 [Swift Export] generic interface in typealias fails to compile
  • KT-85714 [Swift Export] unsupported input type param in functional receiver
  • KT-83743 Swift export: type arguments expected for generic typealias
  • KT-85458 [Swift Export] value of a closure returning a closure generates invalid swift code
  • KT-85521 [Swift Export] conflicting overloads for generated Kotlin bridges
  • KT-85293 SwiftExportCoroutinesWithResultValidationTest.testCoroutines fails after cross-push
  • KT-84515 [Swift Export] suspend functional parameter generates invalid Swift code
  • KT-82282 Swift Export: suspend function returning Array leads to incompilable code
  • KT-81540 Swift Export: using interface in Set generates incompilable code
  • KT-66873 Swift Export: suspendable contravariant functional type
  • KT-85272 [Swift Export] conflicting imports for kotlinx-coroutines
  • KT-85163 [Swift Export] Flow of Unit values crashes
  • KT-85159 [Swift Export] Flow is not properly being cancelled
  • KT-84226 [Swift Export] Flow in contrvariant position is not allowed
  • KT-84485 [Swift Export] Flow with nullable elements
  • KT-83730 Generated Swift switch on bridged Kotlin enum crashes with fatalError
  • KT-85016 [Swift Export] it's not OK to expose Flow as AsyncSequence
  • KT-84979 Swift Export Nullability: Unit
  • KT-83821 Swift Export: suspend function returning Nothing leads to incompilable code
  • KT-81593 Swift Export: suspend function returning Unit leads to incompilable code
  • KT-84359 [Swift Export] nested functional type with Unit parameter
  • KT-84358 [Swift Export] functional type with Unit parameter
  • KT-84356 [Swift Export] functional type with single Unit parameter
  • KT-83567 Swift Export: "IllegalStateException: Internal compiler error: doesn't correspond to any C type: kotlin.Unit": invalid closure is generated for suspend function which returns Unit
  • KT-83397 [Swift Export] Functional return type with Unit parameter is emitted as invalid void parameter list ('void' must be the first and only parameter)
  • KT-84243 [Swift Export] Returning value of suspending functional type from suspending function yields invalid code
  • KT-82568 Swift Export: Context Parameters
  • KT-83398 [Swift export] converting non-escaping parameter to generic parameter may allow it to escape
  • KT-83389 Swift Export: "ClassCastException" caused by suspend fun throwing Error
  • KT-83116 Swift export generates bridges incompatible with language version 2.4
  • KT-83749 [Swift Export] varargs and List uses the same mangling on bridges
  • KT-83712 Swift Export ignores internal setter and generates invalid bridge code

Tools. BCV

  • KT-83476 Use Maven publications as dump input [ABI Validation]
  • KT-78341 Outer scope's visibility is not considered when dumping const vals [ABI Validation JVM]
  • KT-78305 Private constructor is written in ABI dump
  • KT-82724 BCV incorrectly reports generated @JvmOverloads declarations as public
  • KT-78367 Internal constructor infiltrated into a dump
  • KT-78366 Protected method of enum should not be included into a dump

New Features

  • KT-83794 Make BTA JVM Compiler Arguments Type-Safe
  • KT-80963 BTA: Add structured information about reported messages to KotlinLogger
  • KT-73037 Add input (like compiler arguments) changes tracking
  • KT-82791 BTA: introduce an option for ExecutionPolicy.WithDaemon to control the daemon log files path
  • KT-84453 SSoT: provide a unified way to convert Enums to Strings

Fixes

  • KT-86395 [BTA] forward-compatibility violation: NoSuchMethodError on JvmSnapshotBasedIncrementalCompilationConfiguration. breaks IC
  • KT-80679 Add support for the Build Tools API [ABI Validation]
  • KT-85294 BTA: Replace hardcoded @since in KDoc with dynamic versioning
  • KT-85035 Don't expose X_COMPILER_PLUGIN_ORDER in CommonCompilerArguments
  • KT-85391 [BTA] Hide boilerplate required to load isolated BTA implementation
  • KT-85447 BTA: deprecate JvmCompilerArguments.contains (warning)
  • KT-82390 [BTA] Remove deprecated non-builder factory functions and classes
  • KT-84850 Make kotlin-home type safe
  • KT-84867 Make Xphases-to-* arguments type-safe
  • KT-85094 Make Xwarning-level type safe
  • KT-85205 Make Xdump-perf type safe
  • KT-85204 Make Xdump-directory type safe
  • KT-84906 Make enum-based common arguments type-safe
  • KT-84322 Make X_PROFILE BTA compiler argument type safe
  • KT-84825 Make script-templates type safe
  • KT-84546 Replace raw string path arguments with type-safe PathListType
  • KT-84705 Make Xjdk-release to type-safe
  • KT-85167 Make Xjsr305 type safe
  • KT-85069 Make Xnullability-annotations type safe
  • KT-84738 Make Xscript-resolver-environment type safe
  • KT-85082 Make Xignored-annotations-for-bridges type safe
  • KT-84324 Make X_ADD_MODULES BTA compiler argument type safe
  • KT-84338 Make enum BTA JVM compiler argument type safe
  • KT-84325 Make JVM_DEFAULT BTA compiler argument type safe
  • KT-75837 IC: Shrunk classpath snapshot name is hardcoded
  • KT-84228 BTA: Improving KDoc generation for Enums and Custom Types
  • KT-85738 BTA forward compatibility: NoSuchFieldError on X_IGNORED_ANNOTATIONS_FOR_BRIDGES when API 2.3.0 is used with impl 2.4.0
  • KT-84436 Сompiler warnings are missing under Gradle -q option with -Werror
  • KT-85072 AbstractMethodError when calling discoverScriptExtensionsOperationBuilder with pre-2.4.0 compiler
  • KT-84523 Add more forward compatibility tests
  • KT-84187 [BTA] Add more build operation immutability tests
  • KT-84219 [BTA] Add additional tests on basic metrics collection
  • KT-83781 Add additional tests for KT-79975 (BTA ability to cancel build operations)
  • KT-85092 [BTA] Update BTA Backward Compatibility Testing: 2.3.20-RC → 2.3.20
  • KT-85439 BTA: Warn or error when incompatible compiler arguments are passed via applyArgumentStrings
  • KT-75540 Build Tools API Should Reject -Xbuild-file Argument
  • KT-85333 Add BTA tests for BACKUP_CLASSES and KEEP_IC_CACHES_IN_MEMORY behavior after compilation error
  • KT-84770 BTA: default options cannot be retrieved from many option objects
  • KT-85224 Add @ExperimentalArgumentApi to compiler argument DSL types
  • KT-84953 Fail TC build if generated files change
  • KT-85189 Refactor path argument types: flatten hierarchy and improve naming
  • KT-82335 Promote the deprecation level for BTA prototype to the ERROR level
  • KT-84984 Runtime NPEs caused by null return in CompilerMessageRenderer implementation
  • KT-84015 Introduce detection of custom script names to new BTA API
  • KT-83972 BTA: use isolated classloader for loading the BTA implementation in integration tests
  • KT-84181 More verbose warning when CRI is enabled without using BTA
  • KT-84449 Platform-Specific File.pathSeparator Hardcoded During SSOT Generation
  • KT-84249 Fix hardcoded path separator in -Xprofile argument to support absolute paths on Windows

Fixes

  • KT-84609 Remove Nullability from Array-based CLI Compiler Arguments
  • KT-85414 Argument DSL: delimiter = KotlinCompilerArgument.Delimiter.PathSeparator generates invalid Kotlin code
  • KT-85004 Set proper since version for language feature about property annotation targeting
  • KT-84220 Enable Context Parameters by default in LV 2.4
  • KT-84188 Create CLI argument for explicit context parameters
  • KT-84999 Don't poison binaries with ImplicitJvmExposeBoxed language feature
  • KT-85001 Convert ImplicitJvmExposeBoxed language feature to analysis flag
  • KT-83341 Don't use the extension point registration mechanism from Intellij for K2 extensions
  • KT-56850 Separate K/Wasm CLI entry point from K/JS CLI
  • KT-84132 CLI: regression in deduplication of same-value arguments
  • KT-83261 No error if pass an arbitrary string to a CLI argument that changes language features
  • KT-83172 Boolean CLI argument for a language feature with explicit false value is allowed but has no effect

Tools. CLI. Native

  • KT-82482 Compiler plugins are not propagated to frontend environment in ONE_STAGE_MULTI_MODULE Native mode

Tools. Compiler Plugin API

  • KT-85969 KtLint incompatible with Kotlin 2.4.0-Beta2 (parsing errors / Extensions storage issue)
  • KT-85133 Drop deprecated K1 specific methods from IrPluginContext

New Features

  • KT-66808 PowerAssert: Add support for third-party assertion libraries
  • KT-69036 Power-Assert indent multiline values
  • KT-75656 PowerAssert: Create runtime library

Fixes

  • KT-83931 Power Assert: Compilation fails when using the metro plugin
  • KT-86170 PowerAssert: Stabilize runtime ABI for initial release
  • KT-85250 PowerAssert: Automatically add runtime library dependency
  • KT-75873 PowerAssert: display callable reference value under '::'
  • KT-85151 PowerAssert: Surround string and character values with quotes
  • KT-85184 PowerAssert: Annotation may only be used on expect and non-override functions
  • KT-85178 PowerAssert: Crash when transforming IrCall without CallableId
  • KT-66807 PowerAssert: Improve output diagram formatting
  • KT-85089 PowerAssert: Wasm CompileError when using PowerAssert.explanation
  • KT-75266 PowerAssert: arrayOf() isn't displayed on the diagram
  • KT-67332 "IndexOutOfBoundsException: Cannot pop operand off an empty stack." caused by function reference
  • KT-83330 Lombok. An add methods with @Singular annotation in Java record doesn't work from kotlin
  • KT-83204 Lombok. If @Data and @NoArgsConstructor are used together, then the constructor from @Data shouldn't be available
  • KT-83336 Lombok. IllegalAccessError for constructor if @Value and @Builder are applied and used from another package
  • KT-83352 Lombok. FileAnalysisException when @SuperBuilder is used with @Builder
  • KT-83325 Lombok. Constructor with parameters is unavailable for a class with @Builder

Tools. Compiler plugins. Serialization

  • KT-85963 IncompatibleClassChangeError: Expected non-static field $stable on deserialization of @Serializable data class when Compose compiler plugin is applied before Serialization plugin
  • KT-85554 Serialization: "IndexOutOfBoundsException" on property generated by Compose plugin

New Features

  • KT-76197 Write Kotlin compiler warnings and errors to Problems API

Fixes

  • KT-86346 Compiler warnings printed twice in console — once as w: and again as Gradle "Problem found:" block
  • KT-69701 Gradle: module name is passed inconsistently to different types of compilations
  • KT-85373 Compile against Gradle API 9.5.0
  • KT-85374 Run tests against Gradle 9.5.0
  • KT-80448 Remove internal & deprecated API from ExtrasProperty.kt
  • KT-69830 Support Gradle com.gradle.develocity plugin in KGP
  • KT-85509 Remove deprecated API in the 2.4.0 release
  • KT-83858 Compatibility with Gradle 9.4.0 release
  • KT-84144 Bump the minimal supported AGP version to 8.5.2
  • KT-85562 Failed to invoke getCompilation on org.jetbrains.kotlin.gradle.tasks.KotlinNativeLink_Decorated on project import
  • KT-85590 Gradle: cannot create task MainKt.main() due to missing defaultSourceSetName
  • KT-74451 Deprecate access to Kotlin source sets in Android extension
  • KT-82960 Remove deprecated enableKotlinToolingMetadataArtifact in 2.4.0
  • KT-84377 Broken package-list file on KGP/CMPG documentation page
  • KT-85412 Module name is not sanitized with older Kotlin compiler versions
  • KT-65566 Use the new ConfigurationContainer consumable method to create consumable configurations
  • KT-83775 Migrate KGP functionalTest to junit5
  • KT-85433 Gradle: deprecate non-BTA JVM compiler execution mode
  • KT-83860 Run tests against Gradle 9.4.0
  • KT-75004 KGP: improve messaging when multiplatform tasks are disabled on incompatible OSes
  • KT-83859 Compile against Gradle API 9.4.0
  • KT-82847 Raise deprecation to error for LanguageSettings.enableLanguageFeature DSL
  • KT-84053 Deprecate support for Gradle 7.6-8.13 versions
  • KT-78659 Remove 'kotlin-android-extensions' plugin id
  • KT-79924 Make enableKotlinToolingMetadataArtifact deprecated
  • KT-82933 Add a tab with results in TC
  • KT-83130 [ToolingDiagnostic] incorrect problem ID formatting for acronyms and undefined locations in Gradle8 problems reports
  • KT-84143 Reduce usage of Project in Tooling Diagnostics
  • KT-83126 Remove out-of-process compilation mode
  • KT-80466 Gradle: remove getPluginArtifactForNative()
  • KT-81834 Compile against AGP 8.13 API
  • KT-77498 Test .swiftmodules more accurate in SwiftExportIT
  • KT-84141 Add convenient host check
  • KT-83592 Enable AFU in FusStatisticsIT.testKotlinxPlugins test after next AFU release

Tools. Gradle. BCV

  • KT-86268 ABI validation tasks fail with Unsupported platform toolchain type when using kotlin.compilerVersion pointing to an older compiler after BTA migration in 2.4.0-Beta2
  • KT-80685 Simplify Gradle DSL [ABI Validation]
  • KT-83486 Create tasks only if abiValidation block called explicitly [ABI Validation]
  • KT-82410 Remove word legacy from DSL [ABI Validation]
  • KT-83999 ABI validation: Groovy DSL doesn’t deprecate included/excluded filters, allowing four filter configs instead of two
  • KT-84461 Remove the use of abi-tools-api from KGP [ABI Validation]
  • KT-84100 Add Deprecated annotation to legacyDump block and property [ABI Validation]
  • KT-84365 Gradle plugin of abi-validation should precisely define output files
  • KT-83898 Classes produced by JvmMultifileClass ignore filters

Tools. Gradle. Compiler plugins

  • KT-85343 Update Compose Gradle plugin deprecations before 2.4

Tools. Gradle. Dokka

  • KT-82984 Support AGP9 in Dokka Gradle Plugin

Tools. Gradle. JS

  • KT-81037 K/JS, Wasm: Remove deprecated internal JS functions
  • KT-81034 K/JS, Wasm: Remove deprecated public constructors of JS declarations
  • KT-81030 K/JS, Wasm: remove deprecated NodeJsExec.create
  • KT-81036 K/JS, Wasm: Remove deprecated ExperimentalDceDsl
  • KT-81040 Gradle: Remove deprecated Kotlin/JS tasks constructors
  • KT-64275 Gradle: remove deprecated symbols related to the legacy JS target
  • KT-84753 Deprecate KotlinJsCompilerType and KotlinProjectExtension methods using it
  • KT-81033 K/JS, Wasm: Remove deprecated wasm declarations in "js" package

Fixes

  • KT-84767 K/N: associateWith triggers warning about friend-modules libs not included in -library argument
  • KT-82265 Remove Android source set layout v1
  • KT-82230 Cleanup 'org.jetbrains.gradle.apple.applePlugin' plugin usage
  • KT-81117 With android.builtInKotlin=true (AGP 9.0), using kotlin-multiplatform plugin will fail with Cannot add extension with name 'kotlin'
  • KT-86174 Project sync from cached checkout fails in convertSyntheticImportProjectIntoDefFileIphoneos with 'fatal: Needed a single revision'
  • KT-85877 The number of SPM direct dependencies is multiplied on number on targets
  • KT-85706 SwiftPM Import: Updating package version in build script updates version in the lock file
  • KT-84085 Remove deprecated gradle property kotlin.kmp.isolated-projects.support
  • KT-83370 Incorrect metadata transformation for stdlib's webMain source set
  • KT-69571 compileNativeMainKotlinMetadata not handling project/prebuilt substitutions
  • KT-84533 KMP: compileCommonMainKotlinMetadata: "Unresolved reference" for androidx.savedstate from Maven (works with project() dependency)
  • KT-84669 SPM import: If iosApp dir located outside of the project, checkSyntheticImportProjectIsCorrectlyIntegrated will fail
  • KT-84597 Remove trailing comma for dependencies blocks settings in Package.swift
  • KT-82895 kotlin-stdlib import is flaky in commonTest in 2.1.21
  • KT-81958 Redundant “android target already exists” error when migrating to com.android.kotlin.multiplatform.library with androidTarget {}

New Features

  • KT-83873 Redo how dynamic library linkage and promotion are handled
  • KT-83863 Persist Package.resolved files and reuse them in incremental SwiftPM import

Fixes

  • KT-85984 linkReleaseFrameworkIosSimulatorArm64 is executed during Debug iOS build since 2.4.0-Beta2
  • KT-85510 Cleanup native tasks API
  • KT-84656 Concurrent issue in downloadKotlinNativeDistribution
  • KT-85502 Swift PM Import: "Library not loaded": KotlinMultiplatformLinkedPackage.framework is not copied next to the executable
  • KT-85561 SwiftPM lock-files metadata resolution fails with NoMatchingGraphVariantsException in external KMP projects
  • KT-85128 Refactor SwiftPM import lock tests and test utils
  • KT-83681 Parallelize parts of SwiftPM import pipeline that are called during import
  • KT-83874 Linker hack doesn't work when clang uses response files
  • KT-86024 Empty main compilations cause w: [COMPILER_ARGUMENTS_WARNING] There are libraries in -friend-modules CLI argument that are not included in -library CLI argument:
  • KT-69896 Native: output to stderr ends up in the Gradle log
  • KT-85708 [KGP] dSYM copy task ignores isStatic due to eager read before framework configuration
  • KT-84262 integrateEmbedAndSign produces an incorrect Gradle call for the root project
  • KT-84730 Add Kdocs to SwiftPM import APIs
  • KT-84558 Upstream SwiftPM import work
  • KT-82824 Make linker hack path relative
  • KT-84508 Add a warning on usage macos_x64 as host
  • KT-84692 Misleading error message for disableNativeCache DSL without required Opt-In
  • KT-83680 Remove trailing commas from the package manifest to be compatible with pre-16.3 Xcode

Tools. Gradle. Wasm

  • KT-86457 [Wasm, Gradle] BinaryenExec.standardOutput is silently ignored after migration to Gradle Workers
  • KT-84137 K/Wasm: Support binaryen run with multiple files
  • KT-85974 K/Wasm: Do not set -Xir-per-module for Wasm tasks
  • KT-83566 K/Wasm: Support Wasm per module/klib compilation in Gradle plugin
  • KT-85046 K/Wasm: Wasm per-module Gradle integration tests on Windows
  • KT-84230 Wasm: Fix test WasmYarnGradlePluginIT.testWasmUsePredefinedTooling

Tools. Incremental Compile

  • KT-85387 BTA: switch the default value of MONOTONOUS_INCREMENTAL_COMPILE_SET_EXPANSION to true
  • KT-85386 BTA JVM IC: 'moduleName' is null!
  • KT-84450 Star imports are not reported via FirImportTrackerComponent

Tools. JPS

  • KT-81579 JPS: -Xwarning-level=DEPRECATION:warning not supported

Tools. Kapt

  • KT-84094 Kotlin daemon holds file locks for too long
  • KT-32743 Kapt, Maven: Do not include compile classpath entries in the annotation processing classpath
  • KT-41217 Running kapt with Maven does not seem to include the compilation classpath
  • KT-80569 K2 KAPT: Class Literals Missing in Explicit Annotation Value Parameters
  • KT-18791 Kapt: Constants from R class should not be inlined

New Features

  • KT-85121 Maven: enable configuration inputs tracking in BTA
  • KT-84386 Support Maven Toolchains in kotlin-maven-plugin
  • KT-85317 Auto‑align jvmTarget with the project’s Java level

Fixes

  • KT-74001 Support monotonous dirtySet expansion in Maven
  • KT-76062 Maven: remove Kotlin script execution support
  • KT-84101 Maven: compile and test-compile handle sourceDirs inconsistently
  • KT-84653 Add integration test for KAPT with smart defaults in mixed Kotlin+Java projects
  • KT-84778 Add integration test for auto-bind execution order in mixed Kotlin+Java projects
  • KT-85146 Maven: Adding stdlib as smart-default may break maven dependency resolution for other plugins
  • KT-84793 Use kotlin bootstrap to build kotlin-maven-plugin
  • KT-83109 Remove beanshell and groovy verification in kotlin-maven-plugin-test
  • KT-83110 Remove dependency to intellij platform from kotlin-maven-plugin-test
  • KT-83113 Configure kotlin.git/.idea to work nicely with maven-kotlin-plugin-test tests
  • KT-83114 Migrate kotlin-maven-plugin-test from maven.invoker to junit6 + maven-verifier

Tools. Performance benchmarks

  • KT-82928 Support local run for new benchmarks infra
  • KT-84283 Add scenario generator for performance tests
  • KT-83257 Parse gradle profile report

Tools. REPL

  • KT-77816 REPL: Support for const properties
  • KT-74683 [K2 Repl] Does not support suspend functions
  • KT-84483 [K2 Repl] NullPointerException in Analysis when using custom classes
  • KT-84803 [REPL] FirReplSnippet: provide the eval function symbol instead of the name (evalFunctionName)
  • KT-84160 [REPL] Resolve eval function during implicit body
  • KT-83689 [K2 REPL] Create raw FIR tests for repl snippets
  • KT-82554 [REPL] Fix unresolved reference when using dataframe compiler-plugin
  • KT-82578 [K2 REPL] Split snippet property declaration and initialization
  • KT-82503 [K2 Repl] Nested class annotations are not available in the next snippet

Tools. Wasm

  • KT-84396 [Wasm] Support multimodule in incremental compilation
  • KT-75086 Wasm: Deprecate and remove D8 in js packages
README поки недоступний.

Порівняння версій

Оберіть дві версії з нотатки журналу змін щоб переглянути зміни.

Тут показані лише випуски, для яких є нотатки журналу змін.

Для 2.4.10 нотатки журналу змін ще не знайдено. Показуємо останній випуск із нотатками: 2.4.0.

Оберіть дві версії щоб порівняти зміни.