chore(deps): update kotlin monorepo to v2.2.21
This MR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| org.jetbrains.kotlin.plugin.spring (source) |
2.1.20 -> 2.2.21
|
||
| org.jetbrains.kotlin.kapt (source) |
2.1.20 -> 2.2.21
|
||
| org.jetbrains.kotlin.jvm (source) |
2.1.20 -> 2.2.21
|
Release Notes
JetBrains/kotlin (org.jetbrains.kotlin.plugin.spring)
v2.2.21
Backend. Wasm
-
KT-81372K/Wasm: JsException: Exception was thrown while running JavaScript code on Safari 18.2/18.3 -
KT-80018K/Wasm: exceptions don't work properly in JavaScriptCore (vm inside Safari, WebKit)
Compiler
-
KT-81191K2: "null cannot be cast to non-null type ConeTypeParameterLookupTag" with invalid code -
KT-80936NON_PUBLIC_CALL_FROM_PUBLIC_INLINE :@PublishedApidoesn't work for fun interfaces
JavaScript
-
KT-79926Wrong export of interfaces with companions with ES Modules -
KT-81424Kotlin/JS: Cannot Get / in a simple running application -
KT-80873KJS: Stdlib requires ES2020-compatible JS engine due to BigInt type literal
Native
-
KT-79384K/N: Application Not Responding: Thread Deadlock
Tools. Gradle
-
KT-79047Gradle compileKotlin fails with configuration cache -
KT-81148Publishing helpers in KGP are incompatible with Isolated Projects -
KT-80950KGP breaks configuration cache when signing plugin with GnuPG is applied
Tools. Gradle. Multiplatform
-
KT-61127Remove scoped resolvable and intransitive DependenciesMetadata configurations used in the pre-IdeMultiplatformImport IDE import -
KT-81249Kotlin 2.2.20 broke KMP implementation of Parcelize
Tools. Gradle. Native
-
KT-81510commonizeCInteropexception with 'kotlinNativeBundleConfiguration' not found -
KT-81134Native: Gradle configuration failure likely related to Klibs cross-compilation -
KT-77732commonizeCInteropfailed with "Unresolved classifier: platform/posix/size_t" -
KT-80675Commonized cinterops between "test" compilations produce an import failure
Tools. Maven
-
KT-81218Kotlin Maven Plugin 2.2.20: Java classes not resolved with enabled incremental compilation without daemon
Tools. Wasm
-
KT-80582Multiple reloads when using webpack dev server after 2.2.20-Beta2
v2.2.20
Analysis API
-
KT-78187Synthetic properties not to be shown as callables -
KT-72525K2. red code and KIWA on new-lines in guarded when conditions (with parentheses) -
KT-74246KaVisibilityChecker.isVisible is inefficient with multiple calls on the same use-site
Analysis API. Code Compilation
-
KT-78382K2 IR lowering error when interface extends interface -
KT-73201K2 IDE: Error while evaluating expressions with local classes -
KT-78164Evaluator: '@JvmName' annotations are not recognized in other modules -
KT-76457K2 IDE / KMP Debugger: KISEWA “Cannot compile a common source without a JVM counterpart” on evaluating inline fun from common module inside jvm -
KT-73084K2 evaluator cannot resolve local variables standing at the closing brace
Analysis API. FIR
Performance Improvements
-
KT-76490Do not load ast during the contracts phase if no contracts present -
KT-78132Do not check FirElementBuilder#tryGetFirWithoutBodyResolve optimization for already resolved declarations
Fixes
-
KT-72227SOE from recursive value class -
KT-68977K2 IDE: Reference to companion object through typealias in a function call does not work -
KT-72357Implement partial body resolution -
KT-76932Support context parameters on dangling modifier list -
KT-72407FirImplementationByDelegationWithDifferentGenericSignatureChecker: FirLazyExpression should be calculated before accessing -
KT-77602K2 / Analysis API: KAEWA “No fir element was found for KtParameter” on incorrect context()-call -
KT-77629K2: NPE: "org.jetbrains.kotlin.fir.java.declarations.FirJavaTypeParameter.performFirstRoundOfBoundsResolution" -
KT-76855Analysis API:KaType.asPsiTypereturnsnullfor a local inner class in dependent analysis tests -
KT-72718ImplicitReceiverValue.createSnapshot creates invalid FIR if receiver is smart-casted -
KT-76811Analysis API:resolveToFirSymbolfinds aFirPropertySymbolfor aKtScriptin dependent analysis -
KT-73586[Analysis API] AddlazyResolveToPhase(STATUS)before accessing modifiers of members -
KT-71135AA: exception from sealed inheritors checker whenanalyzeCopy -
KT-75534K2 AA: "Containing declaration should present for nested declaration class KtNamedFunction" with dangling annotation on top-level anonymous function -
KT-75687K2: local variable doesn't get to the do-while scope -
KT-56543LL FIR: rework lazy transformers so transformers modify only declarations they suppose to
Analysis API. Infrastructure
-
KT-76809Analysis API: Dependent analysis tests frequently work with the original element instead of the copied element
Analysis API. Light Classes
-
KT-78835Find usages of a light constructor from a class with an empty body finds usages of class as well -
KT-78878K2. Method shown as unavailable in Java when@JvmExposeBoxedis applied (redundantly) at both class and method level in Kotlin -
KT-78065Support "Expose boxed inline value classes" in Light Classes -
KT-78076DLC: KotlinDeclarationInCompiledFileSearcher missed accessors if types are boxed -
KT-77569SLC: annotation missing from generated no-args constructor -
KT-75182K2 AA. False positive red code "Unresolved reference" to a Kotlin method in Java when Kotlin uses a value class with@JvmOverloads -
KT-77564Constructor with JvmOverloads and value class shouldn't mark regular constructors private -
KT-77505K2: find usages on java accessor methods do not detect kotlin property accessor usages -
KT-76789Annotation resolve shouldn't search through non-class members -
KT-76907Wrong equality between repeatable annotation and container
Analysis API. Providers and Caches
-
KT-77578Analysis API: Performance degradation ofKaBaseResolutionScope.containsafter introduction of library restriction scopes -
KT-78640Analysis API: Remove "friend builtins provider" fromFirDeclarationForCompiledElementSearcher -
KT-74907Analysis API: Apply platform-based library module content restrictions consistently -
KT-77605AA: Leaking KaDanglingFileModule through IdeKotlinPackageProvider -
KT-62474Analysis API: Improve mergeability and performance of custom search scopes -
KT-77022Get rid of ExpectBuiltinPostProcessor workaround -
KT-77248Delegation ofJavaModuleResolveris restricted toCliJavaModuleResolver -
KT-76850LLFirLibrarySession cannot be cast to LLFirResolvableModuleSession -
KT-76952Analysis API:whenexhaustiveness analysis fails for sealed classes in dangling files -
KT-72390Kotlin project full of red code
Analysis API. Standalone
-
KT-78638Analysis API Standalone: Stdlib builtins are not indexed inSTUBSdeserialized declaration origin mode
Analysis API. Stubs and Decompilation
-
KT-77496Support HAS_MUST_USE_RETURN_VALUE metadata flags in FirStubBasedMemberDeserializer -
KT-77778Function receivers doesn't have annotations -
KT-77777Receiver annotations shouldn't be present on types -
KT-77538Support default property accessors with annotations -
KT-77763Decompiled stubs miss inline modifier for property accessors -
KT-77309Decompiled property from annotation constructor with default value should have a constant initializer -
KT-77168Prefer DataInputOutputUtil for serialization/deserialization -
KT-77117Flaky WRONG_ANNOTATION_TARGET diagnostic -
KT-76791Function signature types are deserialized inconsistently -
KT-76947Support functional types with context parameters
Analysis API. Surface
New Features
-
KT-73473Provide KaExpressionInformationProvider.isUsedAsResultOfLambda -
KT-77278Implement psi-basedKaFirKotlinPropertyKtPropertyBasedSymbol#hasBackingField -
KT-70770KaLocalVariableSymbol: supportisLateInit
Performance Improvements
-
KT-78526Get rid of redundantcheckValidityfromwithPsiValidityAssertion
Fixes
-
KT-77674Analysis API: Redundant smart cast to the original type -
KT-76577Guard KaFirStopWorldCacheCleaner from deadlocks via threads waiting -
KT-78820K2: ISE "FIR element class FirErrorExpressionImpl is not supported in constant evaluation" through RedundantValueArgumentInspection -
KT-75057Analysis API: Reference to object through typealias in invoke operator call leads to original type -
KT-79042Do not restore KaTypePointer if target kind has changed -
KT-72421AA: "KtReference.resolveToSymbols" returns empty list when ASSIGN_OPERATOR_AMBGUITY error is present -
KT-63464AA: KtPsiTypeProvider#asPsiType doesn't substitute kotlin.Unit -
KT-75913K2: SymbolLightLazyAnnotation evaluates arguments and replaces them with constants -
KT-78628K2. Setting Receiver=true in Change Signature produces parameter of regular function type receiver instead of extension function type -
KT-78278ISE: FIR element "class org.jetbrains.kotlin.fir.expressions.impl.FirErrorResolvedQualifierImpl" is not supported in constant evaluation at org.jetbrains.uast.kotlin.internal.FirKotlinUastConstantEvaluator.evaluate -
KT-73184Analysis API: KaFunctionCall.argumentMapping is unexpectedly deparenthesised -
KT-73327Cover all psi inputs with scope validity assertions -
KT-78613PSI: add binary compatibility checks -
KT-74013Analysis API: Cover the API surface with@SubclassOptInRequiredannotations -
KT-76614Move the parser and lexer to a separate module -
KT-78552KaFunctionValueParameteris not marked asKaLifetimeOwner -
KT-71152Add back SubclassOptInRequired to classes in KaModule.kt -
KT-71876Support storing parameter names inKaFunctionType -
KT-77738AA: inconsistentKaType.allSupertypesregarding multiple iterations -
KT-75358K2 AA, KaFirVisibilityChecker: private member of anonymous object is not visible inside it -
KT-73723K2 AA, KaFirVisibilityChecker: protected member of superclass is not visible from anonymous object -
KT-78057[Analysis API, K2] Context parameters are not resolved in KDoc -
KT-73758K2 Mode: "KaEvaluator.evaluate" does not work for simple arithmetic expressions -
KT-72301K2 AA.PSI should present for declaration built by Kotlin codeon property access syntax of generic Java getter through Kotlin subclass -
KT-77730K2: Unable to get a light PSI for a nested annotation used with fully-qualified name -
KT-73216K2: unresolvable references in type parameters -
KT-71794Analysis API: Types with errors have unresolved qualifiers in lambda parameters position -
KT-65846Support parameter names in functional type rendering -
KT-76738K2 AA: rendering constructor of sealed class inserts protected modifier -
KT-77515KaTypeProvider#receiverTypeshould be more tolerant to an error code -
KT-77333K2 AA: KaFirTypeProvider.getType: InvalidFirElementTypeException: For TYPE_REFERENCE with textI, unexpected element of type: FirSuperReceiverExpressionImpl found -
KT-76044K2 AA: isFun is true for restored symbol of Java interface with several methods -
KT-77264KaTypeProvider#typeshould be more tolerant to an error code -
KT-77282KaPropertySymbol: supportisDelegatedPropertyfor libraries -
KT-77254K2 AA: expectedType doesn't provide anything for parameter default value -
KT-74777KaVariableSymbol.hasBackingField returns incorrect result for libraries -
KT-77280RenameKaPropertyAccessorSymbol#isCustomtoisNotDefault -
KT-77210Analysis API:scopeContextshows implicit receiver with a class instance in the class constructor -
KT-77196Clarify differences between KaPropertyAccessorSymbol#{isDefault, hasBody} -
KT-76580K2: No expected type for the second+ vararg argument -
KT-76750K2. internal exception 'Unable to provide inlay hint' on typo in nested lambdas -
KT-73290Analysis API: Improve the architecture of content scopes and resolution scopes -
KT-73055Get rid of the deprecated Analysis API API -
KT-70199K2: ConcurrentModificationException at FirCallCompleter$LambdaAnalyzerImpl.analyzeAndGetLambdaReturnArguments
Backend. Wasm
New Features
-
KT-65721K/Wasm: stop unconditionally exporting any main function from the root package
Performance Improvements
-
KT-70097Optimize shared primitive variables in Native and Wasm
Fixes
-
KT-80106devServer in Kotlin/Wasm overwrites defaults, causing missing static paths -
KT-80018K/Wasm: exceptions don't work properly in JavaScriptCore (vm inside Safari, WebKit) -
KT-66072K/Wasm: improve how exceptions work in JS interop -
KT-77897WasmJs: ClassCastException when using star-projection with nullable transformation in generic extension function -
KT-71533K/Wasm + K2: no error on KClass::qualifiedName usages -
KT-73931WASM: "RuntimeError: illegal cast" with nullable generic -
KT-65403[WASM] RuntimeError is thrown instead of ClassCastException -
KT-79317[Wasm] Do not throw CCE for ExcludedFromCodegen declarations -
KT-66085K/WASM: Runtime error is uncaught withcatch (e: Throwable) -
KT-78036K/Wasm: generate a message with "expected" and "actual" types in case of CCE -
KT-78384K/Wasm: Incorrect debug info of local declarations in inline function from another file -
KT-72220Wasm: Unclear exception in case of missed dependency -
KT-71691No trace on Wasm/JS if an error occurred in initializing global variables in a file with the main function -
KT-67554[Wasm] Consider to have reference equals or/and equals for function references -
KT-71521K/Wasm: incorrect results on equality checks for capturing property references -
KT-71522K/Wasm: incorrect results on equality checks for function references -
KT-69570K/Wasm: JsExport with default parameter value compiles to invalid Wasm -
KT-71517K/Wasm: KClass::qualifiedName for local classes and objects returns non-null value -
KT-68309WASM: Anonymous class simpleName returns "" instead of null -
KT-77272K/Wasm: Remove kotlin.wasm.internal.ClosureBox* classes from the standard library -
KT-66106Wasm: lambda was not invoked in test lambda2.kt -
KT-77855[Wasm] Improve virtual function calls speed for lambdas -
KT-77501Wasm: unsigned vararg compiles to invalid Wasm -
KT-76775[Wasm] Inconsistent FP mod operation -
KT-77464Wasm: KType.toString() has simple names even with -Xwasm-kclass-fqn -
KT-77465Wasm: KTypeParamter printed without variance information
Compiler
New Features
-
KT-71768Enable -Xjvm-default=all-compatibility by default to generate JVM default interface methods -
KT-78374Make indy lambda function name generation more consistent -
KT-45683Allow generics in contract type assertions -
KT-27090Support contracts in getter and setter for top-level extension properties -
KT-76766Warning is missing for wrong subclass checking -
KT-71244Incorporate existing@CheckReturnValueannotation(s) into Kotlin's unused return value checker -
KT-73256Implementallmeta-target for annotations -
KT-78792Report warning for redundant return in expression body -
KT-32313Support contracts for operator functions -
KT-70722Implement better Kotlin warnings for value classes and JEP 390 (Warnings for Value-Based Classes) -
KT-65688Generate when-expressions over final classes via invokedynamic typeSwitch + tableswitch on JDK 21+ -
KT-54344Trigger the unused expression warning for interpolated strings, even when the expression may have side effects -
KT-74807Implement 'full' unused return value checker mode -
KT-77653K/N: an optimization pass to remove redundant type checks -
KT-64477Enhance KotlinLightParser to make it able to parse scripts -
KT-74809Support unnamed local variables -
KT-72941ANNOTATIONS_ON_BLOCK_LEVEL_EXPRESSION_ON_THE_SAME_LINE missing in K2 -
KT-75061Support context-sensitive resolution in type position
Performance Improvements
-
KT-77993Optimize old PSI/LightTree Kotlin parser -
KT-78672Consider having FirCallableSymbol.callableId null for local properties / parameters -
KT-77839K2: consider not creating CallableId for value parameters / variables / fields -
KT-74981Kotlin/Native: large binary size for iOS target in 2.1.0(LLVM16) -
KT-77838K2: consider replacing LinkedHashMap with HashMap inside scopes and scope session -
KT-76698Android Studio compose preview holds read lock 700ms for KaCompilerFacility API -
KT-68677Kotlin compilation issue when using EnumMap and Pair
Fixes
-
KT-79979K2: ClassCastException when overriding extension property with delegation -
KT-67146UPPER_BOUND_VIOLATEDmissing on implicit type arguments -
KT-76477Kotlin/Native: fix compiler performance reporting in sources->klib and klibs->binary -
KT-79866kotlinc 2.2.0 silently emits 'NonExistentClass' instead of reporting an error -
KT-78666"Platform declaration clash" caused by indy lambda name generation which generates conflicting names -
KT-80285IJ monorepo: broken compilation after 2.2.20-RC update -
KT-79442"Multiple annotations of type kotlin.coroutines.jvm.internal.DebugMetadata": 2.2.0-Beta1 generates broken code with JVM default suspend methods in interfaces -
KT-78589"Class does not have member field" caused by delegation from a Java to Kotlin class -
KT-79816Java Interfaces implemented by delegation have non-null return checks -
KT-78097False positive NO_ELSE_IN_WHEN on sealed interface with negative is check -
KT-77182A function in a file annotated with@file:MustUseReturnValue doesn't produce a warning when it is used from compiled code -
KT-79085Adding-Xreturn-value-checker=fullto kotlinc causes "error: conflicting overloads" -
KT-75268K2: Implement the new compilation scheme for MPP (compiler part) -
KT-78843FIR tree: comments within String concatenation aren't visited in 2.2.0 -
KT-77401[FIR]ParameterNameTypeAttribute.namedoesn't support@ParameterNamewith compile-time constant property argument -
KT-73611Remove -Xextended-compiler-checks in favor of a deprecation cycle -
KT-79276Dexing fails with "Cannot read field X because is null" with 2.2.0 -
KT-79781Missing MISSING_DEPENDENCY_CLASS when using type alias with inaccessible RHS -
KT-78621false-positive type mismatch error on value of nullable type as value of platform type -
KT-79547"UnsupportedOperationException: Not supported" with inlining and value classes -
KT-52706Bad signature for generic value classes with substituted type parameter -
KT-79519Nested type alias is unreachable from another module -
KT-76839False-negative MISSING_DEPENDENCY_CLASS on parameter of data class constructor -
KT-78352False-positive IDENTITY_SENSITIVE_OPERATIONS_WITH_VALUE_TYPE when comparing with equality operator (==) -
KT-78815Symbol not found: __ZNSt3__117bad_function_callD1Everror on iOS 15.5 simulator in Xcode 16.3 after update to 2.2.0-Beta2 -
KT-25341NOT_YET_SUPPORTED_IN_INLINE reported over anonymous object border -
KT-77099'all' annotation target is not a soft keyword -
KT-76478FIR: Implement IDE-only checker for types exposed in inline function -
KT-79355Failed to fix the problem of desugaredincwith new reverse implies returns contract -
KT-79277Implies returns contract doesn't affect the return type of the function if it is in the argument position -
KT-79271Implies returns contract doesn't impact exhaustiveness -
KT-79218SMARTCAST_IMPOSSIBLE for top‑level extension‑property getter despite returnsNotNull contract -
KT-79220returnsNotNull contract ignored on extension function with nullable receiver -
KT-79354IllegalStateException: Debug metadata version mismatch. Expected: 1, got 2 with compiler 2.2.20-Beta1 and stdlib 2.2.0 -
KT-78479IR lowering failed / Unexpected null argument for composable call -
KT-77986K2: False negative: "Local classes are not yet supported in inline functions" -
KT-79076'IllegalStateException: Cannot serialize error type: ERROR CLASS: Uninferred type' with Exposed column using recursive generic type -
KT-78726Split runPsiToIr phase into runPsiToIr and runIrLinker -
KT-77672K/N: come up with a fallback strategy for the casts optimization pass -
KT-76365K2: Missing ABSTRACT_SUPER_CALL -
KT-76585K2: RETURN_IN_FUNCTION_WITH_EXPRESSION_BODY is not reported inside initializers of local variables -
KT-79099K2: Do not inherit inline modifier -
KT-76902Omit type-use annotations from diagnostics -
KT-64499Report error on overloading by order of context parameters -
KT-58988K2: Deprecate exposing package-private parameter of internal method -
KT-77199OPT_IN_USAGE_ERROR is still absent when calling the enum primary constructor -
KT-72800K2: java.util.NoSuchElementException when introduce variable -
KT-79056Add experimental language version 2.5 -
KT-17460Diagnostics and intention on suspend function that is overriden with non-suspend one. -
KT-78351Plugins: VIRTUAL_MEMBER_HIDDEN caused by FirSupertypeGenerationExtension -
KT-78527No LESS_VISIBLE_TYPE_ACCESS_IN_INLINE_WARNING is reported when a private companion object is accessed via the class name -
KT-79045FirExpectActualMatcherTransformer should not visit bodies -
KT-74570K2: Linenumber for annotation on property is present in LVT -
KT-74569K2: Linenumber of annotation is present in constructor's LVT -
KT-64731K2: Annotation on inline function or inside inline function is hit by debugger -
KT-77756Add experimental language version 2.4 -
KT-78837linkReleaseFrameworkIosArm64: Compilation failed: An interface expected but was Any -
KT-78945CONTRACT_NOT_ALLOWED is not reported for local operator functions -
KT-78944ANNOTATION_IN_CONTRACT_ERROR is not reported for operators and property accessors with contracts -
KT-78943ERROR_IN_CONTRACT_DESCRIPTION is not reported for operators and property accessors with contracts -
KT-78932Contracts are allowed for open and overridden property accessors -
KT-77203FIR: Consider adding destructured type to all COMPONENT_FUNCTION_* diagnostics -
KT-76635Implement Data-Flow Based Exhaustiveness Support -
KT-78805K2: False positive METHOD_OF_ANY_IMPLEMENTED_IN_INTERFACE -
KT-78651No need to report LESS_VISIBLE_TYPE_ACCESS_IN_INLINE_WARNING in noinline default value lambda -
KT-78849K2: [Wasm, Fir2IR] Invalid smartcast on overloaded function call -
KT-78793Make feature AllowEagerSupertypeAccessibilityChecks experimental -
KT-78736Missing [NOT_YET_SUPPORTED_IN_INLINE] diagnostics because of incorrect context update -
KT-78324K2: False negative [INCONSISTENT_TYPE_PARAMETER_VALUES] -
KT-69975KDoc: cannot reference elements with names in backticks -
KT-78229KDoc: unable to reference a method with spaces in the name -
KT-78047Render unnamed context parameters as _ instead of -
KT-74621Debugger: AssertionError on evaluating two suspending calls -
KT-78784Improve deprecation warnings about KTLC-284 -
KT-76826New inference error [NewConstraintError at Incorporate TypeVariable] caused by recursive generics and nullable expected type -
KT-77685"IllegalArgumentException: Sequence contains more than one matching element" -
KT-78028"FirNamedFunctionSymbol" leaks to the error message about missing infix modifier -
KT-77245Add expression name to RETURN_VALUE_NOT_USED diagnostic -
KT-78071False-positive NO_ELSE_IN_WHEN after variable reassignment -
KT-78068False-positive NO_ELSE_IN_WHEN after excluding enum value with inequality check -
KT-71134Consider to get rid of CapturedTypeMarker.withNotNullProjection() -
KT-77131getValue/setValue can be declared with more than two/three parameters -
KT-78452Drop redundant frontend structures after fir2ir conversion -
KT-78458Don't populate PredicateBasedProvider if no lookup predicates are registered -
KT-78440Lambda with an implicitly runtime-retained annotation is generated via invokedynamic with-Xindy-allow-annotated-lambdas=false -
KT-77709Missing diagnostics of accessing less visible objects in inline function -
KT-77577False positive exposed type warnings -
KT-77095FIR: Report warnings on exposure of references to invisible references in inline functions -
KT-76981Move exposed type checker to regular checkers -
KT-78252ClassCastException whenArray<Void>used for compile-time vararg ofNothing -
KT-77713Context Parameters cause compiler generate r8 incompatible bytecode -
KT-71854K2 IDE. False positive red code because of external annotation on a generic parameter -
KT-67335K2: Infers Int instead of Long for an ILT -
KT-76629K2 Mode: False positive RedundantVisibilityModifier inspection on private constructors in sealed classes -
KT-77728Drop controversial experimental checkers -
KT-78429K2: Property callable reference incorrectly smart-casted to intersection of property type and KProperty -
KT-78509Renamed for override copy functions are cached in scope instead of session -
KT-17417Loops in delegation: no compilation error on non-abstract class with abstract method that never implemented -
KT-75033Split JvmBackendPipelinePhase to be able to provide a custom implementation of writeOutputs -
KT-75831K2: An extra "[VALUE_PARAMETER_WITHOUT_EXPLICIT_TYPE] An explicit type is required on a value parameter." for a missing parameter -
KT-78370All the [something]Assign operators on dynamic return Unit as a type -
KT-73950K2 IDE / Kotlin Debugger: ISE “Fake override should have at least one overridden descriptor” on evaluation of local calss in presence of bystander -
KT-78280Implement the sourcelessKtDiagnostics -
KT-76543Migrate psi2ir sources to new IR parameter API -
KT-77716Kotlin/Native and -Xseparate-kmp-compilation: "Compilation failed: Several functions kotlin/native/immutableBlobOf found" -
KT-76400Context-sensitive resolution doesn’t work in if-else condition passed as a function argument -
KT-76606Enable 'Indy: Allow lambdas with annotations' by default -
KT-76739Dubious argument type mismatch "actual type is 'String', but 'String' was expected" caused by wrong number of type arguments -
KT-78121Report warning on function type with multiple implicit values that's annotated with DSL marker -
KT-76872Anonymous context parameters are not visible in debugger -
KT-74088Kotlin Debugger: CCE on evaluating private suspend function -
KT-77301False positive Context Parameter resolution when using DslMarker -
KT-78230Add more test cases to the holdsIn contracts -
KT-78111K2: Approximation of captured star projection in function type producesFunction1<Nothing?, Unit>in IR -
KT-77273K/N: Remove the kotlin.native.internal.Ref class from the standard library -
KT-73995JVM bytecode: Bad name for value class field -
KT-73013Kotlin Debugger: ISE “No mapping for symbol: VALUE_PARAMETER” on evaluating callable reference to local function with closure in it -
KT-77665K2: unresolved annotatation on local context parameter type -
KT-77485Add constraints logging to inference -
KT-76504Find and deprecate actively used parts of K1 API -
KT-75338K2 Mode: False positive "Redundant assignment" diagnostic on variable captured by local function -
KT-77648K2: False negative DSL_SCOPE_VIOLATION when using named argument for lambda with annotated function type -
KT-77355Report warning on overloading by a superset of another overload's context parameters -
KT-77354Report warning on overloading by a subtype of another overload's context parameter -
KT-78084Unify deprecation warning messages -
KT-76776@MustUseReturnValuedoesn't affect nested scopes -
KT-77545@NoInferon receiver type leads to false positive type mismatch when generic type is specified explicitly and closest implicit receiver is of incorrect type -
KT-76772@NoInferon a context parameter's type leads to a false-positive context argument ambiguity error regardless of the closest implicit values' types if there are multiple of them at the call site -
KT-76771@NoInferon context parameter type leads to a false-positive type mismatch when generic type is specified explicitly and closest implicit value at the call site is of a mismatching type -
KT-77156INITIALIZATION_BEFORE_DECLARATION is not reported in anonymous object -
KT-78060UNRESOLVED_REFERENCE in fp-space -
KT-67555Debug metadata: map the Continuation label to the next executable location in file -
KT-77723Refine the message for ArrayEqualityCanBeReplacedWithEquals checker -
KT-75178Inline functions in conjunction with@JvmStaticmay result in bytecode errors -
KT-77390Prototype lazy loading of stdlib symbols in Native -
KT-77921False positive EXTENSION_SHADOWED_BY_MEMBER when member has context parameters -
KT-77895false-negative error on package directives with context parameter lists (even with context parameters disabled) -
KT-76767AMBIGUOUS_CONTEXT_ARGUMENT should report the name of the context parameter in addition to the type -
KT-77444K2: False negative "Unchecked cast" with casting from MutableList to MutableList -
KT-63348K2: FIR2IR should properly pass expected types -
KT-77627K2: consider getting rid of NEW_INFERENCE_ERROR -
KT-75833K2: Extra [ANNOTATION_ARGUMENT_MUST_BE_CONST] when passing regex-like strings as annotation arguments -
KT-77547Native: add a check that the logic looking for stdlib-related bitcode is not used when compiling sources to a klib -
KT-77206RemovePARAMETER_NAME_CHANGED_ON_OVERRIDEsuppression in KMP lexers -
KT-77679Update syntax-api dependency in KMP Kotlin parser -
KT-77705K2: Consuming data class compiled with kotlin 1.0.5 breaks the K2 compiler -
KT-76583CCE: suspend lambda attempts to unbox value class parameter twice after lambda suspended -
KT-76663KJS: KotlinNothingValueException caused by expression return since 2.1.20 -
KT-75457Native: cache machinery uses stdlib cache with default runtime options even if custom runtime options are supplied when partial linkage is disabled -
KT-77563False-positive smart cast with captured local in init block causes NPE -
KT-77696ISE "couldn't find inline method" on kotlin/Result compiled by old Kotlin version -
KT-76931K2: Annotation on do-while expression captures variables from inside the loop -
KT-77183Metadata: remove multi-field value class representation -
KT-77678Apply found optimization to Kotlin KMP parser -
KT-60127K2: Support scripts with LightTree-based raw FIR building -
KT-76615K2: "IllegalArgumentException: Inline class types should have the same representation: Lkotlin/UByte; != B" for mixed Java/Kotlin code -
KT-77220Annotation with EXPRESSION is not allowed on lambdas in Kotlin 2.2.0 -
KT-77656K/N: fix the super type for local delegated properties -
KT-75907Inference/PCLA: consider storing semi-fixed variables in inference session -
KT-77144Implement KMP Kotlin parser -
KT-77352Implement KMP Expression parser -
KT-76984SYNCHRONIZED_BLOCK_ON_JAVA_VALUE_BASED_CLASS isn't reported for primitive wrapper classes instantiated within the scope -
KT-67471K2: "Unresolved reference" on incorrect term of FQ name -
KT-77269[K/N] external calls checker crashes when used with caches -
KT-77205Kotlin Debugger / Context Parameters: CCE “class FirPropertySymbol cannot be cast to class FirFunctionSymbol” on evaluating class property -
KT-74133FIR: use EmptyDeprecationsPerUseSite consistently in symbols -
KT-77100java.lang.Void type is not ignorable -
KT-77491K2: No SUPERTYPE_IS_EXTENSION_FUNCTION_TYPE when using typealias -
KT-77490Report error on contextual function type in supertype -
KT-77431Functional type with a context is allowed as an upper-bound -
KT-77432Context isn't passed properly when functional type with a context is used as a type argument -
KT-77417There is no TYPE_VARIANCE_CONFLICT_ERROR when 'out' type is used in context -
KT-62631Improve expect-actual "checking" incompatibilities reporting -
KT-77481Support ExpectRefinement feature in HMPP compilation scheme -
KT-77268Make sure that -Xreturn-value-checker also enables -XX:UnnamedLocalVariables -
KT-65719K1/K2: Nullness defaults from subclass unsoundly applied to method in superclass -
KT-53836In type-parameter declarations, recognize JSpecify annotations only on bounds -
KT-73658JSpecify@NonNullannotation on type-parameter bound prevents type-variable usages from being platform types -
KT-77000Leave ForbidInferOfInvisibleTypeAsReifiedOrVararg as a warning -
KT-74084K2: False negative [NO_ELSE_IN_WHEN] -
KT-77451FirLazyResolveContractViolationException for test with overridden delegate -
KT-77397Report UNSUPPORTED_CONTEXTUAL_DECLARATION_CALL when calling declaration with contextual function type in signature -
KT-77137K2: Controversial behavior allows resolving annotation arguments on a companion inside it -
KT-77257Report compilation error when in generated JVM bytecode there is a need for CHECKCAST of the conditional expression to the inaccessible interface -
KT-77256Report compilation error when in generated JVM bytecode there is a need for CHECKCAST of the functional call result to the inaccessible interface -
KT-76356K2 evaluation fails on evaluating inline methods if there is an inline with AutoCloseable -
KT-73786Evaluator: cannot evaluate inline methods with reified parameter -
KT-77204Native: XCode strip command causes flaky tests -
KT-77351Implement KMP KDoc parser -
KT-76914compile-time failure on a type argument placeholder in a callable reference -
KT-76597False negative opt-in required on delegated constructor call -
KT-76667Mark the class implementation of interface function with ACC_BRIDGE in the class file -
KT-77181K2: a nested typealias annotation observes member declarations of the outer class -
KT-77180K2: Wrong scope for annotation arguments in the constructor header -
KT-77287Try enforcingsource != nullwhenorigin == Source -
KT-76135K2: drop pre-1.8 language features from compiler code -
KT-77231Reflection: CCE on resuming coroutine after callSuspend if result is a generic inline class substituted with primitive -
KT-77031Investigate the actual need of deduplicating provider in HMPP compilation scheme -
KT-77050Implement KMP KDoc lexer -
KT-77048Implement KMP Kotlin lexer -
KT-77044Consolidate, refine and update jFlex dependency -
KT-77252It is impossible to declare an unnamed variable in a script -
KT-58137K2: ISE "Usage of default value argument for this annotation is not yet possible" when instantiating Kotlin annotation with default parameter from another module -
KT-77140Protect ConstraintSystemCompletionMode.UNTIL_FIRST_LAMBDA with opt-in -
KT-76898K2: ClassCastException when data class shadows supertype'scomponentXmethod with wrong type -
KT-75695Bogus "Assigned value is never read" warning for prefix ++ operator -
KT-76805Wrong NPE occurs when assigning synthetic properties with platform types in Kotlin 2.1.20 -
KT-77078K2: anonymous object is wrongly allowed to implement interfaces by unsafe Delegation -
KT-72722Treat 'copy' calls of a data class as explicit constructor usages -
KT-77149IllegalArgumentException: source must not be null -
KT-76806K2: AIOOBE in FirEqualityCompatibilityChecker -
KT-72391KJS: (a * b).toDouble_ygsx0s_k$ is not a function -
KT-76950K2: "IllegalArgumentException: Inline class types should have the same representation: Lkotlin/UByte; != B" with nullable UByte -
KT-76043Native: NotImplementedError: Generation of stubs for class org.jetbrains.kotlin.ir.symbols.impl.IrFieldSymbolImpl is not supported yet -
KT-77126Transitive dependency mismatch between Kotlin Gradle Plugin and Scripting dependencies -
KT-72831ANNOTATION_USED_AS_ANNOTATION_ARGUMENT missing in some cases in K2 -
KT-73707Remove dependency on ":compiler:backend.jvm" from Native -
KT-75499CheckerContext#{containingDeclaration, containingFile} in checkers should return symbols -
KT-76548False positive TYPE_MISMATCH when resolving an expression with the expected type from the upper bound -
KT-76142K2:@RequiresOptInwarning does not display the custom message when using concatenated strings. -
KT-68699Kotlin Debugger: UPAE “lateinit property parent has not been initialized” on trying evaluate enumValues(), enumEntries() from inlined function with reified parameter -
KT-63267K2: incorrect line numbers after smart cast of an extension receiver -
KT-71309Kotlin Debugger: UnsupportedOperationException on calling method with reified type parameter -
KT-74912K2: Investigate irrelevant ARGUMENT_TYPE_MISMATCH on top-level lambdas -
KT-74657K2: Linenumber for annotation on local variable is present in LVT -
KT-76749NONE_APPLICABLE message is unreadable for stdlib context function -
KT-74932Investigate false-negative ARGUMENT_TYPE_MISMATCH on a nested anonymous function -
KT-74545Redundant TYPE_MISMATCH in variable initializer with call -
KT-76774K2: Simplify ResolutionMode.WithExpectedType contracts -
KT-76689Unnamed local variable with type and without initializer is allowed -
KT-76746ClassCastException: class org.jetbrains.kotlin.fir.types.impl.FirUserTypeRefImpl cannot be cast to class -
KT-76754K2: Compiler doesn't check annotations on array literals (as annotation arguments) -
KT-76674The function isn't called from unnamed local variable initializer -
KT-75553MISSING_DEPENDENCY_SUPERCLASSandMISSING_DEPENDENCY_SUPERCLASS_WARNINGis reported at the same time on the same element -
KT-76345Enhance variable fixation -
KT-73348AssertionError from isCompiledToJvmDefault on super call of suspend function with composable function parameter -
KT-72305K2: Report error when using synthetic properties in case of mapped collections -
KT-73527Prohibit (via a deprecation warning) accessing nested class through generic outer class -
KT-59886K2: Disappeared ERROR_IN_CONTRACT_DESCRIPTION -
KT-61227Definitely non-nullable types cause "Any was expected" for@Nullableparameter -
KT-57911K2: Contracts are not inherited by substitution overrides -
KT-47398'null' EnhancedNullability value in String-based 'when' might produce different behavior depending on whether 'when' is "optimized" or not
Compose compiler
-
CMP-7505IrLinkageError: Function can not be called: No function found for symbol -
b/432262806Fix target description lookup -
b/436870733Prevent lambda memoization in local classes inside a composable -
b/432485982Fix AbstractMethodError when overriding function with default parameters -
b/432262806Use classId as FirApplierInferencer tokens -
b/400371006Gate default parameters behind language versions -
b/245673006Specify fqName for classes and functions in build metrics -
b/254577243Avoid printing complex expressions in compiler metrics -
b/394891628Allow specifying target version of Compose runtime -
b/424454512Recreate FirApplierInferencer for each check -
b/417406922Restrict references to@Composableproperties -
b/282135108,b/349866442[Compose] Enable applier checking when using FIR -
b/307592552Add BigInteger and BigDecimal to the list of known stable classes -
b/414547195Unwrap type casts when inferring@Composablecall arguments
IR. Inlining
New Features
-
KT-70360KLIBs: Uniformly handletypeOf()calls at 1st/2nd stages of compilation
Fixes
-
KT-79002[Inliner][Native][PL] Native backend fails for inline function that instantiates a class that was compiled implementing two interfaces, which turned into abstract classes -
KT-78137Review & enable PL tests with enabled IR inliner -
KT-72464[Native][JS][Wasm] Non-local return through suspend conversion breaks the IR inliner -
KT-69941RewriteDumpSyntheticAccessorslowering to test handler after moving common Native/JS prefix to KLIB compilation -
KT-78245Synthetic Accessors incorrectly copies default values -
KT-76236IncludeNativeInliningFacadeandJsIrInliningFacadein all Native & JS test runners -
KT-76512Avoid usingoriginalFunctioninsideFunctionInlining -
KT-69457[references] IR Inliner: References to inline functions are not inlined -
KT-47521Native & JS: Recursive inline fun calls -> StackOverflowError -
KT-76425Do not store signatures of preprocessed inline functions in KLIBs -
KT-76763[Inliner] Don't use attributeOwnerId to pass info from Inliner to non-JVM backends -
KT-77102[Inliner] Expression uses unlinked type parameter symbol -
KT-76145Enhance error message about poisoned KLIBs in KLIB-based compilers -
KT-77079IR: Report warnings on exposure of references to invisible declarations in inline functions -
KT-69797[references] Accessors for private function/constructor/property references are not generated -
KT-76454Investigate erasure of class type parameters during inliner -
KT-72593[K/N] Add NativeIrInliningFacade to CrossCompilationIdentityTest -
KT-70969IR Inliner: Ensure that common prefix at 1st phase does not affect KLIB signatures -
KT-75937[IR Inliner] Umbrella for failing tests due to public inliner -
KT-77295Improve Diagnostic Message Formatting for Private API Exposure in Inline Functions -
KT-77047Ir Ininler: crash on fake override in private class from more visible class -
KT-77336[references] Synthetic accessor test for private top-level function accessed via reference fails withNo function found for symbol -
KT-76761[Inliner] non-JVM IR Inliner incorrectly uses K/JVM-specific code -
KT-76712[Inliner] No function found for symbol '/|?' -
KT-76711[Inliner] Reference to function 'privateMethod' can not be evaluated
IR. Tree
-
KT-77508K/JS and K/Native CompilationException Wrong number of parameters in wrapper -
KT-78978PL tests: Dropadjust*forLazyIr()hack -
KT-76813IR validator: not all symbols/references are visited -
KT-77596RefinereuseExistingSignaturesForSymbolssetting in IR serializer -
KT-76723IR validator: Check visibilities of annotations -
KT-76405Visit annotations in IrTypeVisitor and IrTreeSymbolsVisitor -
KT-78033[PL] MergeIrUnimplementedOverridesStrategytoPartiallyLinkedIrTreePatcher
JVM. Reflection
-
KT-77882kotlin-reflect: KParameter.name returns "" instead of null for anonymous context parameters -
KT-77879kotlin-reflect: toString overrides of KCallable implementations do not render context parameters -
KT-74529Context parameters support in reflection -
KT-52170Reflection: typeOf<Array> gives classifier LongArray -
KT-77663Reflection: java.util.ServiceConfigurationError: "module kotlin.reflect does not declareuses" when using kotlin-reflect in modular mode
JavaScript
New Features
-
KT-79222K/JS: Allow using Long in exported declarations -
KT-79394Add the possibility to write common external declarations between JS and WasmJS targets -
KT-70486K/JS: exported exception types should extend Error -
KT-19016Define accessors as enumerable
Performance Improvements
-
KT-57128KJS: Use BigInt to represent Long values in ES6 mode -
KT-54689KJS: Data class equals less efficient than manually written version
Fixes
-
KT-69297Deprecate referencing inlineable lambdas injs()calls -
KT-77620Fix failing IC tests on Windows -
KT-77372KJS: NullPointerException at JsIntrinsics$JsReflectionSymbols -
KT-78316KJS: List is not exported to TypeScript declaration if wrapped in Promise -
KT-79644BigInt enabled for ES 2015 despite being an ES 2020 feature -
KT-79089KJS: Could not load reporter / Cannot find module 'mocha' when running jsNode tests -
KT-79916K/JS: "Uncaught TypeError" when using 'Xes-long-as-bigint' in compose-html -
KT-79050KJS / IC: "Unexpected body of primary constructor for processing irClass" -
KT-79977KJS: Long.rotateLeft returns incorrect result when BigInts are enabled -
KT-76093Support new callable reference nodes in partial linkage in Kotlin/JS -
KT-78073K/JS: KProperty from local delegate changes after another delegate is invoked -
KT-52230KSJ IR: Applying identity equality operator to Longs always returns false -
KT-6675KotlinJS: toInt() on external Long throws error -
KT-79184K/JS: Further intrinsify BigInt-backed Long operations -
KT-78701Js and Wasm: enumValueOf does not include invalid value into an exception message -
KT-55256KJS: non-exported subclass with a no-parameter function overload doesn't compile -
KT-76034passProcessArgvToMainFunction contains the node path and script path -
KT-66091KJS, WASM:AssertionError: Illegal value: <T>in test nonReified_equality.kt -
KT-78169KJS: [NON_EXPORTABLE_TYPE] with@JsExportclass if@JsStaticcompanion method returns an out type -
KT-57192KJS: "Exported declaration uses non-exportable return type" caused by@JsExportPromise with Unit type -
KT-61183KJS: "AssertionError: Assertion failed" from JsSuspendFunctionsLowering -
KT-59326KJS / IR: invalid code generated when using constructor parameter nameddefault -
KT-70295KLIB stdlib: Unify intrinsics for boxing captured variables in lambdas across non-JVM backends -
KT-77021CompilationException: Encountered a local class not previously collected on inner classes inside anonymous objects -
KT-77320KJS: Big.js times() is compiled to multiply (*) operator -
KT-77430K/JS: Remove sharedBox* intrinsics from the standard library -
KT-73267KJS: IC: "FileNotFoundException": Build failures with Kotlin 2.1-RC and RC2 -
KT-76912KJS:@JsStaticcan't be used for companion objects implementing external interfaces -
KT-77271KJS / Serialization: "Cannot set property message of Error which has only a getter" -
KT-77242Kotlin/JS & Kotlin/Wasm backends: Artificially apply reverse topo-order after IR linkage -
KT-77649KJS: es-arrow-functions requires explicit opt-in when target is ES2015 -
KT-76235[JS] Extra invalid linetmp_0.tmp00__1 = Options;in testSuspendFunction() -
KT-76234[JS] Extra invalid lineParentin testNested() -
KT-76233[JS] Extra invalid import line in testJsQualifier() -
KT-77190Migrate JS diagnostic tests to the new CLI-based test facades (1st phase only) -
KT-77418KJS: cannot debug with whole-program granularity -
KT-77371[K/N][K/JS][K/Wasm] Unify visibility rules for generated default argument stubs -
KT-77148KJS: "Uncaught TypeError: (intermediate value).l(...).m is not a function" during production build run -
KT-77193Migrate JS irText tests to the new CLI-based test facades (1st phase only) -
KT-77192Migrate JS ABI reader tests to the new CLI-based test facades (1st phase only) -
KT-77187Migrate JS box tests to the new CLI-based test facades (1st phase only) -
KT-77027Migrate 1st phase facades to the phased CLI infrastructure in JS tests -
KT-69591KJS / d.ts: Wrong type of SerializerFactory for abstract classes -
KT-76027KJS: "ReferenceError: entries is not defined": Accessing entries of an enum arbitrarily fails with println() -
KT-76232Suspend contextual function with extension receiver results in wrong values at runtime in JS -
KT-42305KJS / IR: "Class constructor is marked as private"@JsExportproduces wrong TS code for sealed classes -
KT-52563KJS / IR: Invalid TypeScript generated for class extending base class with private constructor
Klibs
New Features
-
KT-78699Compiler (JS, Wasm): warn about incompatible kotlin-test/compiler pair -
KT-78700Compiler (JS, Wasm): Consider making diagnostics for incompatible kotlin-stdlib/compiler and kotlin-test/compiler pairs errors instead of warnings -
KT-74815KLIB resolver can't consume metadata klibs between source sets when abi_versions diverge -
KT-68322Compiler (JS, Wasm): warn about incompatible Kotlin stdlib/compiler pair
Fixes
-
KT-78168K/N: "IndexOutOfBoundsException: Index 3 out of bounds for length 3" for iOS build with Kotlin 2.2.0-RC2 -
KT-75766PL: Error on building fake override with multiple overridden members with unbound symbols in return type -
KT-75757PL: Error on building fake overrides with unbound symbols in value parameters -
KT-76094Support new callable reference nodes in partial linkage in Kotlin/Wasm -
KT-78771KLIBs: ImprovezipDirAs()function that is used to produce KLIB (ZIP) archives -
KT-75980[Klib] Reduce serialized size of IrFileEntries for sparse usage of another source files -
KT-78349[Tests] Enable Partial Linkage in all tests -
KT-76827KLIB cross-compilation tests: Don't use IR hashes and metadata hashes in test data -
KT-76266Move trigger of :tools:binary-compatibility-validator:check to native/native.tests/klib-ir-inliner -
KT-76725KLIB ABI export in older version: Restore legacy directories -
KT-76061Add option for suppress warning of missing no-existent transitive klib dependencies -
KT-76471Partial linkage: add an attribute if a class is invalid -
KT-75192KLIB reader tends to extract files from the KLIB archive to a temporary directory even when this is not needed
Language Design
-
KT-78866Warn implicit receiver shadowed by context parameter -
KT-54363Allow using reified types for catch parameters -
KT-32993Contract to specify that a function parameter is always true inside lambda -
KT-79308Ability to actualize empty interfaces as Any -
KT-8889Contracts: if a given function parameter is not null, the result is not null -
KT-22786Returns are not allowed for expression-body functions and are allowed when an inline lambda is added -
KT-77836Support using context parameter of a@RestrictsSuspensiontype as the "restricted coroutine scope" -
KT-77823Context-sensitive resolution doesn't work for subtypes of sealed types -
KT-75977False positive unresolved_reference when resolving nested member after a type check -
KT-73557Allow refining expect declarations for platform groups
Libraries
New Features
-
KT-76389Provideupdatefunctions for common atomics -
KT-78581Add the KClass.isInterface property to Kotlin/JS stdlib -
KT-34132Contract for ClosedRange.contains(T?) operator -
KT-73853Provide vararg constructors for Atomic Arrays
Fixes
-
KT-71628Review deprecations in stdlib for 2.1 -
KT-76773stdlib: contextOf's type argument can be inferred via contextOf's context argument -
KT-79489Generate Stdlib API reference for webMain source set -
KT-79080Annotate WasmImport and WasmExport as experimental API -
KT-79121K/Wasm annotate JS-interop API as experimental -
KT-78710kotlin.wasm and kotlin.wasm.unsafe packages are missing description -
KT-78709Wasm: KClass.qualifiedName KDoc should reflect the behavior on the target -
KT-78704CharSequence.subSequence and String.substring behavior with invalid indices differs between targets -
KT-78705Float.sign and Double.sign behavior for negative zero is not documented -
KT-74543Support for context parameters in kotlinx-metadata -
KT-78340String.startsWith KDoc declares invalid exception condition -
KT-78242Move IrLinkageError to the common non-JVM part of the standard library -
KT-67819Document collection interfaces contracts
Native
-
KT-79075Stuck on Kotlin_getSourceInfo_core_symbolication -
KT-76178LLVM Update: symbol '__ZnwmSt19__type_descriptor_t' missing -
KT-78959Xcode 26: fix GC stress tests -
KT-78734Finish runtime crash dump generation -
KT-74662Consider providing a way to enable stack canaries for Kotlin/Native binaries -
KT-77378[macos] Loading libraries with non resolved paths runs XProtectService -
KT-61549Kotlin/Native: remove kotlin-native/Interop/JsRuntime -
KT-76563LLVM Update: numerous "was built for newer 'macOS' version" warnings
Native. Build Infrastructure
-
KT-77349Kotlin/Native: default cache for stdlib is unused
Native. C and ObjC Import
-
KT-79571Xcode 26 beta 4: CInteropKT39120TestGenerated.testForwardEnum failed -
KT-71400Fix disabled -fmodules testing for stdarg.h
Native. ObjC Export
New Features
-
KT-77488[ObjCExport] Add explicit ObjCBlock parameter name in objc export -
KT-76974Include conflicting element in objc export warnings -
KT-76338Native, ObjCExport: Replace name mangling of special method families
Fixes
-
KT-55648Native: produce smaller binaries -
KT-78447[ObjCExport] Add missing ERROR constructors, align with K1 -
KT-78034ObjCExport: primitive type extension translated as static method -
KT-77781ObjCExport: support@ObjCNamefor function parameters and receiver parameters -
KT-77592KMP plugin uses incorrect Swift name from ObjCName annotation -
KT-77625ObjCExport: ObjCName annotation adds kotlin name swift_name -
KT-77484KotlinConf app: Invalid identifiers inObjCHeader.render -
KT-77500IllegalStateExceptionduring generating ObjC header stubs
Native. Runtime
-
KT-79152Native: unexpected thread state in kotlin::to_string
Native. Runtime. Memory
-
KT-78925Crash SIGABRT on Apple Watch after updating Kotlin to 2.2.0 -
KT-76851Kotlin/Native: GC scheduler MutatorAssists requestAssists and completeEpoch issue -
KT-63143Kotlin/Native: execute Cleaners on the finalizer thread
Native. Swift Export
-
KT-79105ConcurrentModificationException During Swift Export Caused by Usage of Array -
KT-79227Swift Export: Fix First Release Issues -
KT-78947Implement FUS for Swift export -
KT-79521'_CoroutineScope' is inaccessible due to 'internal' protection level -
KT-79181Swift Export Fails When Using T: Comparable Generic Constraint in Kotlin Classes -
KT-77650Swift export execution tests fail with caches enabled -
KT-77634K/N: swift export tests started failing after hyper-existentials -
KT-77290Transitive Export on swift export can duplicate declarations
Tools. Build Tools API
-
KT-78415Add a tool for performance reports analysing
Tools. CLI
New Features
-
KT-75812Basic DSL for compiler arguments representation
Fixes
-
KT-78318Unresolved reference when compiling kotlin/JS project on fresh master -
KT-75968Set proper lifecycle for all existing compiler arguments -
KT-77445UNRESOLVED_REFERENCE when importing classes from kotlin-stdlib -
KT-77030Implement setup of HMPP sessions for KLib-based compilers -
KT-78578Support for placeholder (*) and directory in-Xdump-perf -
KT-78129Compiler cannot parse -Xfragment-dependency with a comma in the path -
KT-76828Warning doesn't exist error with -Xwarning-level when the source file has no code -
KT-76957Incorrect error message when severity is set with -Xsuppress-warning and -Xwarning-level for the same diagnostic -
KT-76829UnsupportedOperationException when reenabling a taking place warning with -Xwarning-level -
KT-76111kotlinc warns about org.fusesource.jansi.internal.JansiLoader call to System.load -
KT-76447Remove -Xjps compiler argument
Tools. Compiler Plugin API
-
KT-78279Make the DiagnosticReporter default way for reporting in IR plugins -
KT-77157Cannot create a symbol pointer for local class generated by FirFunctionCallRefinementExtension
Tools. Compiler Plugins
New Features
-
KT-78038Make jvm-abi-gen compiler plugin output classloader-friendly -
KT-77339Update kotlin dataframe dependency to 1.0.0-dev-6925
Fixes
-
KT-78969[DataFrame] Provide source elements for plugin-generated classes -
KT-75265PowerAssert: the result of invoke is displayed at the same level as value that can be confusing -
KT-78490"AssertionError: SyntheticAccessorLowering should not attempt to modify other files" when calling protected open composable with default argument -
KT-77626K2: AssertionError: FUN LOCAL_FUNCTION_FOR_LAMBDA has no continuation -
KT-78671[DataFrame] Support type parameter types in DataSchema to fix evaluate expression -
KT-78439DataFrame compiler plugin: Unresolved reference error in REPL -
KT-75876PowerAssert: don't display results for assertion operator -
KT-75514[JS][Native] Add IrPreSerializationLoweringFacade to Atomicfu test runners -
KT-77719Remove suppress INVISIBLE_REFERENCE from DataFrame plugin -
KT-77691Kotlin DataFrame plugin: IR and FIR anonymous functions have inconsistent receivers -
KT-77455kotlin-dataframe plugin throws NoClassDefFoundError in IDE -
KT-77437Kotlin DataFrame: Add configuration key to disable top level properties generator -
KT-74366Delete kotlin-android-extensions compiler plugin -
KT-73364Migrate atomicfu sources to new IR parameter API
Tools. Compiler plugins. Serialization
-
KT-79695Serialization does not exclude field-less properties in 2.2.20-Beta2 -
KT-73365Migrate kotlinx-serialization sources to new IR parameter API
Tools. Gradle
New Features
-
KT-76421Stabilize klib cross-compilation on different platforms -
KT-77107Introduce Kotlin ecosystem plugin
Fixes
-
KT-80172Error message changes depending on the order of applying 'org.jetbrains.kotlin.android' and 'AGP' 9.0+ with built-in Kotlin plugin -
KT-77546Implement basic support for HMPP compilation scheme support in KGP -
KT-79034Automatically disable cross compilation if it's not supported on the host -
KT-79408A lot of errors files are created when compile Kotlin -
KT-77785Add -fmodules option to CocoaPod dependency by default -
KT-75921Make Swift Export available by default -
KT-63383Add compiler performance metrics to Native build reports -
KT-77023Support creating KotlinJvmAndroidCompilation in KotlinBaseApiPlugin -
KT-74420Migrate kotlin-parcelize away from AGP's deprecated Variant API -
KT-78233Add ExperimentalFeatureWarning unique id -
KT-67992Cleanup deprecated code required for KSP1 -
KT-72341Remove 'kotlin-android-extensions' plugin -
KT-67291Enable Project Isolation AND/OR Configuration Cache mode for Gradle Integration tests -
KT-78325Kotlin ecosystem plugin rejects compatible Gradle patch version when DCL is enabled -
KT-76353Handle migration to stable -jvm-default in KGP: replace deprecated option and suppress warnings -
KT-76797KGP: StdlibDependencyManagementKt.configureStdlibVersionAlignment() triggering eager configuration realization -
KT-77163Migrate Swift Export IT to injections -
KT-76282Add missing Android Gradle plugin versions in tests -
KT-77011Update build regression benchmarks for 2.2.0 release -
KT-76138Compile against Gradle API 8.14 -
KT-76139Run integration tests against Gradle 8.14 -
KT-77035A compiler diagnostic isn't reported when its severity is set to warning with Gradle -
KT-76951'distribution-base' plugin is only applied in Gradle 8.13 -
KT-73142Kotlin Gradle plugin: Remove usage of Gradle's internal ExecHandleBuilder -
KT-76740Use Problems API for warning introduced in KT-75808 -
KT-65271Gradle: "Mutating dependency DefaultExternalModuleDependency after it has been finalized has been deprecated " with gradle 8.6-rc-3
Tools. Gradle. Cocoapods
-
KT-76035Allow extra command line arguments in PodBuildTask -
KT-78387Kotlin Cocoapods Gradle Plugin is not compatible with Gradle isolated projects -
KT-79429K/N: Cocoapods: IllegalArgumentException: "cinterop doesn't support having headers in -fmodules mode" with 2.2.20-Beta1 if explicitly not specify false for 'useClangModules'
Tools. Gradle. Compiler plugins
-
KT-66728Deprecatekapt.use.k2property
Tools. Gradle. JS
New Features
-
KT-75480Add shared source set for js and wasmJs target -
KT-77073generateTypeScriptDefinitions() does not add generated .d.ts file to package.json automatically
Fixes
-
KT-77319KJS / Gradle: generateTypeScriptDefinitions() generates wrong file extension when outputting ES modules -
KT-79921Web Tooling Gradle API does not respect webpack reconfiguration -
KT-76996Wasm: js tasks triggers wasm subtasks -
KT-79237Upgrade NPM dependencies versions -
KT-79188Pre-generated accessors aren't available for webMain / webTest source sets -
KT-78504[2.2.0-RC3] NPM Tasks in 2.2 RCs produce broken/unusable build cache entries -
KT-77443NPE: "NullPointerException: Cannot invoke org.gradle.api.tasks.TaskProvider.flatMap(org.gradle.api.Transformer)": ExecutableWasm.optimizeTask is accessed before initialization -
KT-76987JS, Wasm: Upgrade NPM dependencies -
KT-77119KJS: Gradle: Setting custom environment variables in KotlinJsTest tasks no longer works -
KT-74735KGP uses Gradle internalCompositeProjectComponentArtifactMetadata
Tools. Gradle. Multiplatform
New Features
-
KT-69790Report human-readable error when declared dependency doesn't support required target types -
KT-76446Add kotlin-level dependency block to work the same way as commonMain/commonTest dependencies blocks
Fixes
-
KT-78297FileNotFoundException in generateMetadataFile task if non-packed=false -
KT-62294kotlin-parcelize plugin does not support the new android kotlin multiplatform plugin -
KT-77404The kotlin-stdlib and annotations are missing from commonTest dependencies with 2.2.0-Beta1 -
KT-79559AGP complains about configurations resolved at configuration time due to KMP partially resolved dependencies diagnostic -
KT-78993The value for property '*' property 'dependencies' is final and cannot be changed any further -
KT-77843KGP fails with Gradle 9 onProjectDependency.getDependencyProject() -
KT-79315Early task materialization with cross-project configuration breaks configuration due to KMP partial resolution checker -
KT-77466KMP - testFixturesApi and similar configurations do not affect jvmTestFixtures source set -
KT-78433Gradle: add tracking of the new KMP compilation scheme to FUS -
KT-78431Gradle: in-process metadata compiler uses deprecated K2MetadataCompiler -
KT-77414KMP dependencies in detached source sets cause IDE resolution to write error logs: "kotlin-project-structure-metadata.json (No such file or directory)" -
KT-76200TestModuleProperties.productionModuleName for JVM module isn't present with 2.1.20-RC
Tools. Gradle. Native
-
KT-51301Remove ability to use Native non-embeddable compiler jar in Gradle plugin -
KT-74864Enable exporting KDocs by default to ObjC -
KT-77977"Unknown hardware platform: riscv64" on JVM project build -
KT-78838Add default 3G max heap size for the commonizer JVM process -
KT-68256Reduce commonizer max heap size to default 3g and allow users to configure it -
KT-77067Kotlin Gradle plugin with the configuration cache passes all platform libraries to the compiler when compiling a binary for the first time
Tools. Gradle. Swift Export
-
KT-79554Swift Export status diagnostic is produced even if swift export is not configured -
KT-78385Swift Export is not compatible with Gradle isolated projects -
KT-79524NoSuchMethodError: 'java.lang.String org.gradle.api.artifacts.ProjectDependency.getPath() for swift export with dependency export fro gradle < 8.11
Tools. Incremental Compile
-
KT-60653IC does not handle changes in inline functions objects/lambdas correctly -
KT-78807Changing ABI fingerprint on non-ABI changes when lambda passed to inlined function -
KT-69075Incremental compilation: smartcast is impossible on field with@JvmName
Tools. JPS
-
KT-77347Support file-less compatible IC approach -
KT-78444Clean up JPS code base -
KT-75460Adding@PurelyImplementsannotation to a List does not cause incremental recompile of affected files -
KT-50594Fix org.jetbrains.kotlin.arguments.CompilerArgumentsContentProspectorTest
Tools. Kapt
-
KT-79138K2: KAPT Java Stub Gen:Unresolved referencewith@kotlin.Metadata in Java in 2.2.0 -
KT-79641Kapt: too much information is printed in verbose mode -
KT-79136K2 kapt: unresolved nested class references in annotation arguments are generated without outer class names -
KT-79133K2 kapt: class literal with typealias is not expanded -
KT-77853K2 KAPT: backend internal error: exception during IR fake override builder -
KT-73322MigrateFirKaptAnalysisHandlerExtensioncompilation pipeline to the phased structure
Tools. Maven
-
KT-77587Maven: Introduce Kotlin daemon support and make it enabled by default -
KT-63688Remove JS-related stuff from kotlin-maven-plugin
Tools. Maven. Compiler plugins
-
KT-77511Add maven plugin for Kotlin DataFrame plugin
Tools. REPL
-
KT-78755[K2 Repl] Redeclaring variables does not work -
KT-75632Contunue deprecation of the REPL built intokotlinc -
KT-77470[K2 Repl] Lazy Properties crash code generation -
KT-76507[K2 Repl] Delegated properties are not visible in the next snippet -
KT-76508[K2 Repl] Annotations on property accessors are not resolved -
KT-75672[K2 Repl] Serialization plugin crashes compiler backend
Tools. Scripts
-
KT-78378"Explain" feature of the kotlin script fails on hidden variables
Tools. Statistics (FUS)
-
KT-79455[FUS] Collect KSP plugin version -
KT-77755[FUS Pipeline] Fus file format -
KT-77995Do not collect FUS metrics on TeamCity
Tools. Wasm
-
KT-76842K/Wasm: serve project sources in *DevRun tasks by default -
KT-78921K/Wasm: don't generate empty yarn.lock file -
KT-75714Wasm: Move tooling NPM dependencies outside user project -
KT-70013.gradle/yarn and .gradle/node are part of Gradle configuration cache -
KT-76838K/Wasm: No possible to set downloadBaseUrl to null for D8 and Binaryen -
KT-76948Wasm: Rename kotlinBinaryenSetup and kotlinD8Setup
v2.2.10
Compiler
-
KT-79276Dexing fails with "Cannot read field X because is null" with 2.2.0 -
KT-79442"Multiple annotations of type kotlin.coroutines.jvm.internal.DebugMetadata": 2.2.0-Beta1 generates broken code with JVM default suspend methods in interfaces -
KT-78815Symbol not found: __ZNSt3__117bad_function_callD1Everror on iOS 15.5 simulator in Xcode 16.3 after update to 2.2.0-Beta2 -
KT-78501K2: Missing [ABSTRACT_SUPER_CALL] diagnostics for delegated interface method leads to AssertionError: isCompiledToJvmDefault during IR lowering -
KT-78479IR lowering failed / Unexpected null argument for composable call -
KT-76477Kotlin/Native: fix compiler performance reporting in sources->klib and klibs->binary -
KT-78736Missing [NOT_YET_SUPPORTED_IN_INLINE] diagnostics because of incorrect context update -
KT-77685"IllegalArgumentException: Sequence contains more than one matching element" -
KT-76365K2: Missing ABSTRACT_SUPER_CALL -
KT-78352False-positive IDENTITY_SENSITIVE_OPERATIONS_WITH_VALUE_TYPE when comparing with equality operator (==)
Compose compiler
-
KT-78479Ensure that default transform affects functions entered through a call -
KT-78490Fix visibility for default wrappers of protected methods -
b/408492167Emit parameter names in Compose source information
JavaScript
-
KT-79050KJS / IC: "Unexpected body of primary constructor for processing irClass" -
KT-79089KJS: Could not load reporter / Cannot find module 'mocha' when running jsNode tests
Native
-
KT-79075Stuck on Kotlin_getSourceInfo_core_symbolication -
KT-76178LLVM Update: symbol '__ZnwmSt19__type_descriptor_t' missing
Native. Runtime. Memory
-
KT-78925Crash SIGABRT on Apple Watch after updating Kotlin to 2.2.0
Tools. CLI
-
KT-77445UNRESOLVED_REFERENCE when importing classes from kotlin-stdlib -
KT-78263java.lang.NoClassDefFoundError: Could not initialize class com.intellij.psi.impl.PsiSubstitutorImpl -
KT-78318Unresolved reference when compiling kotlin/JS project on fresh master
Tools. Compiler Plugins
-
KT-78490"AssertionError: SyntheticAccessorLowering should not attempt to modify other files" when calling protected open composable with default argument -
KT-78038Make jvm-abi-gen compiler plugin output classloader-friendly
Tools. Gradle
-
KT-77023Support creating KotlinJvmAndroidCompilation in KotlinBaseApiPlugin
Tools. Gradle. JS
-
KT-78504[2.2.0-RC3] NPM Tasks in 2.2 RCs produce broken/unusable build cache entries
Tools. Gradle. Multiplatform
-
KT-77466KMP - testFixturesApi and similar configurations do not affect jvmTestFixtures source set -
KT-68646Compose extension's metrics/reports dir should use subdirs based on target
Tools. Gradle. Native
-
KT-77977"Unknown hardware platform: riscv64" on JVM project build
Tools. Incremental Compile
-
KT-78807Changing ABI fingerprint on non-ABI changes when lambda passed to inlined function
Tools. Kapt
-
KT-77853K2 KAPT: backend internal error: exception during IR fake override builder -
KT-79138K2: KAPT Java Stub Gen:Unresolved referencewith@kotlin.Metadata in Java in 2.2.0
v2.2.0
Analysis API
-
KT-73337Migrate analysis sources to new IR parameter API -
KT-75880K2 Mode: Typealias reference resolves to the underlying class in KMP project -
KT-74246KaVisibilityChecker.isVisible is inefficient with multiple calls on the same use-site -
KT-57733Analysis API: Use optimizedModuleWithDependenciesScopes in combined symbol providers -
KT-69535Redesign 'containingSymbol' -
KT-69950Analysis API: IntroduceisSubtypeOf(ClassId) -
KT-68393Analysis API: RenameKaClassLikeSymbol. classIdIfNonLocaltoclassId -
KT-62924Analysis API: rename KtCallableSymbol.callableIdIfNonLocal -> callableId
Analysis API. Code Compilation
-
KT-75502K2: IDEA hangs when evaluating inside kotlin-stdlib modules in the Kotlin project -
KT-73077Evaluation of inline functions is broken inside Kotlin project and Amper module in Idea sources -
KT-73936K2: CyclicInlineDependencyException: Inline functions have a cyclic dependency in evaluator -
KT-74582InterpreterMethodNotFoundError when trying to evaluate simple expressions after recent fixes -
KT-74524Compilation exception with incorrect JvmName annotation arguments -
KT-74443Compilation peer collector ignores inline property accessors
Analysis API. FIR
New Features
-
KT-73493Support context parameters
Performance Improvements
-
KT-75790Experiment with increasing DEFAULT_LOCKING_INTERVAL time -
KT-72159LLFirCompilerRequiredAnnotationsTargetResolver: consider rewriting it to use honest jumping locks
Fixes
-
KT-76331Cleanup FileStructureElement for classes -
KT-73117K2 AA: Exception "Setter is not found" when val has a setter without body -
KT-76540K2: Missing library dependency on Android SDK from androidx.activity-1.8.2 causes LiveEdit failures -
KT-73266K2. "Declaration should have non-local container" with unclosed annotation on top-level function -
KT-76432JavaClassUseSiteMemberScope: Expected FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl -
KT-76217K2 AA: "No fir element was found for KtParameter" with multiple context parameter lists -
KT-74740Highlighting is broken after the built-in serialization refactoring -
KT-76366ContextCollector: annotations on class members don't have the class as implicit receiver -
KT-76352ContextCollector: wrong class annotation context in BODY mode -
KT-76341ContextCollector: support dangling modifiers -
KT-76332"Declaration should have non-local container" for declaration inside file annotation -
KT-76115DisableFirElementBuilder#getFirForElementInsideAnnotationsoptimization for files, classes and scripts -
KT-76347ContextCollector: avoid resolution for enum entry annotations -
KT-76272Cleanup AbstractFileStructureTest -
KT-75542K2 AA: "FirDeclaration was not found for class KtNamedFunction, fir is class FirErrorExpressionImpl" for unclosed annotation on member function -
KT-73719K2. "FirDeclaration was not found for class KtDestructuringDeclaration, fir is class FirBlockImpl" on incorrect chain call -
KT-72908K2 Analysis API: "FirDeclaration was not found for class org.jetbrains.kotlin.psi.KtFunctionLiteral" with non-local destructuring declaration without initializer beforeinitblock -
KT-75532ContextCollector: scope for an anonymous function type parameter contains regular parameters -
KT-74508FirElementBuilder#findElementInsideshould reuse logic fromKtToFirMapping#getFir -
KT-73066[LL] Enable low-level-api-fir-native even with the disabled native part -
KT-75132Investigate failures of sandbox diagnostic test -
KT-75130Set up LL FIR tests for sandbox test data -
KT-73386Standardize LL FIR test for compiler test data -
KT-75125ISE “Value classes cannot have 0 fields” on instantiating inline class without fields -
KT-75179ContextCollector: support error properties -
KT-74632K2: ISE FirLazyDelegatedConstructorCall should be calculated before accessing -
KT-74818K2 AA: "FirDeclaration was not found for class KtTypeParameter, fir is null" with TYPE_PARAMETERS_NOT_ALLOWED on anonymous function -
KT-73183Support context parameters in ContextCollectorVisitor -
KT-60350K2 IDE: top level destructuring RHS should be resolvable -
KT-74794K2: FirLazyExpression should be calculated before accessing with context parameter and implicit return type -
KT-72938Get rid of KaFirAnnotationListForReceiverParameter -
KT-73727Exception in implicit type resolution
Analysis API. Infrastructure
-
KT-74917[Analysis API, Test Framework] Introduce a way to acquirePsiFilefor a givenTestFileinKtTestModule
Analysis API. Light Classes
-
KT-73405Get rid of KtElement#{symbolPointer, symbolPointerOfType} API usages -
KT-75391Reduce the amount of psi-based logic in light classes -
KT-70001SLC adds@Overridewith zero text offset onoverridemember -
KT-75755K2. False positive red code on vararg parameters in Kotlin class with@JvmOverloadswhen called from Java -
KT-75397Constructors and functions with non-last vararg parameters are treated as varargs -
KT-74868Support context parameters -
KT-74733SymbolPsiLiteral.text == value for Java constant -
KT-74620Delegated functions with value classes are present in light classes -
KT-74595Static functions with value classes are present in light classes -
KT-74284Synthetic data class methods using value class types present in LC
Analysis API. Providers and Caches
Performance Improvements
-
KT-62115Analysis API: Package providers are not cached per search scope -
KT-74463Analysis API:LLNativeForwardDeclarationsSymbolProviderqueries its cache even when theClassIdcannot represent a native forward declaration
Fixes
-
KT-74541Analysis API: Include files generated by resolve extensions inKaModulecontent scopes -
KT-64236Analysis API: Introduce a separate module for fallback dependencies of library source modules -
KT-74090Analysis API: Support dumb mode (restricted analysis) -
KT-63780Analysis API: Invalidate resolvable library sessions when binary library modules are modified -
KT-72388KaFirStopWorldCacheCleaner: Control-flow exceptions -
KT-74943Analysis API: ReplaceKotlinGlobalModificationServicewith simpler global modification event publishing and listener-based modification trackers -
KT-70518K2: Analysis API: Access indices outside ofConcurrentMapcomputation in symbol providers -
KT-74302Analysis API:LLFirProvidershould disregard self-declarations ingetFirClassifierBy* -
KT-67868Analysis API: Improve the architecture ofLLFirKotlinSymbolProviders
Analysis API. Standalone
-
KT-72810withMultiplatformLightClassSupport is inconvenient in Standalone
Analysis API. Stubs and Decompilation
-
KT-71787PsiRawFirBuilder.Visitor#visitStringTemplateExpressionforces AST loading -
KT-68484K2 IDE, Analysis API: "We should be able to find a symbol for function" for getting KaType ofIterable<T>.map(transform: (T) -> R)parameter in J2K
Analysis API. Surface
New Features
Performance Improvements
-
KT-73669Support psi-based symbol pointer for implicit primary constructors -
KT-76008Provide PSI-based implementation forKaFirNamedClassSymbol#companionObject -
KT-70165Introduce PSI-basedKaSymbols for K2
Fixes
-
KT-72730K2: "Unexpected owner function: KtNamedFunction" on vararg val parameter in function -
KT-75123K2. KaFirNamedFunctionSymbol should contain a receiver -
KT-75894Cannot build KaFirJavaFieldSymbol for FirFieldImpl -
KT-75115Analysis API: TheJavaModuleResolvercompiler class is leaked to Analysis API platform implementations -
KT-76018K2: Stop the wold leads to deadlock/freeze -
KT-76011KaFirNamedClassSymbol#companionObjectdoesn't provide generated objects generated by compiled plugins -
KT-72482"KotlinIllegalArgumentExceptionWithAttachments: Expected all candidates to have same callableId but some of them but was different" on trying to add the import -
KT-75586KaFirPropertyGetterSymbol#isInlineandKaFirPropertySetterSymbol#isInlineis incorrect for accessors with explicit modifier -
KT-58572Analysis API: Enforcing STATUS resolve in 'KtFirNamedClassOrObjectSymbol.visibility' may cause lazy resolve contract violation -
KT-75574Recognize injected code fragment copies -
KT-75573Recognize physical file copies as dangling files -
KT-74801Analysis API: Publish/subscribe to modification events with a single message bus topic -
KT-73290Analysis API: Improve the architecture of content scopes and resolution scopes -
KT-68901Constructor delegation call receiver missing in fir implementation -
KT-72639Support context parameter API -
KT-73112AA: FirExpression.toKtReceiverValue should handle context receivers properly -
KT-74905Cannot find context receiver in FIR declaration -
KT-74563createPointeris overloaded not for all implementations -
KT-73722Analysis API: Automatically check that the API surface is fully documented -
KT-65065ProvideKtTypeReference#getShortTypeText()
Backend. Native. Debug
-
KT-75991Xcode 16.3: Fix lldb stepping test over an inline function
Backend. Wasm
New Features
-
KT-59032Support instantiation of annotation classes on WASM
Fixes
-
KT-77622K/Wasm: investigate CMP crash on mobile Safari -
KT-76747[Wasm] Wasm name section absent for wasm structs -
KT-76701K/Wasm: custom formatters are not loaded when a project is built with incremental compilation -
KT-66081K/WASM:0/0,5/0and5%0throw not ArithmeticException, but RuntimeError -
KT-76287[Wasm] Enable stdlib and kotlin.test tests after compiler bootstrap -
KT-75871[Wasm] Implement new RTTI approach -
KT-75872Wasm / IC: IllegalStateException: IC internal error: can not find library -
KT-74441K/Wasm: incorrect 1e-45.toString() -
KT-59118WASM: floating point toString inconsistencies -
KT-68948Wasm: float from variable is printed with many decimal points -
KT-69107[wasm] Seemingly incorrect rounding -
KT-73362Migrate K/Wasm sources to new IR parameter API
Compiler
New Features
-
KT-70722Implement better Kotlin warnings for value classes and JEP 390 (Warnings for Value-Based Classes) -
KT-71768Enable -Xjvm-default=all-compatibility by default to generate JVM default interface methods -
KT-54205Support jakarta Nullability annotations -
KT-57919Store all annotations in Kotlin metadata on JVM under a flag -
KT-73255Change defaulting rule for annotations -
KT-74382Annotating Java record components for@JvmRecorddata class -
KT-74811Prohibit usages of@MustUseValue/@IgnorableValueif RV checker is not enabled -
KT-74806Implement feature flag for improved unused return value checker -
KT-74809Support unnamed local variables -
KT-73508Add a warning diagnostic for using kotlin.concurrent.AtomicRef -
KT-72941ANNOTATIONS_ON_BLOCK_LEVEL_EXPRESSION_ON_THE_SAME_LINE missing in K2 -
KT-74497Warn about incompatible Kotlin and Java targets in annotations -
KT-75061Support context-sensitive resolution in type position -
KT-75315Support context-sensitive resolution in the call-argument position -
KT-75316Support context-sensitive resolution for expression-position with expected type -
KT-76088Support context-sensitive resolution for annotation arguments -
KT-74049Introduce special override rule to allow overriding T! with T & Any
Performance Improvements
-
KT-76395Performance degradation on 28.03.2025 -
KT-76422FirJavaFacade#createFirJavaClass: do not compute super type references right away -
KT-75957K2: PsiRawFirBuilder.Visitor#toFirExpression forces AST loading via getSpreadElement -
KT-74824Exponential performance caused by nested flexible types -
KT-62855K2: extra allocation for SAM conversion compared to K1 -
KT-74977K/N: support stack array for Array(size) call -
KT-74369Exponential compiler memory usage in specific situations with type inference
Fixes
-
KT-76606Enable 'Indy: Allow lambdas with annotations' by default -
KT-77301False positive Context Parameter resolution when using DslMarker -
KT-74389K2: False positive NON_EXPORTABLE_TYPE on non-UnitPromise<...>in K/JS -
KT-77219"@Composableannotation is not applicable" on vararg@Composable() -> Unit in Kotlin 2.2.0 -
KT-76357K2: a nested class annotation observes member declarations of the outer class -
KT-72734Support new callable reference nodes in Kotlin Native -
KT-74421K2: Missing "val cannot be reassigned" when trying to assign a value to parent's "val" -
KT-63720Coroutine debugger: do not optimise out local variables -
KT-74470NSME on calling in runtime internal constructor of value class with default arg from tests -
KT-77640Context parameters: using 'contextOf()' function leads to [NO_CONTEXT_ARGUMENT] -
KT-73909Add an inspection discouraging usage of kotlin.concurrent Native atomics in favor of the new atomics -
KT-76583CCE: suspend lambda attempts to unbox value class parameter twice after lambda suspended -
KT-76663KJS: KotlinNothingValueException caused by expression return since 2.1.20 -
KT-75457Native: cache machinery uses stdlib cache with default runtime options even if custom runtime options are supplied when partial linkage is disabled -
KT-76615K2: "IllegalArgumentException: Inline class types should have the same representation: Lkotlin/UByte; != B" for mixed Java/Kotlin code -
KT-77220Annotation with EXPRESSION is not allowed on lambdas in Kotlin 2.2.0 -
KT-76381K2: Expected expression 'FirPropertyAccessExpressionImpl' to be resolved -
KT-74739Native: "IllegalArgumentException: All constructors should've been lowered: FUNCTION_REFERENCE" -
KT-74325Explicit API mode does not enforce explicit return types for extension properties -
KT-77259Confusing message forANNOTATION_WILL_BE_APPLIED_ALSO_TO_PROPERTY_OR_FIELD -
KT-73771K2: Infinite compilation caused by buildList without type -
KT-61258Kotlin/Native: CLASS CLASS name: modality:FINAL visibility:local superTypes:[.Base] -
KT-75317Kotlin/Native: segfault in kotlin::gc::Markkotlin::gc::mark::ConcurrentMark::MarkTraits -
KT-75965The iOS app did not run successfully in Release mode -
KT-77397Report UNSUPPORTED_CONTEXTUAL_DECLARATION_CALL when calling declaration with contextual function type in signature -
KT-77137K2: Controversial behavior allows resolving annotation arguments on a companion inside it -
KT-77150Native: compilation fails with an assertion error -
KT-51960ClassCastException: Inline function with both context and extension receiver produces this when invoked -
KT-73611Remove -Xextended-compiler-checks in favor of a deprecation cycle -
KT-74649Deprecate language versions 1.8 and 1.9 -
KT-77283Binary compatibility of FirDeclarationChecker -
KT-73445K2: do not report "cannot infer visibility" when inheriting multiple implementations -
KT-75945Indy: Allow lambdas with annotations -
KT-76898K2: ClassCastException when data class shadows supertype'scomponentXmethod with wrong type -
KT-75992Xcode 16.3: stacktraces on simulators are not symbolicated -
KT-76805Wrong NPE occurs when assigning synthetic properties with platform types in Kotlin 2.1.20 -
KT-76171"KotlinIllegalArgumentExceptionWithAttachments: Expected expression 'FirSingleExpressionBlock' to be resolved" -
KT-77078K2: anonymous object is wrongly allowed to implement interfaces by unsafe Delegation -
KT-72722Treat 'copy' calls of a data class as explicit constructor usages -
KT-77001Leave ForbidParenthesizedLhsInAssignments as a warning -
KT-75828Store backing field/delegate annotations and extension receiver annotations in metadata -
KT-58369K2: enable DFA warnings -
KT-51258Annotations should go before context receivers -
KT-76253K2 Compiler: Less precise diagnostic COMPONENT_FUNCTION_AMBIGUITY for flexible type -
KT-59526Store annotation default values in metadata on JVM -
KT-63850K2: setter with an annotated parameter hasisNotDefault == falseflag in metadata -
KT-75712-Wextra: false positive UNUSED_LAMBDA_EXPRESSION on functional type variable assignment with inferred type -
KT-4779Generate default methods for implementations in interfaces -
KT-69624Debugger: Missing local variable in Variables view (inline function) -
KT-75518NO_CONTEXT_ARGUMENT should report the name of the context parameter in addition to the type -
KT-76199Introduce -Xcontext-sensitive-resolution compiler flag -
KT-75553MISSING_DEPENDENCY_SUPERCLASSandMISSING_DEPENDENCY_SUPERCLASS_WARNINGis reported at the same time on the same element -
KT-76159Obsolete error "'@JvmDefaultWithCompatibility' annotation is only allowed on interfaces" should be removed -
KT-76660False negative RETURN_NOT_ALLOWED in lambda in default argument leads to NoClassDefFoundError: $$$$$NON_LOCAL_RETURN$$$$$ -
KT-76301Fail to infer types after syntactical change -
KT-74999K2: KotlinNothingValueException within Extension Function -
KT-76675KIAEWA exception at KaFirDataFlowProvider with non-local return from nested inline call -
KT-75756Backend Internal error: Exception during IR lowering when trying to access variable from providedProperties in class within kotlin custom script -
KT-76345Enhance variable fixation -
KT-76578[FIR, K1/K2 Regression]lateinitis allowed on loop parameters -
KT-76448FirOverrideChecker: class ClsMethodImpl is not a subtype of class KtNamedDeclaration for factory VIRTUAL_MEMBER_HIDDEN -
KT-73360Migrate K/JVM sources to new IR parameter API -
KT-74852Kotlin/Native: allow caches for thread state checker and sanitizers -
KT-76130IR evaluator does not support array literals in annotation parameter default values -
KT-76436Missing K2 checker: non-local return through lambda passed to inline f/o -
KT-74326False negative: no variable must be initialized error though code doesn't compile -
KT-76572FIR_NON_SUPPRESSIBLE_ERROR_NAMES does not contain deprecation errors -
KT-75704RefactorFirWhenSubjectExpression -
KT-76284Flexible captured type is not approximated in receiver position -
KT-76192RETURN_TYPE_MISMATCH with same expected and actual type: nullability of actual type is omitted -
KT-75944Allow using invokedynamic for lambdas with no 'Runtime' level retention annotations -
KT-76396FirIntegerConstantOperatorScope: NoSuchElementException: Collection contains no element matching the predicate -
KT-76209CONFLICTING_UPPER_BOUNDS onNothingbound -
KT-59506Context receivers: Unable to use trailing comma in receiver list -
KT-46119NONE_APPLICABLE instead of NAMED_ARGUMENTS_NOT_ALLOWED with overloaded Java constructor call -
KT-75503Run lazy resolution in CallableCopyTypeCalculator and use withForcedTypeCalculator everywhere in checkers -
KT-76485Don't report EXTENSION_SHADOWED_BY_MEMBER if extension can be called with named arguments -
KT-76154False positive "EXTENSION_SHADOWED_BY_MEMBER" when extension adds default values to parameters -
KT-76527False positive UNSUPPORTED_CONTEXTUAL_DECLARATION_CALL with -Xcontext-receivers and implicit invoke -
KT-63246K2: False positive NOTHING_TO_OVERRIDE in generic property with context receiver in non generic class extending generic class -
KT-58534K2: "Argument type mismatch" with typealias to context receiver functional type -
KT-71792Switch latest stable version in Kotlin project to 2.2 -
KT-74827CompilationErrorException : Could not load module in an attempt to find deserializer when trying to evaluate an expression -
KT-70352K2: False-negative CONFLICTING_UPPER_BOUNDS onNothingbound -
KT-71481K2: drop pre-1.6 language features from compiler code -
KT-74454Support trailing comma in context parameters -
KT-74069False positive UNUSED_EXPRESSION due to Long/Int conversion -
KT-74337Local Delegated properties don't preserve their annotations and don't show up in reflection -
KT-55187Context receivers in function types can have labels -
KT-58498Context receivers: ClassCastException with object and extension function in interface -
KT-58165K2: "IllegalArgumentException: No argument for parameter VALUE_PARAMETER" on overridden contextual property -
KT-75234Add error for callsInPlace contracts on context parameters -
KT-73805K2: Investigate missing diagnostic in implicit invoke call on context function type with receiver from module with disabled context parameters -
KT-41934NI: a type variable for lambda parameter has been inferred to nullable type instead of not null one -
KT-75983Backend Internal error: Exception during IR lowering 'IllegalStateException: Internal error: cannot convert Any to Int' -
KT-75535Compilation of typealias does not check for clashes -
KT-72313K2 IDE / KMP Debugger: Evaluation of inline functions declared in a common source set causes a crash -
KT-76290False positive UNUSED_EXPRESSION while returning Unit in the when branches -
KT-32358NI: Smart cast doesn't work with inline function after elvis operator -
KT-76316K2: Missing NON_PUBLIC_CALL_FROM_PUBLIC_INLINE on object extending private class in public inline function -
KT-76324Frontend diagnostic says "... this will be an error in Kotlin N.M" but N.M is already released -
KT-76058PCLA: compile-time failure on calling a higher-order function from another module inside a lambda assigned to a variable of a type with a postponed type variable -
KT-75571K2: type mismatch error provides unsubstituted types -
KT-31391'Recursive call is not a tail call' with elvis operator in tailrec function -
KT-73420False-positiveNON_TAIL_RECURSIVE_CALLon tailrec function with elvis in the return statement -
KT-75815Disable warnings about different context parameter names in overrides -
KT-75169Unnecessary EXTENSION_SHADOWED_BY_MEMBER on generic declarations -
KT-75483Native: redundant unboxing generated with smart cast -
KT-76339K2: Dangling modifier list is missed for enum entries in PSI mode -
KT-75513Avoid overrides traversal without preinitialization -
KT-74587Report an error when JvmDefaultWithoutCompatibility is used with -Xjvm-default=all -
KT-76257Annotations with class references are not supported when marking IR declarations as visible to metadata -
KT-71793Drop language versions 1.6 and 1.7 -
KT-59272Incorrect bytecode generated: wrong line number table after condition -
KT-69248K2: IAE “class KtDotQualifiedExpression is not a subtype of class KtCallExpression for factory ENUM_CLASS_CONSTRUCTOR_CALL” with qualified enum constructor call -
KT-73778Kotlin Debugger: NSFE on accessing private property from dependencies during evaluation -
KT-74131Incorrect line numbers for static initializer with delegated local variable -
KT-76320K2: PsiRawFirBuilder: import alias triggers ast loading -
KT-63851K2: NosetterValueParameterin metadata for property setter with an annotated parameter -
KT-55083JVM: AbstractMethodError caused by lambda with sealed base interface and fun sub interface and overridden method -
KT-16727Names for anonymous classes in interfaces are malformed on JDK 8 -
KT-12466NoClassDefFoundError: B$DefaultImpls on super interface call through K-J-K inheritance -
KT-71002Possible inheritance from nullable type through typealias -
KT-75293K2: Missing [HAS_NEXT_FUNCTION_TYPE_MISMATCH] diagnostics -
KT-75498Forbid .declarations access from checkers -
KT-72335KotlinIllegalArgumentExceptionWithAttachments when using illegal selector -
KT-68375K2: FirPrimaryConstructorSuperTypeChecker fails on generated superclasses -
KT-71718K2: drop TypePreservingVisibilityWrtHack -
KT-75112FE resolves wrong receivers order for property passed to delegate -
KT-75924K2. Incorrect generic type Inference "R? & Any" appears for "Add explicit type arguments" -
KT-75969java.lang.IllegalArgumentException: source must not be null on red code -
KT-75322ConeDiagnosticToFirDiagnosticKt: source must not be null -
KT-73800Wrong method executed on super call in -Xjvm-default=all/all-compatibility with an extraneous super-interface -
KT-38029Wrong method executed on super call in diamond hierarchy with covariant override -
KT-75242Any use-site target can be applied to a lambda and an expression -
KT-73051incorrect direction of subtyping violation in type mismatch error's message for A<X> </: A<Y> given a Tv <: Rv == C constraint from a lambda return position -
KT-75090Argument type mismatch: actual type is 'SuspendFunction0', but 'SuspendFunction0' was expected when anonymous function is passed to function expecting suspend function type -
KT-74956K2: No USAGE_IS_NOT_INLINABLE with compiling an inlined function call -
KT-76049K2: drop explicitTypeArgumentIfMadeFlexibleSynthetically creation when DontMakeExplicitJavaTypeArgumentsFlexible is enabled -
KT-76055K2: drop prepareCustomReturnTypeSubstitutorForFunctionCall logic when DontMakeExplicitJavaTypeArgumentsFlexible is enabled -
KT-76057K2: don't do reverse Java overridability checks when DontMakeExplicitJavaTypeArgumentsFlexible is enabled -
KT-75197K2: Missing [COMPARE_TO_TYPE_MISMATCH] diagnostics -
KT-75639Inlinecontextfunction leads toClassCastException -
KT-75677K2: change runtime behavior of KT-75649 case in 2.2 -
KT-75961K2:PsiRawFirBuilder.Visitor#visitSimpleNameExpressionforces AST loading viagetReferencedNameElement().node.text -
KT-67869Make inference for lambda working consistently inside and outside of the call -
KT-74885K2: IAE "source must not be null" in FirCyclicTypeBoundsChecker -
KT-75578K2: False negative [SUPER_CALL_WITH_DEFAULT_PARAMETERS] when calling the upper-class implementation of a method with the default value argument -
KT-73954Generate implementations in classes for inherited non-abstract methods in -Xjvm-default=all-compatibility -
KT-75173Context parameters: KotlinIllegalArgumentExceptionWithAttachments if you override function with value/extension parameter by fun with context -
KT-75742Native: "IllegalArgumentException: unknown pass name '' " when specifying an empty list of LLVM passes -
KT-74819K2: False-positive overload resolution ambiguity for flatMap inside PCLA -
KT-75093K2 IDE: "Unreachable code" highlighting range is confusing -
KT-74572Context parameters: contracts don't work with context parameters -
KT-74765Move K1 lazy IR implementation from 'ir.tree' to 'psi2ir' -
KT-71425IR Inliner: investigate return type of an inlined block -
KT-74764Native: merge init nodes generated within the same LLVM module for the same klib -
KT-75561K/N: place InteropLowering after UpgradeCallableReferences phase -
KT-73369K/N: move interop lowering up the pipeline -
KT-75517K2: Refactor FirCallableSymbol.resolvedContextParameters to return symbols -
KT-75821K2: REPL resolution doesn't take into account the property type when processing its initializer -
KT-75705IllegalArgumentException when isInitialized is used with java field -
KT-75334Java target shouldn't be specified if Kotlin target isn't specified -
KT-75157Missing PARAMETER_NAME_CHANGED_ON_OVERRIDE and DIFFERENT_NAMES_FOR_THE_SAME_PARAMETER_IN_SUPERTYPES for context parameters -
KT-75160Check usages of value parameters in checkers and adapt to context parameters -
KT-75729KtPsiFactory: no type-safe way to create triple-quoted KtStringTemplateExpression -
KT-75040UnifysubjectandsubjectVariableinFirWhenExpression -
KT-75323FirSyntheticProperty: Unexpected status. Expected is FirResolvedDeclarationStatus, but was FirDeclarationStatusImpl -
KT-75602Introduce concept of shared library session in Fir sessions -
KT-75509PARAMETER_NAME_CHANGED_ON_OVERRIDE is reported randomly -
KT-75124IAE “class org.jetbrains.kotlin.psi.KtContextReceiver is not a subtype of class org.jetbrains.kotlin.psi.KtParameter for factory EXPOSED_PARAMETER_TYPE” on private context receiver -
KT-73585K2: ABSTRACT_SUPER_CALL is not reported -
KT-75531K2 REPL: local name doesn't shadow one from implicit receiver -
KT-73359Migrate frontend sources to new IR parameter API -
KT-75380K2: Modality is configured incorrectly for some FirDefaultPropertyAccessor -
KT-75526Regression in K2 scripting: local name doesn't shadow one from the implicit receiver -
KT-59379K2: Missing MIXING_NAMED_AND_POSITIONED_ARGUMENTS -
KT-75106K2: type parameters of anonymous functions are unresolved -
KT-73387Unexpected implicit type during enhancement -
KT-72618Cannot define operator inc/dec in class context -
KT-74546Serialize context parameters to metadata -
KT-68768K2: unsuccessful inference fork with jspecify annotations -
KT-75345Add a test for KT-42271 -
KT-75012K2: Compiler crash ondynamic == null -
KT-75195IllegalStateException: No value for annotation parameter when@allmeta-target is used with annotation with constructor -
KT-75163WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET for@allmeta-target although there are applicable targets -
KT-75198@allmeta-target should be forbidden for delegated properties -
KT-74958K2: UNEXPECTED_TRAILING_LAMBDA_ON_A_NEW_LINE isn't reported on accidental trailing closure -
KT-74982Improve UNSUPPORTED message handling -
KT-75111False negative "This declaration needs opt-in" for usage of enum entry with OptIn marker in another module -
KT-74924Infinite recursion in substitution of captured type with recursive supertype -
KT-75289NPE: getParent(...) must not be null -
KT-75275Inline class member inherited from interface is not mangled in '-Xjvm-default=all-compatibility' -
KT-74340FIR: folding binary expression chains for psi parser -
KT-73831Do not choosefieldtarget in annotation classes -
KT-73494Enable first-only-warn annotation defaulting mode -
KT-75174K2: incorrect influence of return type nullability on required receiver type in KJK hierarchy with property -
KT-74920Overriding T! with T & Any is not allowed to the extension property receiver type -
KT-75150False ambiguous context parameter reported because context is not chosen via generic parameter -
KT-74965CLI compiler doesn't report syntax errors for JS, Metadata backends if light-tree mode is disabled -
KT-74303K2 IDE / Kotlin Debugger: AE “Trying to inline an anonymous object which is not part of the public ABI” on evaluating private inline function with object inside -
KT-75177NoSuchMethodError on suspend default interface method fake override returning inline class in -Xjvm-default=all-compatibility -
KT-74718K/N: Move TestProcessor phase to the top of the pipeline -
KT-75015Context parameters: it is possible to declare anonymous function with modifiers but they don't have any effect -
KT-75092K2: Missing errors for modifiers on anonymous function in statement position -
KT-75009Context parameters: context is unresolved inside anonymous function if passed as an argument -
KT-75017Context parameters: "IllegalStateException: Cannot find variable a: R|kotlin/String| in local storage " when context from another local function is called -
KT-75154Context receiver deprecation warning should depend on langauge version, not on LATEST_STABLE -
KT-74979Context parameters: anonymous functions with a context aren't parsed in complex cases -
KT-74673K2: ClassCastException when passing suspending functional interface with generic -
KT-74469K2: False positive: "Argument type mismatch" during Java interop -
KT-75105K2: False negative NAME_IN_CONSTRAINT_IS_NOT_A_TYPE_PARAMETER for type constraint of anonymous function -
KT-74929False positive TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER if it is used with T&Any -
KT-74227K2: "Cannot infer type for this parameter. Please specify it explicitly" caused by lambda in another lambda with a parameterized function type -
KT-64558K2 compiler does not report UNNECESSARY_SAFE_CALL, UNNECESSARY_NOT_NULL_ASSERTION, USELESS_ELVIS, while K2 IDEA does -
KT-74728K2: Java method overriding Kotlin method with receiver loses vararg modifier -
KT-70789CLI error "mixing legacy and modern plugin arguments is prohibited" on using -Xcompiler-plugin unless default scripting plugin is disabled -
KT-72829Forbid 'entries' name of enum entry, and deprioritize it in resolve -
KT-75037K2: IrGeneratedDeclarationsRegistrar.registerFunctionAsMetadataVisible doesn't handle extension receivers and context parameters -
KT-73149Annotations support for context parameters -
KT-74798Report error on local contextual properties -
KT-74092Context parameters: it is not possible to declare an anonymous function with a context -
KT-52152K2: Investigate suspicious code at SAM conversions -
KT-75016K2: BackendException when context var property is declared in interface -
KT-74474K2: Report more precise diagnostic when last expression of non-unit lambda is a statement -
KT-74478K2: False negative RETURN TYPE_MISMATCH if the last statement of a lambda is indexed assignment -
KT-73685K2 IDE / Kotlin Debugger: NSME “Method not found” on evaluating function with constant value in@JvmName -
KT-74449Report RETURN_TYPE_MISMATCH instead of ARGUMENT_TYPE_MISMATCH for return expressions in lambdas -
KT-74918FIR: account for K/Wasm diagnostics in generateNonSuppressibleErrorNamesFile -
KT-74897K2: Report UNSUPPORTED_FEATURE instead of TOPLEVEL_TYPEALIASES_ONLY for nested type aliases -
KT-74963K2: Fir2Ir: Avoid a situation when startOffset > endOffset in generated IrBranch -
KT-74697Overriding a method that's both deprecated and non-deprecated should not cause warnings -
KT-74928K2: "IllegalStateException: Cannot find cached type parameter by FIR symbol" in KJK hierarchy with extension property -
KT-74630K2: local class arguments in annotations on types and type parameters are not serialized -
KT-74445Commonize Native Function/Property reference lowerings -
KT-74670Warning message CONTEXT_CLASS_OR_CONSTRUCTOR isn't reported for context receiver on the constructor -
KT-74617Trivial SMAP optimization leads to missing debug info after inline -
KT-74812compile-time failure on a callable reference with an input type inferred to an inaccessible generic type -
KT-66195K2: Java method is not enhanced from overridden's context receivers -
KT-74501Context parameters: ABSTRACT_MEMBER_NOT_IMPLEMENTED if fun with context is implemented in Java in KJK hierarchy -
KT-74385Missing diagnostic on repeated suspend modifier in function type -
KT-74749Provide explanation IR before script compilation -
KT-74751K2: IllegalStateException: Can't apply receivers of FirPropertyAccessExpressionImpl to IrTypeOperatorCallImpl -
KT-74729NPE when suspend lambda has inline class parameter -
KT-74336Not supported: class org.jetbrains.kotlin.fir.types.ConeIntersectionType -
KT-74203K2: False negative NO_ELSE_IN_WHEN of a generic type with star projection <*> bounded by a sealed hierarchy -
KT-48085Kotlin/Native: LLD removes live code with--gc-sectionswhen producing DLL -
KT-69164Native: use lld from bundled LLVM distribution when compiling on Windows for a MinGW target -
KT-74081Context parameters: implicit call resolves to extension when there is a context -
KT-74682Implement internal type exposure via parameter bounds deprecation postponement -
KT-74556K2: "IAE: class KtDestructuringDeclaration is not a subtype of class KtNamedDeclaration for factory REDECLARATION" with two non-local destructuring declarations -
KT-73146Context parameters CLI & diagnostics -
KT-72104Consider enabling check for unbound symbols in JVM before lowerings -
KT-74568Synthetic nested classes missing JVM attributes -
KT-73703[Native] Move KonanIrLinker toserialization.nativemodule -
KT-61175K2: FirReceiverParameter does not extend FirDeclaration -
KT-73961'lateinit is unnecessary' on transient properties should not be reported for serializable classes -
KT-73858Compose / iOS: NullPointerException on building -
KT-62953JVM IR: UseSimpleNamedCompilerPhaseinstead ofNamedCompilerPhase -
KT-72929Consider caching typealiased constructor symbols created by TypeAliasConstructorsSubstitutingScope -
KT-74459K2: false positive MISSING_DEPENDENCY_CLASS for types inside default argument -
KT-73705[Native] Decouple native caches support from KonanIrLinker and KonanPartialModuleDeserializer -
KT-74091K2:@JvmOverloads-produced overloads have generated line number table -
KT-69754Drop -Xuse-k2 compiler flag -
KT-73352K2: false negative ARRAY_EQUALITY_OPERATOR_CAN_BE_REPLACED_WITH_EQUALS -
KT-72962Consider enabling ConsiderForkPointsWhenCheckingContradictions LF earlier -
KT-73027IllegalStateException: Annotation argument value cannot be null: since -
KT-74242Freeze onrunCatchingcall infinallyblock inside SAM conversion -
KT-29222FIR: consider folding binary expression chains -
KT-73760Cannot implement two Java interfaces with@NotNull-annotated type argument and Kotlin's plain (nullable) type parameter -
KT-58933Applying suggested signature from WRONG_NULLABILITY_FOR_JAVA_OVERRIDE leads to red code -
KT-70507Should parentheses prevent from plus/set operator desugaring? -
KT-67520Change of behaviour of inline function with safe cast on value type -
KT-67518Value classes leak their carrier type implementation details via inlining -
KT-72305K2: Report error when using synthetic properties in case of mapped collections -
KT-71226K2 Evaluator: Code fragment compilation with unresolved classes does not fail with exception -
KT-70233Implement a deprecation error for FIELD-targeted annotations on annotation properties -
KT-67517Value class upcast to Any leaks carrier type interfaces -
KT-72814FIR: don't use function references in FirThisReference -
KT-73153K2: Standalone diagnostics on type arguments are not reported -
KT-73011K2: Allow overloads resolution for callable references based on expected type variable with constraints -
KT-70139Remove dependencies of debugger on K1 and old JVM backend -
KT-69223Drop parallel lowering mode in JVM backend -
KT-7461Forbid using projection modifiers inside top-level Array in annotation's value parameter -
KT-53804Restore old and incorrect logic of generating InnerClasses attributes for kotlin-stdlib -
KT-52774Resolve unqualified enum constants based on expected type
Compose compiler
New features
v2.1.21: Kotlin 2.1.21
Changelog
Backend. Native. Debug
-
KT-75991Xcode 16.3: Fix lldb stepping test over an inline function
Compiler
-
KT-75992Xcode 16.3: stacktraces on simulators are not symbolicated -
KT-76663KJS: KotlinNothingValueException caused by expression return since 2.1.20 -
KT-75756Backend Internal error: Exception during IR lowering when trying to access variable from providedProperties in class within kotlin custom script -
KT-76209CONFLICTING_UPPER_BOUNDS onNothingbound -
KT-70352K2: False-negative CONFLICTING_UPPER_BOUNDS onNothingbound -
KT-74739Native: "IllegalArgumentException: All constructors should've been lowered: FUNCTION_REFERENCE" -
KT-75483Native: redundant unboxing generated with smart cast -
KT-71425IR Inliner: investigate return type of an inlined block
Native
-
KT-76252Native: executable crash with generic value classes with 2.1.20
Native. C and ObjC Import
-
KT-75781Xcode 16.3: Fix cinterop tests failing with fatal error: could not build module '_stdint'
Native. Runtime. Memory
-
KT-74280Native: GC.collect crashes with -Xallocator=std
Tools. CLI
-
KT-75588[2.1.20-RC] "was compiled by a pre-release version of Kotlin and cannot be loaded by this version of the compiler" warnings despite using the same compiler version -
KT-74663kotlinc-js CLI: not providing -ir-output-dir results in NullPointerException
Tools. Compiler Plugins
-
KT-76162"IllegalStateException: No mapping for symbol: VALUE_PARAMETER INSTANCE_RECEIVER" after updating to 2.1.20
Tools. Gradle
-
KT-73682Compatibility with Gradle 8.12 release -
KT-73142Kotlin Gradle plugin: Remove usage of Gradle's internal ExecHandleBuilder -
KT-36004Update 'org.gradle.usage' attribute rules to support the 'JAVA_API' and 'JAVA_RUNTIME' value -
KT-73968KotlinDependencyManagement tries to mutate configuration after it was resolved -
KT-73684Run integration tests against Gradle 8.12 -
KT-72694Accessing Task.project during execution is being deprecated in Gradle 8.12 -
KT-73683Compile against Gradle API 8.12
Tools. Gradle. JS
-
KT-77119KJS: Gradle: Setting custom environment variables in KotlinJsTest tasks no longer works -
KT-74735KGP uses Gradle internalCompositeProjectComponentArtifactMetadata -
KT-71879Notice of upcoming deprecation for Boolean 'is-' properties in Gradle Groovy scripts
Tools. Gradle. Multiplatform
-
KT-75808KGP: MPP with jvm target and Gradle java-test-fixtures is broken -
KT-75605Dependency resolution fails in commonTest/nativeTest source sets for KMP module when depending on another project due to missing PSM -
KT-75512Maven-publish: ArtifactId is not correct inpomfile with customizedwithXml
Tools. Incremental Compile
-
KT-62555Wrong ABI fingerprint for inline function containing a lambda -
KT-75883Follow-up: switch from INSTANCE heuristic to outerClass chain
Tools. Kapt
-
KT-75936K2 KAPT: unsupported FIR element kinds in constant evaluation -
KT-75942K2 KAPT: underscore not allowed here
Tools. Scripts
-
KT-76424Dependencies in main.kts not working with 2.1.20 -
KT-76296Kotlin script compiler crashes when secondary constructor calls a function -
KT-75589Scripts: "IndexOutOfBoundsException in jdk.internal.util.Preconditions.outOfBounds" when trying to extend a class which uses global variable
Tools. Wasm
-
KT-76161Wasm: "export startUnitTests was not found" after updating to Kotlin 2.1.20
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.
Edited by bullshit