Skip to content

Kotlin 2.0.0-Beta5

Pre-release
Pre-release
Compare
Choose a tag to compare
@KotlinBuild KotlinBuild released this 20 Mar 13:10

Changelog

Analysis. API

New Features

  • KT-65327 Support reading klib contents in Analysis API

Performance Improvements

  • KT-65560 K2: Anaysis API: ContextCollector triggers redundant resolution in the case of file elements

Fixes

  • KT-65571 Support VirtualFile inputs to Analysis API modules
  • KT-65600 Analysis Api: FirFile for KtCodeFragments are created and not updated on changes
  • KT-64579 K2 IDE: "Expected FirResolvedArgumentList for FirAnnotationCallImpl of FirValueParameterImpl(Source) but FirArgumentListImpl found"
  • KT-65978 Analysis API: Use soft references in FileStructureCache
  • KT-64051 K2 IDE: Analysis API: Unresolved links to typealias in KDoc
  • KT-66276 K2: Analysis API: TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM false positive for script parameter
  • KT-66232 K2: Analysis API: cover ScriptWithCustomDefDiagnosticsTestBaseGenerated by LL FIR tests
  • KT-60996 K2: Stub Based Deserializer: Set versionRequirements to enable VERSION_REQUIREMENT_DEPRECATION diagnostics
  • KT-66306 K2: Analysis API: drop ability to enable global phase resolve lock
  • KT-64919 K2 IDE: Implement KMP support for sealed class inheritors
  • KT-65563 Analysis API: Missing session component FirExpectActualMatchingContextFactory in LLFirLibrarySession
  • KT-66173 K2: No 'org.jetbrains.kotlin.fir.scopes.impl.FirDelegatedMembersFilter' in array owner: LLFirLibrarySession
  • KT-66238 Gradle kotlin build scripts - a lot of unresolved symbols after latest changes in kotlin master
  • KT-65099 K2: Recursive local storage cache check for Fir2IrDeclarationStorage::createAndCacheIrPropertySymbols()
  • KT-65265 Analysis API: Add library session invalidation tests
  • KT-56288 Analysis API: Add tests for session invalidation on the Analysis API side
  • KT-64000 K2: make AnnotationArgumentsStateKeepers more accurate
  • KT-63606 K2: Analysis API: rewrite FirLazyAnnotationTransformer to avoid redundant transformations
  • KT-65191 KtFirMultiplatformInfoProvider#getExpectForActual doesn't return expect function for slightly broken code
  • KT-62136 Analysis API: Add concurrent tests for CleanableSoftValueCache
  • KT-61222 K2: Add lifecycle management for KtResolveExtension
  • KT-65960 Analysis API: Test infrastructure indexes binary libraries from decompiled files instead of stubs during IDE mode tests
  • KT-65240 K2: CodeGen API fails to resolve Annotation parameter type when it runs FIR2IR for a class with a parent class from other module if the parent class has an annotation from another module
  • KT-65344 K2: make FirScript statements (declarations) independent
  • KT-65930 AA: receiver type for Int?::foo misses nullability
  • KT-65914 AA: receiver type for this::foo returns return type of the target callable
  • KT-65780 K2: polish FileStructure implementation for FirFile
  • KT-62840 K2 Script: everything around destructuring declaration on top level of scripts are broken
  • KT-65683 Analysis API: Dangling file session creation causes a computeIfAbsent contract violation
  • KT-64884 K2 IDE. FP [NAMED_PARAMETER_NOT_FOUND] for copy method of library data class when class has not parameter-properties
  • KT-65763 K2: value parameter from library data class copy have RAW_FIR phase
  • KT-65665 Analysis API: support KtDelegatedSuperTypeEntry in KtFirExpressionInfoProvider.isUsedAsExpression
  • KT-65655 Analysis API: KtCodeCompilationException should not strongly reference FIR sessions
  • KT-65345 K2: unify FirDesignation and LLFirResolveTarget

Analysis. Light Classes

  • KT-61734 SLC: wildcard suppression not honored
  • KT-65112 Symbol Light Classes don't support annotations on type parameters
  • KT-65843 K2: Light method returns kotlin.Unit type for TestResult return type
  • KT-65653 SLC: wrong binary resolution to function with value class
  • KT-65393 SLC: missing deprecated-hidden property
  • KT-64772 SLC: presence of source PSI for compiler-generated declaration

Apple Ecosystem

  • KT-62373 "Xcode higher than tested" diagnostic
  • KT-64096 Diagnostic when embedAndSign used for framework with cocoapods-dependencies

Backend. Native. Debug

  • KT-65553 K2: Native: kt42208WithPassingLambdaToAnotherFunction test fails with K2

Backend. Wasm

New Features

  • KT-58088 [PL] Support & enable partial linkage for Wasm
  • KT-66327 Include information about particular Wasm target into KLib manifest
  • KT-65009 Generate TypeScript definitions for the @JsExport declarations in K/Wasm

Fixes

  • KT-65660 [WasmJs] Support catching JS exceptions
  • KT-64890 K/Wasm compiler crash with external class and Kodein
  • KT-66104 Wasm: compiler crash: NoSuchElementException: Sequence contains no element matching the predicate
  • KT-66065 [Wasm] Make specialisations for closured primitive values
  • KT-65778 Create the same TypeScript tests infrastructure for Kotlin/Wasm that we have now for Kotlin/JS
  • KT-65411 Kotlin/Wasm: Boolean boxed instances are not the same
  • KT-65713 Kotlin/Wasm generates a wrapper that cannot run in Deno
  • KT-65777 Implement named export for Kotlin/Wasm
  • KT-65824 Wasm: Allow unsigned primitives to be used inside functions annotated with @JsExport
  • KT-63939 Kotlin/Wasm Support lazy associated object initialisation
  • KT-61888 [Kotlin/wasm] in kotlin.test support for @AfterTest for async tests

Compiler

New Features

  • KT-64350 K2: deprecate using typealias as a callable qualifier in imports
  • KT-65478 JVM: Change inlined variable naming format
  • KT-26565 Choose existing extensions over additional built-ins members from JDK
  • KT-65859 Calls refinement extension point
  • KT-45375 Generate all Kotlin lambdas via invokedynamic + LambdaMetafactory by default
  • KT-65681 K2: Improve error message of UPPER_BOUND_VIOLATED when upper bound is a captured type or other non-denotable type
  • KT-65153 K/N: extract liveness analysis to a separate phase
  • KT-59098 Support -Xjdk-release=1.6/1.7 with -jvm-target 1.8
  • KT-63670 Implement platform specific declaration clash diagnostics across all backends

Performance Improvements

  • KT-66341 K2: Don't build IdSignatures in FIR2IR with IR f/o builder
  • KT-66172 K2: Improve memory consumption of KtPsiSourceElement
  • KT-62798 'in' range checks are not intrinsified in kotlin-stdlib
  • KT-65579 K2: performance regression in FP Space

Fixes

  • KT-66673 K2/JS: FirJsInheritanceClassChecker doesn't expand type aliases to supertypes
  • KT-66475 K2/KMP/Wasm: report WRONG_JS_INTEROP_TYPE from a platform checker
  • KT-66474 K2/KMP/JS: report EXTERNAL_TYPE_EXTENDS_NON_EXTERNAL_TYPE from a platform checker
  • KT-66473 K2/Wasm: FirWasmExternalInheritanceChecker doesn't expand type aliases
  • KT-65062 K2: build kotlinx.collections.immutable and pass to CI
  • KT-65410 K2: ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED for 'removeAt' in KJK hierarchy
  • KT-65377 K2: "Argument type mismatch" caused by approximated captured type argument of generic type
  • KT-65440 K2: Mark all potential implementations of List.getFirst()/getLast() as deprecated independently of JDK
  • KT-65184 K2: disappeared TYPE_MISMATCH for java collections
  • KT-57588 K2/Native: False positive '"CONFLICTING_OVERLOADS", "PARAMETER_NAME_CHANGED_ON_OVERRIDE" on overriding objc methods
  • KT-65882 K2: "KotlinNothingValueException" caused by unsafe cast and Nothing::class
  • KT-65438 K2: Introduce WEAKLY_HIDDEN concept to built-in-JDK content mapping
  • KT-65959 K2: Incorrect warnings about inline function impact
  • KT-64994 K2: @Composable lambda type is not resolved from other modules
  • KT-66048 K2: property becomes nullable in KJK hierarchy if base declaration has implicit return type
  • KT-66148 K2. Sources of receivers updated twice because of PCLA
  • KT-65789 K1/K2: Resolve change in constructor/top-level function ambiguity
  • KT-60971 Incorrect "cannot inline bytecode built with JVM target ..." on property setter if only getter is inline
  • KT-61514 K2: Build fake overrides using IR during Fir2IR
  • KT-65584 K2: "Duplicate parameter name in a function type"
  • KT-50008 JSpecify @Nullable annotation on type-parameter bound prevents type-variable usages from being platform types
  • KT-66046 K2: false negative CANNOT_WEAKEN_ACCESS_PRIVILEGE on property
  • KT-56988 CFG, smart casts: red in K1 -> green in K2 for invalid code
  • KT-58191 K2: capturing closures successors that are already resolved (thanks to backward edges) must be taken into account for allowing smart casts
  • KT-65464 K2: False positive UNRESOLVED_REFERENCE on extension property call defined in KJK hierarchy
  • KT-62118 FIR: "HashMap.entry" has invalid enhanced type
  • KT-64840 K2: Bare type are not allowed for TV based values during PCLA
  • KT-65415 K2: Stdlib K2 build error: IrConstructorSymbolImpl is already bound
  • KT-66449 Make DiagnosticSuppressor a project-level extension
  • KT-66411 FIR: Real source on fake block around assignment expression in the "when" branch affects resolve in K2 Analysis API and IDE
  • KT-65982 K2 Scripts cannot disambiguate declarations imported from default and explicit imports
  • KT-65677 K2: Unable to resolve parent class from companion object
  • KT-66441 Remove symbol table from IR fake override builder in Fir2Ir
  • KT-58203 K2: false-negative incompatible types error on is-check with unrelated type
  • KT-65722 K2: Property reference refers to non-existent functions
  • KT-65878 K2: "ClassCastException" when passing nun-suspend lambda to SAM constructor with named argument
  • KT-65787 K2: "KotlinIllegalArgumentExceptionWithAttachments: Expected FirResolvedTypeRef with ConeKotlinType" caused by passing lambda expression with multiple labels to function
  • KT-65926 K2: add tests for all fixed-in-k2 / not-reproducible-in-k2 unresolved issues
  • KT-65022 K2: Compiler crashes when array literal is used in delegate expression
  • KT-62836 K2: Expected FirResolvedTypeRef with ConeKotlinType but was FirImplicitTypeRefImplWithoutSource
  • KT-64727 K1: Closing bracket of object inside crossinline lambda or inside lambda in inline function is not hit on step-over
  • KT-64726 K1: Cannot stop on closing bracket of crossinline lambda inside of another crossinline lambda
  • KT-64725 K1: Cannot stop on closing bracket of lambda of inline-only function
  • KT-66272 Could not load module with a combination of type parameters
  • KT-66243 Could not load module in a builder inference with lambda with typed parameter
  • KT-66229 Could not load module in a builder inference with Map.Entry
  • KT-61448 K2: Disappeared DEPRECATION in testWithModifiedMockJdk
  • KT-60106 K2: Introduced REIFIED_TYPE_FORBIDDEN_SUBSTITUTION
  • KT-66120 IrFakeOverrideBuilder: wrong return type in intersection with 3 classes
  • KT-60777 K2: missing INLINE_FROM_HIGHER_PLATFORM
  • KT-66196 Convert INFERRED_TYPE_VARIABLE_INTO_EMPTY_INTERSECTION_ERROR to warning
  • KT-66067 K2: different overrides are created in a complex hierarchy with raw types and upper-bounded type parameters
  • KT-65821 K2: [NONE_APPLICABLE] None of the following functions is applicable: [constructor(message: String?): Throwable, constructor(cause: Throwable?): Throwable, constructor(): Throwable, ...]
  • KT-66268 K2: Expected FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl
  • KT-60797 K2: implement JAVA_MODULE_DOES_NOT_EXPORT_PACKAGE
  • KT-28159 Smartcasts don't work with Nothing? values (Nothing? considered a null constant => an unstable value)
  • KT-28262 Smartcasts for reference equality don't work if explicit true check is used
  • KT-66000 K2: inherited inline getter has not been inlined
  • KT-66158 K2: not nullable return type for upper-bounded kotlin type parameter in KJK hierarchy
  • KT-65636 PowerAssert: Negative contains operator not aligned correctly in K2
  • KT-64271 K2: Wrong overriddenSymbols for toString of data class
  • KT-62779 K2: Difference in fake override generation
  • KT-61941 K2: FIR2IR incorrectly generates f/o structure for complex java/kotlin hierarchies with remapped jvm declarations
  • KT-60283 K2: fake override for java static method is not generated
  • KT-65095 K2: no bridge generated for getOrDefault when inheriting from Java Map implementation
  • KT-57301 K2: getOrDefault and bridges are not generated for certain Map subclasses
  • KT-58814 Too eager subtype inference in when expression
  • KT-65408 K1: "There are still 2 unbound symbols after generation of IR module" caused by data object's copy function usage
  • KT-65844 False Positive "This class can only be used as an annotation or as an argument to @OptIn" when passing as an array
  • KT-58697 K2: Tests: Assert no dump files exist when dump directive isn't present
  • KT-63258 NPE with function reference from within lambda during init
  • KT-60597 K1: IllegalArgumentException: fromIndex(0) > toIndex(-1) when wrapping receiver with backticks
  • KT-33108 USELESS_CAST false positive for cast inside lambda
  • KT-58458 K1: "java.lang.NullPointerException" with 'var equals' or 'val equals' as argument in when
  • KT-58447 K1: "AssertionError: Recursion detected on input" with @ParameterName and extension
  • KT-41013 OVERLOAD_RESOLUTION_AMBIGUITY for functions takes lambda: can not resolve it, but only named lambda parameter
  • KT-65588 K2: typealias of primitive type in vararg causes ABI incompatibility
  • KT-23873 Indexed access operator can cause false USELESS_CAST warning
  • KT-31191 Contract not smartcasting for extension functions in if-statement with multiple conditions
  • KT-63826 K2: expect for expect crashes the compiler
  • KT-25668 False-positive error on restricted suspending function call with callable reference
  • KT-18055 SMARTCAST_IMPOSSIBLE on mutable data class variable with a read-only property
  • KT-66186 K1 diagnostics miss some reporting messages
  • KT-65101 Generics behaving different when parenthesized
  • KT-63444 TYPE_MISMATCH caused by Inner class with nullable type and star projection
  • KT-58751 Definitely non-nullable type gets lost with star projection
  • KT-56624 "Unresolved reference" with import alias and enum constructor call
  • KT-53886 NoSuchMethodError exception in Kotlin/Native compiler
  • KT-20617 Qualified this@property does not work in extension properties with body expression
  • KT-10879 OVERLOAD_RESOLUTION_AMBIGUITY for synthetic property accessor with smartcasted receiver
  • KT-65649 K2: IR has incorrect origins for some inplace updating operators
  • KT-63525 K2: "IllegalStateException: Fake override should have at least one overridden descriptor" caused by unreachable code
  • KT-65333 K2: UNRESOLVED_REFERENCE for java inner class in intersection scope
  • KT-63712 Make it possible to add new stdlib API with SinceKotlin(2.0)
  • KT-63741 K2: fix visibility inference with overridden + inherited member
  • KT-64488 K2: False positive DEPRECATED_ACCESS_TO_ENTRY_PROPERTY_FROM_ENUM with context receivers
  • KT-57585 K2/MPP: false-negative errors on expect/actual modifiers mismatch
  • KT-66077 IrFakeOverrideBuilder: NPE from IrJavaIncompatibilityRulesOverridabilityCondition.doesJavaOverrideHaveIncompatibleValueParameterKinds
  • KT-66020 K2: ISE "IrPropertySymbolImpl is unbound. Signature: null" on a property with getter with @JvmName
  • KT-62135 K2, KLIB: Classes are still sorted before serializing them to metadata
  • KT-66005 K2: "Should not be here: class org.jetbrains.kotlin.fir.expressions.impl.FirResolvedReifiedParameterReferenceImpl" on incorrect comparison of reified type parameter
  • KT-65840 [K2] Initializer type mismatch: expected 'Type', actual 'Type'
  • KT-59882 K2: Disappeared CANNOT_INFER_PARAMETER_TYPE
  • KT-65002 K2: Incorrect suspend conversion if argument is an aliased functional type
  • KT-65984 K2 scripting: failure on processing SUPPRESS annotation in the last script statement
  • KT-65680 K2: Class redeclaration leads to BackendException during IR fake override builder
  • KT-66028 K2: Convert FirExpectActualDeclarationChecker to platform checker
  • KT-65592 K2: IrFakeOverrideBuilder: ISE "should not be called" on diamond hierarchy with explicit dependency on annotations.jar
  • KT-65983 K2 gradle scripting: "'val' cannot be reassigned" errors
  • KT-64502 K2: Internal error on calling function before declaration
  • KT-60452 K2 Scripting: implement overriding of the script params
  • KT-65975 K2: Implicit receivers resolution order in K2 scripting
  • KT-60249 K2: No unit coercion generated for loops body
  • KT-65801 IrFakeOverrideBuilder - visibility is lost for setter in KJK hierarchy
  • KT-65937 K2: order of enum entries changed
  • KT-65933 K2: Type missmatch in arrays in annotations
  • KT-65343 JVM IR: Source parameter is lost when copying with DeepCopyIrTreeWithSymbols
  • KT-62788 K2: difference in annotation inheritance in overriddings
  • KT-65669 K2: ClassCastException class FirDeclarationStatusImpl cannot be cast to class FirResolvedDeclarationStatus
  • KT-65493 IrFakeOverrideBuilder: difference in return type for intersection with raw type
  • KT-65207 IrFakeOverrideBuilder - nullable return type for intersection override
  • KT-65972 Fix problems related to Unknown visibility in [FP] intellij
  • KT-65246 K2: Overiding java method that takes vararg parameter causes WRONG_NULLABILITY_FOR_JAVA_OVERRIDE warning
  • KT-59883 K2: Disappeared INVALID_IF_AS_EXPRESSION
  • KT-61823 K2: Render list of declarations in diagnostic messages with linebreak as separator
  • KT-65302 IrFakeOverrideBuilder - missing @EnhancedNullability
  • KT-65241 K2: [LT] Compiler crash on assignment expression with incorrect lvalue
  • KT-60006 K2: Disappeared EXPRESSION_EXPECTED
  • KT-65817 K2: Check if callable reference vararg adaption can be affected by primitive type aliases
  • KT-65920 K2: no field for delegation is created
  • KT-65487 K2: Different fake overrides and false positive NOTHING_TO_OVERRIDE for intersection/override with Collection.remove
  • KT-62931 K2: extra class files for @OptionalExpectation marked annotations
  • KT-59400 K2: Missing CANNOT_INFER_VISIBILITY
  • KT-65460 Don't compare order of functions in IR dump
  • KT-64276 [K/N][K2] K2 behaviorial difference with inconsistent inheritance of ObjCName
  • KT-65572 [K/N][K2] INCOMPATIBLE_OBJC_NAME_OVERRIDE error message changed from K1
  • KT-63879 K2: Redundant flag declaresDefaultValue for parameter of function inherited from delegate
  • KT-65790 K2: Move check for private-to-this visibility into checker
  • KT-65551 K2: Property redeclaration on native compilation leads to NotImplementedError
  • KT-65770 K2: Diagnostic rendering of vararg Foo parameter produces vararg Array<Foo>
  • KT-65555 K2: must override 'spliterator' because it inherits multiple implementations for it
  • KT-65337 K2: False positive UNRESOLVED_REFERENCE when lambda labeled by illegal label and operator-invoked
  • KT-65448 K2: fake overrides are not generated for 'containsAll', 'removeAll', 'retainAll' if inherited from raw type
  • KT-65298 K2: not nullable return type and parameter for raw types
  • KT-65706 K2: IrFakeOverrideBuilder: ISE "Fake override should have at least one overridden descriptor" on J-K-J-K hierarchy with interface delegation
  • KT-61798 K2 incorrectly calculates modality of property accessors
  • KT-65604 K2: INAPPLICABLE_JVM_NAME: effective modality
  • KT-65637 Prepare documentation for PCLA implementation
  • KT-49283 Support contribution type info from a nested builder inference call
  • KT-64077 K2: Builder inference ignores constraints from nested builder inference
  • KT-49160 Couldn't infer a type argument through several builder inference calls broken by a local class
  • KT-65057 K2: Wrong type inferred in code with heavy use of generics
  • KT-64309 Generate a variable mapping for continuation parameter in suspend methods just from the start
  • KT-61088 K2: return types of non-last-expression calls to @PolymorphicSignature methods inside try-expressions don't resolve to void when required
  • KT-65262 K2: Exception in DFA for combination of try-finally + PCLA + DI
  • KT-58169 K2: make equals bounded smart casts work the same as in K1
  • KT-64102 K2: Missing (disappeared in this case) DELEGATE_USES_EXTENSION_PROPERTY_TYPE_PARAMETER_ERROR
  • KT-63988 K2: Reflection cannot find type of local class of local class
  • KT-63901 K2: Different naming of inner class in metadata
  • KT-63655 K2: incorrect short class name in metadata for anonymous object inside a local class
  • KT-63737 Wasm: revise external declaration FE checker for WASI mode
  • KT-59782 K2: Forbid local delegated properties with private accessors in public inline functions
  • KT-64222 K2: "return type is not a subtype of the return type of the overridden member"
  • KT-63448 K2: CONFLICTING_INHERITED_JVM_DECLARATIONS with @JvmField
  • KT-59748 K2: Return type mismatch: expected Unit, actual Any? for when with an assignment in branch

Docs & Examples

  • KT-64710 [Docs] Update What's new for 2.0.0-BetaX

IDE. Gradle Integration

  • KT-65617 K/N project import fails if ~/.konan dir is empty

IR. Actualizer

  • KT-60847 K2: Fake overrides are incorrect after actualization
  • KT-63756 K2: "AssertionError: No such value argument slot in IrConstructorCallImpl" caused by actual typealias for annotation with default parameter

IR. Inlining

  • KT-66017 K2 / Native: "NoSuchElementException: Sequence contains no element matching the predicate" on building native release binaries
  • KT-64807 Refactor InlineFunctionResolver
  • KT-64806 Move FunctionInlining to separate module

IR. Tree

  • KT-66152 IrFakeOverrideBuilder: AssertionError "different length of type parameter lists"
  • KT-65971 K2: Investigate diagnostic test failures with IrFakeOverrideBuilder
  • KT-61360 Fix essential problems in IrFakeOverrideBuilder

JavaScript

  • KT-8373 JS: support ES6 as compilation target
  • KT-63907 KJS: default parameters in interfaces are lost in implementations
  • KT-64708 KJS: exported interfaces missing __doNotUseOrImplementIt when extending from external types
  • KT-62806 KJS: Type mismatch on inferred return type with Nothing
  • KT-64421 K2: Implement IrJsTypeScriptExportTestGenerated for K2
  • KT-61526 KJS: Compiled files clash with the new per-file granularity
  • KT-63359 K2: support new ways to declare TestResult in JS TestGenerator lowering
  • KT-65216 K2 JS: False positive JS_NAME_CLASH diagnostic on generic interface

Klibs

  • KT-33411 Kotlin/Native crashes if several libraries have declarations with the same FQ name
  • KT-44626 Umbrella issue: different kinds of klib IR linker error messages
  • KT-64440 K2: Port KotlinKlibSerializerTest to K2
  • KT-64452 K2: Port FilePathsInKlibTest to K2
  • KT-65723 K2: Signature clash diagnostic fails for parametrized function with Unsupported pair of descriptors
  • KT-65442 [klibs] header klibs: keep internal declarations and declarations inside inlines

Language Design

  • KT-65965 KMP: Parameter properties in constructor of external class
  • KT-64187 K2: False positive ABSTRACT_NOT_IMPLEMENTED caused by the fact that common code sees platform code of its dependencies
  • KT-65881 K2: Missing ITERATOR_MISSING in for loop on object
  • KT-65964 KMP: Private constructor in external classes
  • KT-61340 K2: Allowed smart cast in common which should be prohibited in platform
  • KT-51827 Inconsistent behavior with smartcast and protected members

Libraries

  • KT-54879 Add callsInPlace contract for more functions in stdlib
  • KT-65532 Stabilize experimental API for 2.0
  • KT-66102 Constructor-like function for creating AutoCloseable instances
  • KT-55777 Unresolved kotlin.AutoCloseable in JVM
  • KT-65590 Make CharSequence.isBlank idiomatic and improve its performance
  • KT-63219 Change root package and coordinates of kotlinx-metadata-jvm to kotlin.*
  • KT-65518 Memory leak in buildMap and in Wasm/Js/Native (Linked)HashMap
  • KT-65525 JS: Wrong return value of HashMap.keys.remove

Multiplatform Wizard

  • KT-66188 Update Compose for Desktop version to 1.6.0

Native

  • KT-65659 [K/N][K2] Typealiased kotlin.Throws isn't translated to NSError out param

Native. ObjC Export

  • KT-65863 Native: implement a flag to emit compiler errors on ObjCExport name collisions

Native. Swift Export

  • KT-65673 Expose parts of Kotlin/Native runtime to Swift export
  • KT-65668 Support for Unsigned Types
  • KT-65335 Swift Export: Remove KotlinSirOrigin hierarchy in favour of direct AA usage
  • KT-65672 Swift Export: import C bridges as Clang module

Native. Testing

  • KT-64393 Use Compiler Core test infrastructure for testing serialization diagnostics on Native
  • KT-65117 Implement IrBackendFacades for Kotlin/Native backend

Reflection

  • KT-65156 Calls to callBy that use default arguments fail with KotlineReflectionInternalError when the argument size is a multiple of 32 in a constructor that contains value class as a parameter

Tools. CLI

  • KT-65094 K2: Revise PerformanceManager reporting
  • KT-64989 Mark the whole diagnostic position range instead of only start position
  • KT-64608 K2: Wrong end position of compiler diagnostics

Tools. CLI. Native

Tools. Compiler Plugin API

  • KT-59555 Expose resource closing extension point in CompilerPluginRegistrar

Tools. Compiler Plugins

  • KT-65690 jvm-abi-gen: Remove internal declarations from ABI
  • KT-64590 jvm-abi-gen: Effectively private classes are not being removed from ABI
  • KT-63507 K2 / All-open plugin: "'open' has no effect on a final class" warning
  • KT-66208 PowerAssert: some built-in operators are not aligned correctly for some values
  • KT-65810 PowerAssert: Infix transformation doesn't capture full context
  • KT-65640 PowerAssert: Infix function not aligned correctly
  • KT-61993 K2: Synthetic file classes are generated with start offset of 0, causing errors during compilation
  • KT-63617 Add kotlin-power-assert to Kotlin repository

Tools. Fleet. ObjC Export

  • KT-65384 ObjCExport: class super name special case
  • KT-66380 ObjCExport: support interface implementation
  • KT-65670 ObjCExport: Naming: Support additional module based prefix
  • KT-64953 ObjCExport: Analysis-Api: enum
  • KT-65348 ObjCExport: Char as function return type
  • KT-65738 ObjCExport: Analysis-Api: Generate base declarations
  • KT-65204 ObjCExport: Analysis Api: Support nested classes
  • KT-65225 ObjCExport: implement KtCallableSymbol.isArray

Tools. Gradle

New Features

  • KT-62921 Add API to allow getting the version of the kotlinc compiler

Performance Improvements

  • KT-64353 Improve reuse of Build Tools Api's classloader

Fixes

  • KT-63619 Add Kotlin power-assert compiler plugin to feature usage statistics gathering
  • KT-64203 Throw exception when old build report properties are used
  • KT-66429 Move WASM stability warning to KGP Tooling Diagnostics and report it once per build
  • KT-63419 Deprecate 'kotlinOptions' DSL
  • KT-65952 PowerAssert: Update Gradle extension to be more idiomatic
  • KT-65951 PowerAssert: Add Gradle integration tests to compiler plugin
  • KT-66373 [Wasm, KGP] Npm is not configured for JS usagе for wasmWasi project
  • KT-66314 Build reports in JSON: property 'kotlin.build.report.json.directory' without value causes NPE
  • KT-64380 Add project diagnostics for deprecated properties
  • KT-65986 GradleDeprecatedOption.removeAfter does not actually remove arguments from the compilerOptions/kotlinOptions DSLs
  • KT-65768 Don't pass -Xfragment-sources for non-mpp compilations
  • KT-64378 Compatibility with Gradle 8.6 release
  • KT-65989 Compile against Gradle API 8.6
  • KT-65819 Build Gradle Plugins against Gradle 8.5 API
  • KT-65701 Limit Gradle daemon max memory in integration tests
  • KT-65568 Deprecate the ability to configure compiler options in KotlinCompilation
  • KT-64355 Add plugin variant for gradle 8.5
  • KT-62640 Compatibility with Gradle 8.5 release
  • KT-64504 Remove ownModuleName from AbstractKotlinCompile
  • KT-65708 Flaky tests because of ivy repos in Integration Tests
  • KT-56904 Enable warnings-as-error for Kotlin Gradle plugins compilation

Tools. Gradle. JS

  • KT-65870 KJS / Gradle: kotlinUpgradePackageLock fails making Yarn unusable

Tools. Gradle. Multiplatform

New Features

  • KT-66047 KMP: Isolate dependencies graph between main and test source sets
  • KT-65196 Add high-level DSL to configure compiler options in the multiplatform project

Fixes

  • KT-61078 K2: Compilation fails in FirSerializer trying to serialize nested class
  • KT-66372 KMP: JVM dependency can be downgraded by metadata dependency
  • KT-66514 Don't get output file from Cinterop task for IDE Import if host os doesn't support it
  • KT-66431 KMP: External Target Compilation friendArtifactResolver throws ClassCastException
  • KT-64995 KonanPropertiesBuildService is not compatible with Project Isolation
  • KT-63753 K2: File "does not belong to any module" when it is generated by registerJavaGeneratingTask in AGP
  • KT-65426 K2: Debug compilation fails because code from main source set included in two K2 fragments
  • KT-62508 Merge Android Source Sets into one K2 Fragment
  • KT-65187 Remove deprecated platform plugins ids
  • KT-63206 Deprecate eager CInteropProcess.outputFile in favor to lazy outputFileProvider

Tools. Gradle. Native

  • KT-65624 K/N warning: "The Kotlin/Native distribution used in this build does not provide the standard library." is displayed during configuration phase
  • KT-65823 Add downloading k/n dependencies to KotlinNativeProvider
  • KT-65985 Race condition during simultaneous execution of several native tasks
  • KT-64903 Add maven repo with dev versions into IT

Tools. Incremental Compile

  • KT-65943 Incorrect scopeFqName recorded in LookupTracker
  • KT-62101 IC: Execution failed for ClasspathEntrySnapshotTransform: when using tools.jar as dependency

Tools. Kapt

  • KT-65399 K2 QG: Kapt3 with K2 produces incorrect code
  • KT-44706 KAPT: @JvmRecord causes "Record is an API that is part of a preview feature"
  • KT-64391 Some K2 Kapt integration tests are being executed with K1
  • KT-65404 KAPT should print a warning if stub generation is triggered for an interface with method bodies but without -Xjvm-default=all or -Xjvm-default=all-compatibility
  • KT-65453 Kapt4: error "annotation @ParameterName is missing a default value for the element 'name'" for a composable lambda fun without parameters

Tools. Scripts

  • KT-65865 K2: Compile scripts in a separate session
  • KT-65967 Scripts in common source roots should be forbidden for now

Tools. Wasm

  • KT-64553 K/Wasm: enable binaryen by default in production builds
  • KT-66159 K/Wasm: applyBinaryen somehow affects skiko.mjs
  • KT-66228 K/Wasm 2.0.0-Beta4 distribution doesn't contain all files
  • KT-65889 wasmJsBrowserDistribution doesn't copy wasm binaries to dist folder
  • KT-65686 K/Wasm: Binaryen and d8 have to be downloaded via the same mechanism as Node.js and Yarn
  • KT-58291 Wasm: --tests argument is ignored when running wasmBrowserTest