github JetBrains/kotlin v2.3.20-Beta1
Kotlin 2.3.20-Beta1

latest releases: build-2.3.20-dev-8395, build-2.3.20-dev-8391, build-2.3.20-dev-8382...
pre-release2 days ago

Changelog

Analysis API. FIR

New Features

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

Fixes

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

Analysis API. Infrastructure

  • KT-65140 LL FIR: Implement AbstractFirPsiJsDiagnosticTest for LL FIR
  • KT-82212 [Analysis API, LL FIR] Implement AbstractDiagnosticsFirWasmTest and AbstractDiagnosticsFirWasmWasiTest for LL FIR

Analysis API. Light Classes

  • KT-82227 Value classes should expose regular static methods

Analysis API. PSI

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

Analysis API. Providers and Caches

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

Analysis API. Standalone

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

Analysis API. Stubs and Decompilation

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

Analysis API. Surface

New Features

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

Performance Improvements

  • KT-81627 KaFirSymbolDeclarationOverridesProvider#processOverrides should process only relevant declarations

Fixes

  • KT-68577 asPsiType and mapTypeToJvmType: leading delimiter for class in a root package
  • KT-81734 MIssing "ARGUMENT_TYPE_MISMATCH" caused by self-referential generic type
  • KT-82856 Redesign KotlinReferenceProviderContributor to make it extensible
  • KT-82615 Clarify KtReference#resolvesByNames contract
  • KT-82534 No expected type for property accessor without body
  • KT-82406 Add a test to ensure that all top-level classes in the Analysis API Surface have Ka prefix
  • KT-78397 investigate if there is a need in Extra support for the "various little features in contracts"
  • KT-74009 Analysis API: Expose "isOverloadable" check for callable symbols similar to "OverloadChecker.isOverloadable"
  • KT-78399 Check return value - check how we see from Java(+Stub) we see “annotated” signatures
  • KT-80357 [Analysis API] KaType.enhancedType doesn't enhance type parameters
  • KT-73659 Analysis API: The name of KaType.enhancedType is too general
  • KT-80545 [Analysis API] Deprecate KaFunctionType.arity
  • KT-77708 K2 Mode: Potentially redundant smart cast highlighing when passing smartcasted expressions as arguments
  • KT-81264 K2 AA: KaValueParameterSymbol.hasDefaultValue is false for overriding or actual functions
  • KT-81166 Forbid the usage of KaSessionComponent implementation types directly
  • KT-74801 Analysis API: Publish/subscribe to modification events with a single message bus topic

Backend. Native. Debug

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

Backend. Wasm

New Features

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

Performance Improvements

  • KT-81524 Unnecessary Any-JsAny conversions are generated for external instanceofs

Fixes

  • KT-79937 K/Wasm: support kotlin.js.nativeInvoke annotation
  • KT-82202 [Wasm] SourceMap generation support for single module mode
  • KT-82162 [Wasm] Run single module tests with standalone vm's
  • KT-81325 [Wasm] Remove string pool initialiser dependent code
  • KT-82645 K/Wasm: wasmJs use js "String" for number2String conversion
  • KT-73238 K/Wasm: stop using linear memory inside our code
  • KT-83025 Wasm: Compose application is not loading
  • KT-73240 K/Wasm: consider using JS String Builtins proposal in String implementation for wasm-js target
  • KT-73239 K/Wasm: use JS String Builtins proposal to transfer strings to and from JS
  • KT-83046 K/Wasm: don't use StringBuilder implicitly for string concatenations
  • KT-82309 K/Wasm: refactor _initialize function
  • KT-83194 K/Wasm: create WasmIR test infrastructure
  • KT-65234 K/Wasm Ensure that fp operations are aligned with other b-ends
  • KT-81856 K/JS/Wasm interop: external instanceofs do not link in singleModule mode
  • KT-81610 [Wasm] Add CLI test for performance metrics for klibs->binary scenario
  • KT-81550 Incorrect generation of .wat files
  • KT-71533 K/Wasm + K2: no error on KClass::qualifiedName usages

Compiler

New Features

  • KT-82467 Improve binary and JVM compatibility by generating bridges for abstract interface methods
  • KT-74223 Move Kotlin/Native TestProcessor phase to the first phase
  • KT-13968 Support vertx nullable annotation
  • KT-79656 Use org.jetbrains.annotations.UnmodifiableView and/or org.jetbrains.annotations.Unmodifiable to infer read-only types for Java entities
  • KT-27090 Support contracts in getter and setter for top-level extension properties
  • KT-81684 Implement explicit passing of context arguments using named syntax [TEST_ONLY]
  • KT-79330 Implement the first version of inference for Collection Literals
  • KT-74809 Support unnamed local variables
  • KT-45683 Allow generics in contract type assertions

Performance Improvements

  • KT-81974 Do not eagerly initialize reflection for KProperty objects for delegated properties
  • KT-80061 Compiler (or IDEA) hangs due to importing large Kotlin reflect functions (e.g. KFunction999999999)
  • KT-68592 Investigate performance implications of enabling -Xjvm-default for ir.tree module
  • KT-71673 Consider making EnhancementSymbolsCache. enhancedFunctions using simple cache

Fixes

  • KT-81951 K2: Another false positive "Assigned value is never read" in composable function
  • KT-68606 Argument type mismatch, despite being from the same star-projected type
  • KT-74051 Add a Continuation for tail-call suspend functions
  • KT-5486 Better errors for integers with leading zero
  • KT-83031 K2: unstable resolution of EnhancedNullability from type-use NotNull in presence of unused code
  • KT-83153 Properly ignore contract statements in the Return Value Checker
  • KT-78443 Refactor session component initialization for multi-target compilation
  • KT-83076 Don't report WRONG_JS_INTEROP_TYPE on expect types during metadata compilation
  • KT-82640 K2: CCE on green code
  • KT-82684 "Don't know how to compile annotation value ERROR_EXPR" on incorrect array literal in annotation default arguments
  • KT-81948 K2: ClassCastException: "java.lang.String cannot be cast to java.lang.Void" when calling @Nullable Java function
  • KT-82841 "kotlin.NoWhenBranchMatchedException" in when with !is check & non-sealed class in the middle of hierarchy
  • KT-82844 "when" with no branches does not evaluate subject (side effects ignored)
  • KT-81625 Incorrect empty parameters parsing (comma is highlighted in red)
  • KT-81193 K2: SOE from AbstractTypeApproximator.approximateToSuperType with local enum class
  • KT-65059 Stack overflow when typechecking an Elvis expression with deeply generic values
  • KT-82849 Collection literals (minor): collection literal should only be resolved to operator
  • KT-82555 @Deprecated(HIDDEN)` objects not skipped when resolving qualifiers
  • KT-82737 Leaked type variable in diagnostic when top-level lambda with uninferred type parameter has non-functional expected type
  • KT-78019 Change K1 API deprecation level from Warning to Error
  • KT-82683 K2: FIR2IR: compile-time JVM codegen failure on an argument of function subtype for a KSuspendFunction parameter
  • KT-82671 Do not report ignorability mismatch on override/actualization if the function returns Unit type
  • KT-82506 Misleading compilation warning: "This class is not recommended for use in Kotlin. Use 'java.util.Map' instead"
  • KT-52498 Test privateSuperType.kt is failing with caches enabled
  • KT-82579 Update specificity rule for context parameters
  • KT-82336 Header mode: Cannot infer argument for type parameter T
  • KT-69326 Inference chooses controversial order to fix variables
  • KT-82545 Handle data class with extra components in migration warning for name-based destructuring
  • KT-82303 Improve UNSUPPORTED_FEATURE message when compiler argument has a parameter
  • KT-82524 Access to a companion that requires opt-in is possible without opt-in
  • KT-81866 K2: False positive ILLEGAL_RESTRICTED_SUSPENDING_FUNCTION_CALL caused by smart-casted @RestrictsSuspension receiver
  • KT-13412 Improve error message on callable reference with expression of nullable type
  • KT-82466 KotlinIllegalArgumentExceptionWithAttachment when return is used in explicit delegation expression
  • KT-82454 Local types aren't approximated in public declaration types
  • KT-82487 False positive REDUNDANT_VISIBILITY_MODIFIER inside private class
  • KT-82369 [K2 REPL] Crash in the serialization plugin backend with "unable to transform declaration"
  • KT-62900 K2: Expected expression to be resolved during Fir2Ir
  • KT-81941 IllegalArgumentException: class org.jetbrains.kotlin.psi.KtValueArgument is not a subtype of class org.jetbrains.kotlin.psi.KtExpression for factory POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION
  • KT-80741 Fix rendering of inner classes with generic outer classes
  • KT-82331 Do not propagate context parameters from classes to constructors
  • KT-77276 K2: Wrong scope for annotation arguments for the parameters of a secondary constructor header
  • KT-77275 Inconsistency between scopes for primary/secondary constructor headers
  • KT-15152 Improve error message for unresolved reference for delegation specifier and primary constructor call
  • KT-72994 K2: Remove resolution to context receivers
  • KT-81498 Make Kotlin/Native stdlib in distribution reproducible
  • KT-81408 Allow local-variable-target annotations on destructuring declarations
  • KT-82012 Annotations without parentheses on full form of name-based destructuring don't work
  • KT-81915 Exception when analysing 'when' expression with annotated expression as a subject
  • KT-78364 Static methods are not generated for companion object JvmStatic property accessors with JvmExposeBoxed
  • KT-81838 Prohibit usage of nested type aliases (from lib) for sources with LV < 2.3
  • KT-81357 Forbid compilation of code with explicit root_ide_package in CLI mode
  • KT-73138 K2: "Assignment type mismatch" when class name is underscore_
  • KT-82169 Add quotes to message of WRONG_NUMBER_OF_TYPE_ARGUMENTS
  • KT-78386 JvmExposeBoxed (with no name) + JvmOverloads + JvmName produces ambiguity
  • KT-78358 Propagated JvmExposeBoxed annotation doesn't copy JvmName argument
  • KT-81699 Move native klib compilation to a separate module
  • KT-81692 Decouple compilation of Native klib from the Native backend
  • KT-80673 Consider forbidding/minimizing usages of ClassId.isLocal and CallableId.isLocal
  • KT-81376 False negative UNEXPECTED_TRAILING_LAMBDA_ON_A_NEW_LINE & bad positioning
  • KT-81946 false-positive JAVA_CLASS_ON_COMPANION in case of an explicit companion reference
  • KT-74461 K2: Render function types nicely
  • KT-49722 Report NOT_YET_SUPPORTED_IN_INLINE for inherited default parameters with inline function
  • KT-81913 Inapplicable candidate when vararg-adaption for callable reference might be used (array parameter)
  • KT-81841 Inapplicable candidate when vararg-adaption for callable reference might be used (generic parameter)
  • KT-39697 "Cannot infer type parameter" in map with java static or global method reference
  • KT-81896 Improve RedundantCallOfConversionMethod inspection for @UnsafeNumber annotated typealiases
  • KT-66413 Incorrect line mapping in suspendable code before suspend call without parameters
  • KT-80525 Update IntelliJ SDK dependency to 251.27812.49
  • KT-81808 Setting hasDefaultValue = true in irValueParameter() crashes the compiler
  • KT-78927 False positive 'USELESS_JVM_EXPOSE_BOXED'
  • KT-81703 Drop obsolete K1 frontend code from Kotlin/Native
  • KT-81698 DecoupleSpecialBackendChecksTraversal from Native backend
  • KT-81555 Kotlin scripts: top-level name-based destructuring with _ = prop fails with “exception while generating code”
  • KT-81687 Different LightTree and PSI outputs when annotated class-like declaration is used as an expression
  • KT-81302 False positive: Type Mismatch caused by context parameters, lambdas, and generics
  • KT-81584 IAE "Collection contains more than one matching element" in FirElementSerializer on contextual property with same name as primary value class property
  • KT-77237 JvmExposeBoxed breaks compilation with a secondary constructor with value class
  • KT-81262 False positive: Access declaration type exposure: during access to public function class from internal inline declaration
  • KT-80112 Kotlin Debugger: “Cannot find local variable” on evaluating default lambda inside inline function
  • KT-76806 K2: AIOOBE in FirEqualityCompatibilityChecker
  • KT-81693 Introduce lightweight versions of KonanConfig and PhaseContext
  • KT-72446 K/N: inline function's default values aren't lowered with caches
  • KT-81521 Anonymous function in context parameters breaks parser
  • KT-80853 Class reference in context parameters breaks parser
  • KT-81441 Missing type checks when class has deeply generic supertype
  • KT-79116 Wrong parameter arguments mapping (compiler skips empty arguments)
  • KT-81422 False negative in full-form name-based destructuring: annotations before val/var not rejected
  • KT-80652 K2: USELESS_IS_CHECK is not detected in when
  • KT-81553 INITIALIZER_TYPE_MISMATCH and ASSIGNMENT_TYPE_MISMATCH is reported on the entire initializer
  • KT-80049 Mangle ERROR_TYPEs in diagnostics reported to user
  • KT-81567 Add a use-site warning if a @DslMarker-marked annotation is used on entities where it is a no-op
  • KT-71854 K2 IDE. False positive red code because of external annotation on a generic parameter
  • KT-73786 Evaluator: cannot evaluate inline methods with reified parameter
  • KT-75828 Store backing field/delegate annotations and extension receiver annotations in metadata
  • KT-42824 FIR: false INAPPLICABLE_CANDIDATE when using in variance on a Java class

Compose compiler

  • b/461766771 Fix IrSimpleFunction.isLegacyOpenFunctionWithDefault
  • b/458234821 Disable Compose K1 tests on CI
  • b/456948687 Force resolution of declarations when looking up SAM functions in FIR
  • b/445426829 Add a diagnostic for key call with no arguments

IR. Actualizer

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

IR. Inlining

Fixes

  • KT-80791 classFunctionsAndFieldsWithCrossModuleInliner fails per-file with cross-module inliner
  • KT-80696 Can not get instance of singleton 'Obj': No class found for symbol
  • KT-81766 K/N: Recursive inline expect/actual causes StackOverflowError
  • KT-80953 [Inliner] Eliminate excessive IMPLICIT_CAST after IR Inliner on 2nd stage.
  • KT-82065 IR inliner: Inline function's default value argument may get wrong offsets in a temporary variable
  • KT-81753 Review diagnosticReporters usage in pre-serialization lowerings
  • KT-80793 Test friendDependencyWithCrossModuleInliner fails per-file with cross-module inliner
  • KT-80698 [IC][WASM] Mismatched file stats
  • KT-80697 [IC][JS per file] Mismatched rebuilt modules
  • KT-80660 [Inliner] Bodyless functions should not be inlined at 1st compilation stage
  • KT-79064 Try to get rid of TypeOfPostProcessor

IR. Interpreter

  • KT-80646 Enable unsigned conversion functions when bootstrapped compiler is available

IR. Tree

  • KT-82829 IR deserializer: Don't deserialize any fake overrides from Klibs
  • KT-80243 Support Name Based Destructuring in loop with withIndex()
  • KT-79436 KLIB stdlib symbols loading: Drop all functions from SymbolFinder except for loading the whole collection of (potentially unbound) symbols by name
  • KT-79435 KLIB stdlib symbols loading: Load symbols and and filter/map them lazily in BuiltinSymbolsBase hierarchy when accessed by IR
  • KT-69082 Migrate maps of IR elements to IR attributes
  • KT-67457 Introduce a way to simplify IR lowering phase creation

JVM. Reflection

New Features

  • KT-22265 Support for inherited annotations

Fixes

  • KT-81024 Reflection: New KType implementation fails on arguments comparison for a Nothing type parameter
  • KT-57357 Reflection: "KotlinReflectionInternalError" when using callBy on constructor that has inline class parameter with nullable value
  • KT-82699 Reflection: incorrect behavior of KFunction.isExternal for Java native methods
  • KT-82350 Reflection: incorrect behavior of KType.javaType on a type obtained from KType.withNullability
  • KT-29203 KType.javaType always returns void class for local delegated property
  • KT-81899 Reflection: incorrect javaType for local delegated property setter return type
  • KT-82093 Reflection: IAE from defaultType for inner class of generic class
  • KT-77312 KotlinReflectionInternalError: "Container of deserialized member is not resolved" on computing type parameter captured in a local delegated property
  • KT-82316 Reflection: type parameters of top-level declarations behave incorrectly
  • KT-81987 Reflection: error when calling function in inline class with inherited default value
  • KT-81870 Reflection: Error when calling function with default parameters and extension receiver
  • KT-81880 Reflection: Error when calling function with default & context parameters
  • KT-81907 Reflection: incorrect result when calling function with default values and context parameters
  • KT-81859 Reflection: do not use descriptors in ValueClassAwareCaller
  • KT-81854 Reflection: incorrect type for instance receiver of inner class constructor
  • KT-81855 Reflection: IAE "object is not an instance of declaring class" on function with context and extension receiver of inline class
  • KT-81843 Reflection: NPE on accessing property accessor returnType for Java field
  • KT-81588 Reflection: KotlinReflectionInternalError "Inconsistent number of parameters" on calling contextual declaration with value class type in the signature
  • KT-81111 Reflection: suspend function types are loaded incorrectly by the new implementation
  • KT-81206 Reflection: non-substituted Function type in suspend function supertypes
  • KT-81804 Reflection: remove support for multi-field value classes
  • KT-81664 Reflection: IAE "argument type mismatch" on calling member extension with value class in the signature

JavaScript

New Features

  • KT-54504 K/JS: Support ECMAScript tagged string templates
  • KT-82327 KJS: Export parameter names of function types if present in .d.ts files
  • KT-82371 KJS: Generate more concrete TypeScript for members of an uninhabited enum

Performance Improvements

  • KT-16379 KotlinJs - ArrayList get is now slow

Fixes

  • KT-67460 Use new lowering phase creation API in JS backend
  • KT-82667 Kotlin/JS: ESM TypeScript definitions for exported nested Enums do not compile
  • KT-82553 KJS: Incorrect .d.ts generated for generic inner classes
  • KT-82652 KJS: Exported abstract inner classes can be constructed from TypeScript
  • KT-82542 KJS: Inner class can be constructed from TypeScript without passing an outer instance
  • KT-82499 KJS: Omit parameters in private constructors in .d.ts files
  • KT-82263 Implement exporting top-level properties in Analysis API-based TypeScript Export
  • KT-82362 KJS: Incorrect types generated in .d.ts for JsName-annotated enum entry
  • KT-82262 Implement exporting top-level functions in Analysis API-based TypeScript Export
  • KT-82144 K/JS: 'meta' identifier usage in js() inline calls prevents expression from parsing
  • KT-82149 K/JS: new calls without arguments produce exceptions in js() inline calls
  • KT-81730 Optimize suspend functions compilations via JS generators
  • KT-78742 Investigate the usage of the ANTLR-generated parser for the js function
  • KT-79243 [JS] Drop K1-specific tests, testrunners and test directives

Klibs

New Features

  • KT-83101 Implement experimental KLib ABI dump parser

Fixes

  • KT-81466 Enable KlibAnnotationsInMetadata by default in LV 2.5
  • KT-83071 Failure on Native Nightly
  • KT-78365 [PL] Change the behavior of getting name of removed function
  • KT-81977 Klib compatibility tests: Implement sanity checks
  • KT-81410 Klib metadata: migrate to using the common annotations instead of klib-specific extensions in kotlinx-metadata-klib
  • KT-82577 Don't use KLIB resolver in the KLIB tool
  • KT-82208 K/Wasm: allow using newer stdlib with older compiler
  • KT-82213 IR linker doesn't complain when a private value class constructor is used from another module
  • KT-81955 [JS] Support testing of forward compatibility with export in previous version
  • KT-81003 KLIBs: Eliminate excessive implicit casts in common prefix on the 1st stage
  • KT-81670 K/N: Many Section still use none cacheable zip when Xklib-zip-file-accessor-cache-limit flag set
  • KT-80910 [Klib] Ensure serialized source coordinates are correct
  • KT-81954 [JS] All forward compatibility tests fail
  • KT-81709 [KLIB Reproducibility] KLIB zip file generation is non-deterministic due to unsorted file system traversal
  • KT-81474 [Tests][Klibs] Migrate Klib evolution tests to PL tests engine

Language Design

  • KT-73502 Context parameters: it is not possible to declare local function with a context

Libraries

  • KT-78115 Investigate the current situation with 22 kotlin.context standard library overloads
  • KT-83026 Specify compareTo behavior for Boolean
  • KT-79093 Expose FirResolvedStatus.hasMustUseReturnValue in kotlin-metadata
  • KT-82868 Restore accidentally deleted JS-specific note in ArrayList documentation
  • KT-81563 Document kotlin.collections.HashMap and HashSet
  • KT-82363 Add assertIs to the list of ignorable functions
  • KT-81562 Document kotlin.collections.ArrayList
  • KT-60535 Mark SubclassOptInRequired and RequiresOptIn with MustBeDocumented
  • KT-52400 Deprecate @BuilderInference
  • KT-64649 Add explanation to "A compileOnly dependency is used in the Kotlin/Native target" warning message

Native

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

Native. Build Infrastructure

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

Native. C and ObjC Import

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

Native. ObjC Export

  • KT-82160 K/N: bridge for fake override is not built but requested
  • KT-83014 Native: experimental support for generating an NS_ENUM in addition to an Objective-C class for Kotlin classes
  • KT-76637 ObjCExport: K1 + K2 integration test

Native. Runtime

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

Native. Runtime. Memory

  • KT-81152 Kotlin/Native: deprecate isMemoryLeakCheckerActive
  • KT-81156 Kotlin/Native: deprecate forceCheckedShutdown

Native. Swift Export

  • KT-82908 Swift Export: bridges for FT should be recursive
  • KT-82907 Swift Export: attributes are not printed for parameters of closures
  • KT-80971 Swift Export: Support exception throwing
  • KT-80970 Swift Export: Support cancellation
  • KT-82726 Swift Export: filters out wrong module for coroutines
  • KT-81591 Custom type translation rules in Swift export
  • KT-81270 K/N - Build fails when exposing suspend functions

Tools. BCV

  • KT-80747 Refactor API of ABI tools [ABI Tools]
  • KT-80938 Binary compatibility validation: can't exclude container types of Repeatable annotations by filters.excluded.byNames

Tools. Build Tools API

New Features

  • KT-81845 Add CRI <-> Maven integration
  • KT-81847 Add CRI <-> BTA integration
  • KT-80338 Kotlin CRI generation
  • KT-80681 BTA: introduce a special argument for passing compiler plugins
  • KT-82167 Add BuildTimeMetric for the CRI data generation
  • KT-81846 Add FUS for CRI usage in Gradle / Maven

Fixes

  • KT-82682 BTA: reading non-nullable arguments may return null or throw NPE
  • KT-81887 Implement the CRI lookup data generation
  • KT-81886 Implement the CRI data serialization
  • KT-81780 Add Gradle <-> CRI integration tests
  • KT-81645 BTA prints unreadable version in "option available only since" error (shows KotlinReleaseVersion@hash instead of 2.x.y)

Tools. CLI

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

Tools. CLI. Native

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

Tools. Compiler Plugin API

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

Tools. Compiler Plugins

  • KT-82341 Migrate official compiler plugins to IC-safe reference... API
  • KT-81604 Lombok Kotlin compiler plugin and -Werror: Unable to ignore warning for the plugin appliance
  • KT-71893 Support @Builder lombok annotation on methods

Tools. Compiler plugins. Serialization

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

Tools. Gradle

New Features

  • KT-78200 Gradle: enable JVM compilation through BTA by default
  • KT-81844 Add CRI <-> Gradle integration

Fixes

  • KT-80096 Strange "Inconsistent JVM Target Compatibility" warning
  • KT-81831 Verify Problems API implementation with Gradle guidelines
  • KT-80120 Support colored value for --console command in Gradle 9.1
  • KT-81400 ToolingDiagnosticFactory: check if documentationLink set multiple times
  • KT-83070 The KGP api reference is missing a description
  • KT-82459 Improve iOS simulator boot implementation
  • KT-82323 Deprecate LanguageSettings.enableLanguageFeature DSL
  • KT-80008 Track cross compilation status from project dependencies
  • KT-78764 Compile against Gradle 9.1 API
  • KT-81830 Create autogenerated kotlin version constants to be used with disableNativeCache DSL
  • KT-81960 Introduce "Generate Kotlin Lexers" run configuration

Tools. Gradle. BCV

  • KT-80674 Rename tasks to avoid using legacy word [ABI Validation]
  • KT-80827 Delete DSL for working with dump variants [ABI Validation]
  • KT-80823 Stabilize DSL for filtering [ABI Validation]

Tools. Gradle. Cocoapods

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

Tools. Gradle. JS

  • KT-82946 Js, Wasm: Upgrade NPM dependencies

Tools. Gradle. Multiplatform

  • KT-81944 Legacy KMP Android uses wrong configurations to infer common dependencies
  • KT-81536 "Couldn't resolve dependency in 'commonMain' for all target platforms" in 2.2.20-Beta2
  • KT-81724 IntelliJ successfully resolves imports that are not actually available in the given module
  • KT-81849 Replace kotlin-test-common and kotlin-test-annotations-common with just kotlin-test
  • KT-79073 compileTest* tasks pass separateCompilation parameters but don't behave accordingly
  • KT-71130 Enable Isolated Projects support by default for KMP

Tools. Gradle. Native

  • KT-80715 Deprecate kotlin.native.cacheKind and introduce DSL instead
  • KT-81443 ConfigurationCacheError on Linux arm64 due to disabled iOS targets

Tools. Gradle. Swift Export

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

Tools. Gradle. Wasm

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

Tools. Incremental Compile

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

Tools. JPS

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

Tools. Kapt

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

Tools. REPL

  • KT-82575 [K2 REPL] Redesign frontend resolution for REPL snippets

Tools. Scripts

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

Tools. Statistics (FUS)

  • KT-79576 Included build subprojects produce FUS files with unknown_id when configuration cache is enabled

Don't miss a new kotlin release

NewReleases is sending notifications on new releases.