Skip to content

Kotlin 2.0.0-RC1

Pre-release
Pre-release
Compare
Choose a tag to compare
@KotlinBuild KotlinBuild released this 09 Apr 09:03
· 197 commits to 2.0.0 since this release

Changelog

Analysis. API

Fixes

  • KT-65616 K2: FirDeclarationStatusImpl cannot be cast to FirResolvedDeclarationStatus from STATUS
  • KT-64241 K2: Unresolved calls to functions in scripts depending on included projects
  • KT-65813 Analysis API Standalone: FirDeclarationForCompiledElementSearcher does not find compiled elements
  • KT-66052 AA: render expect/actual modifier
  • KT-66795 KtCodeFragment.clone() is broken
  • KT-66532 K2 CodeGen AA: missing annotation setup for function in source module but not in a compile target file
  • KT-65561 Analysis API: dummy.kt is not a physical file
  • KT-64833 Analysis API: Members implemented by delegation have no overridden symbols
  • KT-62405 Analysis API: Symbols SUBSTITUTION_OVERRIDE have no overridden symbols
  • KT-66749 K2: "Collection contains no element matching the predicate" on an unresolved call
  • KT-66719 AbstractGetKlibSourceFileNameTest: The dependency to ":native:analysis-api-klib-reader" breaks JPS compilation
  • KT-66603 Analysis API: support type annotations in KtPsiTypeProviderMixIn#asPsiType
  • KT-64505 Analysis API Standalone: Remove test-specific calculation of sealed class inheritors
  • KT-66013 Analysis API Standalone: Sealed inheritors aren't correctly calculated for source classes
  • KT-62880 K2 IDE: Unresolved java annotation methods in KDoc
  • KT-66530 K2: Analysis API: KtPsiTypeProvider#asKtType crashes on PsiClassType for Java type parameter with wrong use site
  • KT-66485 Substituted types are not provided for callable references
  • KT-66498 Analysis API: 'KtFe10SymbolDeclarationOverridesProvider' considers a class to be a subclass of itself
  • KT-66189 K2 / IDE: KtFirExpressionTypeProvider bugs
  • KT-59732 FirLazyResolveContractViolationException: lazyResolveToPhase(IMPORTS) cannot be called from a transformer with a phase IMPORTS from serialisation plugin

Analysis. Light Classes

  • KT-66692 SLC: findAttributeValue for attribute w/ default value in Java returns null

Apple Ecosystem

  • KT-66446 Diagnostic never showed, and build fails when CocoaPods dependency is used with embedAndSign task and linking type is dynamic
  • KT-66445 Diagnostic never showed when CocoaPods dependency is used with embedAndSign task and linking type is static

Backend. Wasm

  • KT-66471 Null method reference with Kotlin/Wasm on 2.0.0-Beta4
  • KT-65210 K/Wasm ::class operator produces Number KClass for Short expression
  • KT-58088 [PL] Support & enable partial linkage for Wasm
  • KT-66104 Wasm: compiler crash: NoSuchElementException: Sequence contains no element matching the predicate
  • KT-64449 K2: Implement K1WasmWasiCodegenBoxTestGenerated for K2
  • KT-61263 K/Wasm: add a way to turn on k2 in wasm examples using Compose

Compiler

New Features

  • KT-32754 Choose existing extensions over additional built-ins members from JDK except overrides
  • KT-64350 K2: deprecate using typealias as a callable qualifier in imports
  • KT-62547 Introduce a language feature flag for smartcasts based on "memory" variables

Performance Improvements

  • KT-65005 K2: Investigate testCommonSuperTypeContravariant performance
  • KT-65579 K2: performance regression in FP Space
  • KT-61121 [K/N] Kotlin Native compiler performance is slow when generating large frameworks

Fixes

  • KT-67185 K2: Incorrect coercion-to-Unit leading to CCE at runtime
  • KT-63836 K2: No deprecation error message in common metadata compilation
  • KT-57618 K2: complex deprecation messages are not printed in the error
  • KT-61787 K2 doesn't report warnings for some Gradle tasks
  • KT-62063 K2: drop pre-release flag in 2.0-RC
  • KT-65578 K2: implement a deprecation warning for KT-57014 (wrong nullability returned from JDK SAM constructor lambda)
  • KT-65120 K2 Consider turn into platform checkers ones which checks for objC
  • KT-67090 K2: Exception from metadata compilation when compiling class with annotations from dependencies
  • KT-59479 K2: build KorGE
  • KT-62560 K2: KAPT4: annotation @ReplaceWith is missing a default value for the element 'imports'
  • KT-67027 K2: Review all use-sites of annotation arguments utilities
  • KT-60096 K2: Introduced API_NOT_AVAILABLE
  • KT-64151 K2: consider implementing FIR-level constant evaluation
  • KT-65195 K2: Unexpected exception when executing dynamic array element inc/dec
  • KT-63416 K2 / Contracts: False positive "Leaked in-place lambda" warning caused by suspend lambda with callsInPlace contract
  • KT-57812 K2: support serialization of type annotation's arguments
  • KT-66717 Incorrect diagnostics around intersection property overrides
  • KT-65603 K2: No approximation is done on public, but effectively private property
  • KT-59932 K2: Disappeared AMBIGUOUS_ANONYMOUS_TYPE_INFERRED
  • KT-66527 K2: type mismatch on override for type
  • KT-59400 K2: Missing CANNOT_INFER_VISIBILITY
  • KT-64534 K2: org.jetbrains.kotlin.util.FileAnalysisException: Somewhere in file
  • KT-65649 K2: IR has incorrect origins for some inplace updating operators
  • KT-66748 K2: False-positive AMBIGUOUS_SUPER in toString
  • KT-67013 K2: ClassCastException: class FirConstructorSymbol cannot be cast to class FirNamedFunctionSymbol
  • KT-52175 K2: WRONG_ANNOTATION_TARGET for annotation that used inside if
  • KT-66902 K2: "Named arguments are prohibited for non-Kotlin functions" with Java interop
  • KT-66793 K2: "assigning single elements to varargs in named form is prohibited." caused by varargs supplied from java with elvis operator
  • KT-65235 JDK 21 might lead to change in overloads resolution
  • KT-66350 K2: "IllegalStateException: Unsupported compile-time value STRING_CONCATENATION" when evaluating an annotation argument string
  • KT-65035 IrFakeOverrideBuilder: AbstractMethodError on inheritance from Java subclass of CharSequence with inherited implementations
  • KT-66447 Implement KT-59138 under a language feature
  • KT-66701 K2: Java interface method override via Kotlin class rejected
  • KT-66730 K2: False positive RETURN_TYPE_MISMATCH in return statement in SAM constructor
  • KT-66909 K2: Implement a diagnostic for returning null from a lambda with expected return type Unit!
  • KT-66570 Generic wildcard upper bound inference error
  • KT-65272 K2: invoke operator applies "restricted suspending call" error differently than K1
  • KT-65300 K2: this-expressions in initializers and local declarations don't introduce type information to either BI or PCLA
  • KT-66797 K2 JS: Primary constructor property annotation with target VALUE_PARAMETER is put on property instead of parameter
  • KT-66463 K2: false positive ACCIDENTAL_OVERRIDE_CLASH_BY_JVM_SIGNATURE
  • KT-63631 K2: constant value UByte.MAX_VALUE is incorrectly deserialized from metadata
  • KT-65386 K2: Different signature of invoke for Unit lambda
  • KT-60574 K2: generated IR for suspendCoroutineUninterceptedOrReturn is different from K1 (K2 uses Any? instead of Unit)
  • KT-66512 K2: Incorrect diagnostic in lambda whose expected type is a type alias to Unit
  • KT-66279 K2: False positive INITIALIZER_TYPE_MISMATCH with return Unit in a lambda with the expected type () -> Unit
  • KT-66277 K2: False negative RETURN_TYPE_MISMATCH with empty return in lambda assigned to a property
  • KT-62550 K2: Different JVM signature of lambda with Unit return type
  • KT-65623 K2: Unresolved reference in connection with casts
  • KT-66654 K2 FIR resolution: Mismatch between actual type and expected type for a value parameter when the parameter type is a function type with special function kind
  • KT-66638 Cannot access properties of a generic type with wildcards
  • KT-66767 K2: Destructuring declaration inside initializer failure
  • KT-65727 K2: add proper package for properties generated from destructuring declarations
  • KT-64854 K2: Trying to access private field on runtime with contracts
  • KT-59906 K2: Disappeared CAPTURED_VAL_INITIALIZATION
  • KT-65388 IrFakeOverrideBuilder - custom annotation is available in fake getter/setter
  • KT-56384 K2: build IntelliJ monorepo master branch
  • KT-66352 K2: difference between LL FIR and FIR for componentN functions
  • KT-66686 K2 Script: Unresolved reference of script-specific entities on out-of-order resolve
  • KT-65523 K2: add proper package for result$$ property
  • KT-66699 Restore HostManager ABI
  • KT-60533 Inliner incorrectly captures non-null value as null in coroutines
  • KT-57925 K2: Consider removing FirEmptyContractDescription
  • KT-61893 K2: should not resolve to Java function with Kotlin hidden-level deprecation
  • KT-59669 K2: Explore assignments in in-place lambdas
  • KT-66271 Fir: Deserialize classFile, functionFile and propertyFile from KlibMetadataProtoBuf
  • KT-57957 K2: Symbol providers are frequently queried with error-named class IDs
  • KT-66677 K2: OVERRIDE_DEPRECATION isn't reported for WEAKLY_HIDDEN method toArray()
  • KT-62793 K2: slightly different bytecode of suspend conversions
  • KT-57244 K2: slightly different naming scheme for suspend conversion adapters
  • KT-60256 K2: types are not substituted in suspend conversion
  • KT-64407 Implement WriteSignatureTestGenerated for K2
  • KT-64438 K2: Port CodegenTestCase to K2
  • KT-64404 Implement WriteFlagsTestGenerated for K2
  • KT-66491 K2 / KJS: "Name contains illegal characters." caused by backticks in import
  • KT-66275 K2: false-positive "Java module does not depend on module" error on access to inherited member from twice-transitive dependency via class from transitive dependency
  • KT-65576 K2: Incorrect resolution of variable+invoke when the property type is not computed
  • KT-58575 Private Kotlin property prevents use of Java get- and set-methods from Java-Kotlin-Java hierarchy
  • KT-65438 K2: Introduce WEAKLY_HIDDEN concept to built-in-JDK content mapping
  • KT-60510 Smartcast to functional type does not work in when exprssion
  • KT-59677 K2: Report diagnostics about missing receiver for delegated constructor call to inner class
  • KT-65939 IrFakeOverrideBuilder - nullability annotation is lost in intersection without annotation
  • KT-66356 K2: type mismatch error when generic type with inaccessible generic type as type argument is produced and consumed by declarations from dependencies
  • KT-65193 K2: "JAVA_TYPE_MISMATCH" caused by MutableList
  • KT-65704 K2: computeCommonSuperType of flexible type with recursive captured type argument produces giant multi-level-deep type
  • KT-64920 Json.encodeToString yields different results depending on whether typealias is used
  • KT-65594 K2: Type inference fails on NullMarked object with star type
  • KT-66392 K2: Exception in KJK hierarchy with implicit types
  • KT-66551 Revert temporary commits after KT-62063 and bootstrapping
  • KT-65218 FIR LL and DiagnosticFE10 tests start to fail in case of adding any new declaration into stdlib commonMain
  • KT-63746 K2: JSpecify: If a class has a @Nullable type-parameter bound, Kotlin should still treat unbounded wildcards like platform types
  • KT-66504 K2: plusAssign operator call is resolved differently than function call
  • KT-65105 K2 / Native: Member overrides different '@Throws' filter
  • KT-48515 JSpecify: If a class has a @Nullable type-parameter bound, Kotlin should still treat unbounded wildcards like platform types
  • KT-58892 K2: Parcelize doesn't work in common code when expect annotation is actualized with typealias to @Parcelize
  • KT-66124 K2: Remove FirLambdaArgumentExpression and FirNamedArgumentExpression after resolution
  • KT-38031 FIR: Discrepancy in call resolution for qualifiers with old FE
  • KT-65789 K1/K2: Resolve change in constructor/top-level function ambiguity
  • KT-66150 K2: expects type argument in super qualifier
  • KT-50008 JSpecify @Nullable annotation on type-parameter bound prevents type-variable usages from being platform types
  • KT-56988 CFG, smart casts: red in K1 -> green in K2 for invalid code
  • KT-66449 Make DiagnosticSuppressor a project-level extension
  • KT-65249 K2: False positive modality is different for native compilation
  • KT-64846 K2: false negative CONFLICTING_JVM_DECLARATIONS on inheritance from Java collection subclass with a conflicting override
  • 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-65926 K2: add tests for all fixed-in-k2 / not-reproducible-in-k2 unresolved issues
  • KT-58279 K2. False-negative Smart cast to is impossible, because is a public API property declared in different module for Java static field
  • KT-56032 [LC issue] Incorrect wrapping when passing java vararg method to inline function
  • KT-63826 K2: expect for expect crashes the compiler
  • 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-57585 K2/MPP: false-negative errors on expect/actual modifiers mismatch
  • KT-59467 K2: build toolbox-enterprise
  • KT-59883 K2: Disappeared INVALID_IF_AS_EXPRESSION
  • KT-63420 Prevent weakening visibility in implicit overrides
  • KT-56744 Prepare language committee ticket about DFA/Smart-cast related changes in K2
  • KT-64233 K2: K1/K2: ensure JVM ABI consistency for quality gates projects
  • KT-59744 K2: false negative VAL_REASSIGNMENT in case of reassignment inside custom setter
  • KT-62878 K2: missing implicit coercion to unit
  • KT-63441 IrFakeOverrideBuilder: "accidental override" when implementing a Java function taking an array parameter
  • KT-59887 K2: Disappeared ACTUAL_MISSING
  • KT-59839 Prohibit header and impl in MPP
  • KT-64967 K2: false positive TYPE_MISMATCH with generic type parameters
  • KT-59664 Inline modifier can be added to a constructor parameter, but it does not have any effect
  • KT-59630 K2: Implement running FIR Blackbox tests on different JDKs
  • KT-65058 K2: Protected function call from public-API inline function is prohibited in anonymous object
  • KT-61891 K2: POSTFIX_{INCR|DECR} of global misses an origin
  • KT-64314 K2: Rename FirConstExpression to FirLiteralExpression
  • KT-64809 K2: Remove the LINK_VIA_SIGNATURES flag from FIR2IR configuration
  • KT-59682 K2: Use proper source for vararg arguments
  • KT-59972 K2: Disappeared EXPRESSION_EXPECTED_PACKAGE_FOUND
  • KT-64405 K2: Implement CompileJavaAgainstKotlinTestGenerated for K2
  • KT-61032 K2: False positive “Unused variable” for function callable reference
  • KT-64771 Investigate subtle FIR_DUMP difference for reversed order analysis
  • KT-62584 K2: different signature in subclass of local class declared in extension value getter
  • KT-59938 K2: Disappeared AMBIGUOUS_ACTUALS
  • KT-63446 IrFakeOverrideBuilder: AbstractMethodError due to missing bridge for generic method in a Java superclass
  • KT-59949 K2: Disappeared DEPRECATED_PARCELER
  • KT-55809 K2: Support pre-release checks for klibs
  • KT-59913 K2: Disappeared UNSUPPORTED_FEATURE
  • KT-58094 K2: Review IrBuiltinsOverFir
  • KT-59940 K2: Disappeared ACTUAL_ANNOTATION_CONFLICTING_DEFAULT_ARGUMENT_VALUE
  • KT-60004 K2: Disappeared CONTRACT_NOT_ALLOWED
  • KT-59890 K2: Disappeared CONST_VAL_WITH_NON_CONST_INITIALIZER
  • KT-59884 K2: Disappeared NON_LOCAL_RETURN_NOT_ALLOWED
  • KT-59977 K2: Disappeared NO_ACTUAL_FOR_EXPECT
  • KT-59996 K2: Disappeared INVALID_CHARACTERS
  • KT-59992 K2: Disappeared KCLASS_WITH_NULLABLE_TYPE_PARAMETER_IN_SIGNATURE
  • KT-59974 K2: Disappeared INAPPLICABLE_INFIX_MODIFIER
  • KT-59991 K2: Disappeared FORBIDDEN_VARARG_PARAMETER_TYPE
  • KT-59973 K2: Disappeared INAPPLICABLE_LATEINIT_MODIFIER
  • KT-59933 K2: Disappeared USAGE_IS_NOT_INLINABLE
  • KT-59967 K2: Disappeared UNINITIALIZED_ENUM_ENTRY
  • KT-59943 K2: Disappeared OPERATOR_MODIFIER_REQUIRED
  • KT-59986 K2: Disappeared ITERATOR_MISSING
  • KT-57802 K2: Backend Internal error: RecordEnclosingMethodsLowering.kt
  • KT-59941 K2: Disappeared COMPONENT_FUNCTION_MISSING
  • KT-62620 Warn about @OptIn/@Deprecated for overrides of Any
  • KT-59689 K2: Fix complex smartcasts with safe calls
  • KT-60026 K2: Introduced EXPOSED_TYPEALIAS_EXPANDED_TYPE
  • KT-59433 K2: Missing NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE
  • KT-60080 K2: Introduced INVISIBLE_SETTER
  • KT-59979 K2: Disappeared SUPERTYPE_INITIALIZED_IN_EXPECTED_CLASS
  • KT-59978 K2: Disappeared EXPECTED_ENUM_ENTRY_WITH_BODY
  • KT-59955 K2: Disappeared INCOMPATIBLE_MODIFIERS
  • KT-59942 K2: Disappeared ANNOTATION_PARAMETER_DEFAULT_VALUE_MUST_BE_CONSTANT
  • KT-59931 K2: Disappeared CLASS_LITERAL_LHS_NOT_A_CLASS
  • KT-59429 K2: Missing ABBREVIATED_NOTHING_RETURN_TYPE
  • KT-59420 K2: Missing ABBREVIATED_NOTHING_PROPERTY_TYPE
  • KT-59965 K2: Disappeared CANNOT_ALL_UNDER_IMPORT_FROM_SINGLETON
  • KT-59952 K2: Disappeared EXPOSED_PROPERTY_TYPE_IN_CONSTRUCTOR_ERROR
  • KT-59985 K2: Disappeared UNDERSCORE_USAGE_WITHOUT_BACKTICKS
  • KT-59950 K2: Disappeared ILLEGAL_ESCAPE
  • KT-59899 K2: Disappeared EXPECTED_DECLARATION_WITH_BODY
  • KT-59980 K2: Disappeared EXPECTED_ENUM_CONSTRUCTOR
  • KT-59982 K2: Disappeared EXPECTED_CLASS_CONSTRUCTOR_PROPERTY_PARAMETER
  • KT-60092 K2: Introduced EXPOSED_PROPERTY_TYPE_IN_CONSTRUCTOR_ERROR
  • KT-60105 K2: Introduced UNDERSCORE_USAGE_WITHOUT_BACKTICKS
  • KT-57703 K1/K2: unprecise constraint system behavior around integer literals and comparable arrays
  • KT-60043 K2: Introduced PROPERTY_AS_OPERATOR
  • KT-60048 K2: Introduced MISSING_EXCEPTION_IN_THROWS_ON_SUSPEND
  • KT-59422 K2: Missing NON_SOURCE_ANNOTATION_ON_INLINED_LAMBDA_EXPRESSION
  • KT-59804 K2: Repeat the SealedInheritorInSameModuleChecker HMPP logic
  • KT-60936 KMP: check annotations compatibility on members inside expect and actual class scopes
  • KT-60668 KMP: check expect and actual annotations match when actual method is fake override
  • KT-59419 K2: Missing MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES_WHEN_NO_EXPLICIT_OVERRIDE
  • KT-59860 [FIR] False-positive UNEXPECTED_SAFE_CALL

Docs & Examples

  • KT-66958 [Docs] Add info about generating lambda functions like the Java compiler by default

IR. Interpreter

  • KT-64079 Native library evolution behaviour for constants

IR. Tree

  • KT-66152 IrFakeOverrideBuilder: AssertionError "different length of type parameter lists"

JavaScript

  • KT-45604 KJS / IR: Use globalThis instead of top level this
  • KT-64421 K2: Implement IrJsTypeScriptExportTestGenerated for K2
  • KT-64451 K2: Implement MultiModuleOrderTestGenerated for K2
  • KT-64450 K2: Implement SourceMapGenerationSmokeTestGenerated for K2
  • KT-64426 K2: Implement JsIrLineNumberTestGenerated for K2
  • KT-64422 K2: Implement IrJsSteppingTestGenerated for K2
  • KT-64445 K2: Implement **VersionChangedTestGenerated for K2
  • KT-64446 K2: Implement JsIrInvalidationPerFileWithPLTestGenerated for K2
  • KT-64423 K2: Implement JsIrES6InvalidationPerFileTestGenerated for K2
  • KT-61117 Migrate remaining legacy IC tests to IR

Klibs

  • KT-66970 K2: "IrLinkageError: Function * can not be called" when calling @JvmStatic functions in Native test
  • KT-66611 Check, that no bad IR is produced, when we failed to compute constant default value in constant context
  • KT-66367 KLib ABI dump: support wasm_target manifest attribute
  • KT-64440 K2: Port KotlinKlibSerializerTest to K2
  • KT-64452 K2: Port FilePathsInKlibTest to K2
  • KT-61097 [PL] Don't create an executable if there were errors in PL

Language Design

  • KT-58881 K2: Run checkers in common code against platform session
  • KT-59553 K2: Simplify rules for upper bound violated checks for qualifier in LHS of class literal
  • KT-62646 Decide on the equality compatibility
  • KT-65775 K2: Consider prohibiting actual typealias to superclass
  • KT-54309 Deprecate use of a synthetic setter on a projected receiver
  • KT-26983 Gradle buildscript (kotlin-dsl): "Smart cast to 'Foo' is impossible" due to same variable names
  • KT-57422 K2: Prohibit use-site 'get' targeted annotations on property getters

Libraries

  • KT-63156 Remove all deprecated declarations in kotlinx-metadata-jvm
  • KT-63219 Change root package and coordinates of kotlinx-metadata-jvm to kotlin.*
  • KT-63341 K2: JVM StringBuilder has no corresponding members for expected class members
  • KT-63157 Make sure that all deprecation levels are raised to ERROR for declarations intended for removal from kotlinx-metadata
  • KT-60870 kotlinx.metadata.InconsistentKotlinMetadataException: No VersionRequirement with the given id in the table In kotlinx-metadata-jvm
  • KT-64230 Prohibit writing versions of metadata that are too high
  • KT-59441 Design reading and writing future versions of Kotlin metadata
  • KT-57922 kotlinx-metadata-jvm does not take into account strict semantics flag

Native

  • KT-66390 Universal binary in included binaries produces universal archive as output

Native. ObjC Export

  • KT-66565 Exporting framework "umbrella" produces an unimportable framework

Native. Runtime. Memory

  • KT-66371 Native: nullptr access during concurrent weak processing in CMS GC
  • KT-61093 Kotlin/Native: enable concurrent weak processing by default

Native. Swift Export

  • KT-65897 Translate constructors with primitive parameters to init methods in Swift export
  • KT-66681 Move generated swift from enum to extension

Native. Testing

  • KT-66014 [K/N][Tests] Some testsuites don't test two-stage compilation and lose -language-version flag

Tools. Build Tools API

  • KT-61860 Add infrastructure for BTA tests
  • KT-65048 "Can't get connection" (to daemon) when classpath has spaces

Tools. CLI

  • KT-66703 Add JVM target bytecode version 22
  • KT-65842 K2 / CLI: "kotlinc -version" creates META-INF/main.kotlin_module
  • KT-66926 Add a flag to report warnings when errors are found
  • KT-64384 Until the REPL in K2 is not supported, display an appropriate warning

Tools. CLI. Native

Tools. Compiler Plugin API

  • KT-59555 Expose resource closing extension point in CompilerPluginRegistrar

Tools. Compiler Plugins

  • KT-66526 K2: Special function kind setup does not work for value parameter whose type is function with a receiver

Tools. Compiler plugins. Serialization

  • KT-63539 K2: Missing "Serializable class has duplicate serial name of property"
  • KT-65757 K2: Missing @Deprecated annotation on synthesized declarations
  • KT-64447 K2: Implement Serialization...IrBoxTestGenerated for K2

Tools. Fleet. ObjC Export

  • KT-66695 Move analysis-api-klib-reader package into 'o.j.k.native.analysis.api`
  • KT-66380 ObjCExport: support interface implementation

Tools. Gradle

New Features

  • KT-67006 Create new compose compiler Gradle plugin

Performance Improvements

  • KT-66912 Parallel compilation slowdown due to synchronization

Fixes

  • KT-67138 Json report is empty for incremental compilation
  • KT-61171 CompilerPluginsIncrementalIT.afterChangeInPluginBuildDoesIncrementalProcessing doesn't provide a compiler plugin for K2 leading to the test failure
  • KT-67139 Build reports can be overridden
  • KT-65934 Track if Gradle configuration cache is enabled in the user builds
  • KT-65935 Track project isolation Gradle feature
  • KT-64567 [FUS] Add boolean flag into kotlin.gradle.performance collector
  • KT-66961 Early access to gradle.rootProject leads to an exception
  • KT-63619 Add Kotlin power-assert compiler plugin to feature usage statistics gathering
  • KT-62108 Wrong scope of compiler options is used while configuring options for all targets and all compilations
  • KT-63165 Gradle: checkKotlinGradlePluginConfigurationErrors uses deprecated Gradle behavior
  • KT-66374 Diagnostic for deprecated properties: false-positive warning is reported for kapt.use.k2property
  • KT-62398 KMP: Compose breaks resolution of stdlib declarations in common source set
  • KT-64046 Provide K/N version to KGP when -Pkotlin.native.enabled=true
  • KT-64848 Log K/Native compiler arguments with log level specified for compiler arguments
  • KT-65213 Collect logic for FUS metrics calculation in one place

Tools. Gradle. JS

  • KT-66917 JS/Wasm: Upgrade NPM dependencies

Tools. Gradle. Multiplatform

  • KT-49919 Introduce the org.gradle.jvm.environment attribute on JVM and Android published variants (both for MPP and non-MPP libraries)
  • KT-66983 MPP Configuration Cache IT fails with Gradle 8.7 on windows
  • KT-66419 Remove useless API: Kotlin compilation level compiler options DSL
  • KT-65315 KMP Composite compileIosMainKotlinMetadata fails with "Could not find "
  • KT-61945 Report redundant dependsOn-edges
  • KT-66563 Stop including resources to metadata klib
  • KT-57141 K2: KotlinCompile task input named 'multiplatformStructure.fragments.$0.sources' is tracked in a pure JVM kotlin project together with changes of sources

Tools. Gradle. Native

  • KT-66982 Gradle plugin corrupts Native compiler dependencies
  • KT-65641 Invalid replacements for deprecated properties 'konanHome' and 'konanDataDir' are suggested as quick fixes
  • KT-66750 Cannot query the value of task ':commonizeNativeDistribution' property 'kotlinNativeBundleBuildService' because it has no value available
  • KT-66309 K/N compiler can't be downloaded if project import is stopped while 'commonizeNativeDistribution' task is being executed and rerun again
  • KT-66422 Configuration cache breaks during Kotlin Native dependencies downloading
  • 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-52483 Sign native prebuilt tars

Tools. Incremental Compile

  • KT-61137 Incremental scripting compilation fails with 2.0
  • KT-65943 Incorrect scopeFqName recorded in LookupTracker

Tools. Kapt

  • KT-66773 KAPT: Generated stubs cannot access annotations from other module
  • KT-59488 K2: build sphinx-kotlin
  • KT-65453 Kapt4: error "annotation @ParameterName is missing a default value for the element 'name'" for a composable lambda fun without parameters
  • KT-62097 K2: [KAPT4] Keep import statements for unresolved annotation classes
  • KT-61628 K2: testAndroidDaggerIC doesn't work with Kapt4

Tools. Scripts

  • KT-66395 K2: Scripting test testHelloSerialization fails on K2

Tools. Wasm

  • KT-67086 K/Wasm: wasi with binaries.library fails on import and build
  • KT-66159 K/Wasm: applyBinaryen somehow affects skiko.mjs
  • KT-66733 wasmWasiTest is not compatible with Gradle Configuration Cache
  • KT-64601 Indicate that wasmJsBrowserDevelopmentRun has finished bundling