Skip to content

Latest commit

 

History

History
2649 lines (2185 loc) · 260 KB

ChangeLog.md

File metadata and controls

2649 lines (2185 loc) · 260 KB

2.0.0-RC1

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

2.0.0-Beta5

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

2.0.0-Beta4

Analysis. API

Performance Improvements

  • KT-64987 Analysis API: 50GB memory allocation on creating empty kotlinx.collections.immutable.persistentMapOf

Fixes

  • KT-65268 K2: Checking the presence of the delegated constructor call forces AST loading
  • KT-63330 Analysis API: Stub-based deserialized symbol providers provide unresolved enum entry annotation arguments
  • KT-65418 Analysis API: LLFirAbstractSessionFactory loads anchor module sessions eagerly
  • KT-64718 Analysis API: do not expose SealedClassInheritorsProvider and FirRegularClass to IDE Plugin
  • KT-65075 K2: getContainingDeclaration() is broken for declarations inside code fragments
  • KT-61332 Support KtTypeCodeFragment in PsiRawFirBuilder
  • KT-65150 AA: incorrect result from KtTypeProvider#getReceiverTypeForDoubleColonExpression for Java static method
  • KT-55750 LL FIR: Implement multi-threaded resolve
  • KT-56551 LL FIR: implement parallel resolve for jumping phases
  • KT-65223 Psi: avoid KtFile usages
  • KT-65307 Analysis API FE10: support KtFe10AnalysisSessionProvider.getAnalysisSessionByUseSiteKtModule
  • KT-62695 K2 IDE: Unresolved extension functions in KDoc
  • KT-65152 Analysis API: KDoc references to packages are not fully resolved
  • KT-64988 K2 IDE: Navigation from the named argument in safe call does not work
  • KT-64074 K2: Investigate LL divergence for Script.testTopLevelPropertyInitialization
  • KT-64921 K2 IDE: references in platform code resolve to expect classifier instead of actual
  • KT-62441 K2: IDE K2: "No dangling modifier found"
  • KT-64528 K2 IDE: MPP: unregistered component 'org.jetbrains.kotlin.fir.scopes.impl.FirDelegatedMembersFilter'
  • KT-64993 Analysis API: KtExpressionTypeProvider.getExpectedType works incorrectly for arguments of safe calls
  • KT-64883 Allow direct creation of KtCommonFile
  • KT-64646 K2: properly forbid ast loading during raw fir phase in tests
  • KT-64862 Psi: missed parenthesis in type reference presentation
  • KT-62893 K2 IDE. FP 'when' expression must be exhaustive with Java sealed interface from library
  • KT-63795 K2: lazyResolveToPhase(BODY_RESOLVE) cannot be called from a transformer with a phase BODY_RESOLVE from SealedClassInheritorsProviderIdeImpl

Analysis. Light Classes

  • KT-65425 K2 IDE: Seeing a reference to the class generated by compiler plugin exposed from Java code caused NPE from light classes
  • KT-64937 SLC: internal setters are not mangled

Apple Ecosystem

  • KT-63212 podInstall task fails without a proper diagnostic when xcodeproj gem is outdated

Backend. Wasm

  • KT-63939 Kotlin/Wasm Support lazy associated object initialisation
  • KT-64803 K/Wasm: non-capturing lambdas are not singleton unlike same lambdas in jvm
  • KT-64449 K2: Implement K1WasmWasiCodegenBoxTestGenerated for K2
  • KT-64829 K/Wasm: division remainder has a wrong sign
  • KT-65009 Generate TypeScript definitions for the @JsExport declarations in K/Wasm

Compiler

New Features

  • KT-63670 Implement platform specific declaration clash diagnostics across all backends
  • KT-62547 Introduce a language feature flag for smartcasts based on "memory" variables

Fixes

  • KT-63344 K2: False positive ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED
  • KT-58845 K2: SAM checker can run incorrectly in presence of an expect supertype
  • KT-61843 K2: Missing TYPE_MISMATCH for nested array literals
  • KT-61798 K2 incorrectly calculates modality of property accessors
  • KT-65255 K2 / KJS: "IllegalArgumentException: Candidate is not successful, but system has no contradiction"
  • KT-65341 K2: "Cannot find cached type parameter by FIR symbol" caused by not-null assertion operator inside string in throw
  • 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-61310 K2: "Not enough information to infer type variable R" for transformLatest
  • KT-63733 Builder-style type inference can't resolve to extension overloads when they're more applicable than member ones
  • KT-57707 K1: inconsistent TYPE_MISMATCH in builder inference
  • KT-55057 Builder inference changes behaviour sporadically based on BI annotation on unrelated call
  • KT-60663 Builder inference does not work inside a nested unrelated builder inference lambda
  • KT-53639 TYPE_MISMATCH: compiler can't infer the list's type when using buildList {} builder or Collection#isNotEmpty
  • KT-60291 K2: "IllegalStateException: Cannot serialize error type: ERROR CLASS: Cannot infer argument for type parameter T" during FIR serialization
  • KT-65033 K2: Fir2LazyIr: Lazy type aliases not supported
  • KT-57709 Inconsistent extension function call resolution in builder inference
  • KT-53740 Builder inference with multiple lambdas leads to unsound type
  • KT-60877 Builder inference from the null literal results in Nothing instead of Nothing? for producing positions of the postponed type variable
  • KT-53553 Builder inference: inconsistent types in different lambda scopes
  • KT-54400 K2: builder inference does not work with assignments of literals to member properties
  • KT-53109 CompilationErrorException generateUnboundSymbolsAsDependencies with builder inference and lambdas
  • KT-52757 Type inference for builders fails if inferred from a function
  • KT-63840 Builder inference fails on calls to identity-shaped functions with postponed type variables inside select-constructions
  • KT-64276 [K/N][K2] K2 behaviorial difference with inconsistent inheritance of ObjCName
  • KT-59782 K2: Forbid local delegated properties with private accessors in public inline functions
  • KT-65482 K2: NoSuchFieldError due to using unboxed type
  • KT-63208 K2: Implement deprecation cycle and fix missing errors for error-level nullable arguments of warning-level Java types
  • KT-64891 K2: consider supporting/forbidding foo.(bar)() syntax
  • KT-62134 K2: handle non-simple types during FirStatusResolver.isPrivateToThis check
  • KT-65290 K2: No override for FUN DEFAULT_PROPERTY_ACCESSOR
  • KT-65111 K2: Java star imports don't work in KJK interdependencies
  • KT-59012 K2: Support inferring types based on self upper bounds
  • KT-65373 K2: there is a crash in KJK hierarchy with an extension member property
  • KT-65277 IrFakeOverrideBuilder: NPE from IrJavaIncompatibilityRulesOverridabilityCondition.doesJavaOverrideHaveIncompatibleValueParameterKinds
  • KT-62884 K2: different signature of delegate object for generic extension property
  • KT-59630 K2: Implement running FIR Blackbox tests on different JDKs
  • KT-64944 Can't assign null after early return smart cast with typed destructive assignment
  • KT-64910 K2: AA FIR: KtCall's argument mapping misses SAM conversion argument
  • KT-64846 K2: false negative CONFLICTING_JVM_DECLARATIONS on inheritance from Java collection subclass with a conflicting override
  • KT-60732 K2 Scripting: TeamCity DSL test
  • KT-65165 K2: "ClassCastException: class java.lang.String cannot be cast to class SampleClass"
  • KT-64982 K2: false negative FUNCTION_CALL_EXPECTED
  • KT-64872 K2: do-while condition able to access uninitialized variable
  • KT-65318 K2: Substitution stackoverflow on jspecify @NullMarked superclass
  • KT-65010 Kotlin/Native: code generation for a static field is failing
  • KT-59921 K2: Disappeared NULL_FOR_NONNULL_TYPE
  • KT-57299 K2: VerifyError due to overriding final method size on a subclass of Collection and Set
  • KT-57300 K2: subclass of MutableCollection with primitive element type has methods with boxed type
  • 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-64706 K2: Type inference cannot resolve nullable @Composable lambda
  • KT-65058 K2: Protected function call from public-API inline function is prohibited in anonymous object
  • KT-53629 K2: forbid multiple labels per statement
  • KT-65316 K2: False positive USAGE_IS_NOT_INLINABLE for expression labeled with illegal label
  • KT-57268 K2: extra methods remove and/or getOrDefault are generated for Map subclasses with JDK 1.6 in dependencies
  • KT-63151 K2: Assignment within function lambda should invalidate contract DFA implications
  • KT-63351 K2. No smart cast with not-null assertion operator after a safe call
  • KT-65324 atomicfu-plugin: top-level delegated properties cause NPE
  • KT-60246 K2: origin is not set for getting array element operator
  • KT-64387 K2: Missing POSTFIX_INC/DEC origin for array element inc/dec
  • KT-61891 K2: POSTFIX_{INCR|DECR} of global misses an origin
  • KT-65019 K2: unexpected exception when executing inc/dec in finally block on WASM
  • KT-64392 Factor out KLIB serialization logic from the backend.native module
  • KT-65270 K2: Missing ACTUAL_WITHOUT_EXPECT when expect is fake-override
  • KT-60367 K2: Support EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE diagnostics
  • KT-62704 Absent testrunner FirLightTreeDiagnosticTestSpecGenerated
  • KT-65044 K2 compiler crash on unresolved delegated extention receiver
  • KT-65021 K2: Missing error and miscompilation in destructuring declaration delegation
  • KT-63899 K2: Vararg parameter misses annotation in metadata
  • KT-60175 JVM IR inline: accidental reification of typeOf type argument
  • KT-60174 JVM IR inline: accidental reification in various cases
  • KT-65103 K2: IllegalArgumentException: IrErrorCallExpressionImpl(5388, 5392, "Unresolved reference: R?C|/cont|") found but error code is not allowed
  • KT-64635 K2: "KotlinIllegalArgumentExceptionWithAttachments: Expected expression 'FirAnonymousFunctionExpressionImpl' to be resolved" when provideDelegate is extension of function with receiver
  • KT-63434 K2. False positive Cannot access with protected nested classifiers references inside anonymous object inherited from containing class
  • KT-64314 K2: Rename FirConstExpression to FirLiteralExpression
  • KT-63577 K2: false-positive "wrong number of type arguments" error on callable reference to member of generic function's local class
  • KT-64975 FIR: Deserialize enum entry annotation arguments from binary libraries with lookup tags instead of symbols
  • KT-61626 K2: Module "com.soywiz.korlibs.kmem:kmem" has a reference to symbol korlibs.memory/Buffer|null[1]
  • KT-64268 K2: Data-flow from nested lambda not passed to outer lambda
  • KT-59729 K2: Investigate CFG buildings for inner lambdas in case of double-lambda builder inference
  • KT-64841 K2: argument type mismatch with type parameter with recursive bound
  • KT-62554 K2: incorrect "inherits multiple implementations" error when base Java method takes a parameter of primitive wrapper type
  • KT-65093 K2: Super constructor call able to access uninitialized object fields
  • KT-56489 K2 allows reading uninitialized variable in object declaration
  • KT-59987 K2: Disappeared REIFIED_TYPE_FORBIDDEN_SUBSTITUTION
  • KT-36786 Smartcast doesn't work in case of property infix call
  • KT-65056 IrFakeOverrideBuilder: ISE "No override for FUN" on package-private Java method in K-J-K hierarchy
  • KT-62045 IrFakeOverrideBuilder: incorrectly merged fake overrides for Java methods accepting wrapper Double and primitive double
  • KT-57640 [K2/N] Investigate behaviour for intersection overrides for properties that have incompatible types
  • KT-59682 K2: Use proper source for vararg arguments
  • KT-63781 K2: Generated blocks appear in the IR
  • KT-63779 K2: Regression for locations of 'if' statements
  • KT-63624 K2: incompatible declaration because of different visibility
  • KT-64400 K2: allow to use simple boolean expressions as constants
  • KT-59972 K2: Disappeared EXPRESSION_EXPECTED_PACKAGE_FOUND
  • KT-63256 K2: NOT_IDENTITY operator call is illegal in contract description
  • KT-63529 K2: Compiler does not detect tailrec call with nullable type
  • KT-65012 IR Evaluator: NoSuchFieldException when evaluating protected/private fields of superclasses
  • KT-64871 IrFakeOverrideBuilder: ISE "no override for " on HashMap subclass
  • KT-60262 Support for inter-module interaction for @SubclassOptInRequired
  • KT-58739 K2: Rewrite CallableId.classId to be thread-safe
  • KT-64979 K2: Missing REDUNDANT_TYPE_PARCELER when using type alias
  • KT-60019 K2: Introduced PARCELER_TYPE_INCOMPATIBLE
  • KT-62500 K2: origin=GET_PROPERTY is wrongly set to GET_FIELD of backing field inside property's own getter
  • KT-64743 K2: Non-expanded type serialized in metadata
  • KT-64405 K2: Implement CompileJavaAgainstKotlinTestGenerated for K2
  • KT-64837 K2: NPE in fir2ir when generic transitive dependency class is missing
  • KT-60258 Support java-kotlin interop for @SubclassOptInRequired
  • KT-60260 K2: Implicit coercion to unit is not generated in adapted function reference
  • KT-60858 Remove redundant createDeprecatedAnnotation necessary to workaround kotlinx-serialization compilation with native
  • KT-64432 Unbound symbol access in Fir2Ir fake override builder
  • KT-64466 K2: Delegated method annotations are not copied in IR
  • KT-63589 K1: Unsound type inference for unbound callable reference to star-projected class's generic mutable property
  • KT-61032 K2: False positive “Unused variable” for function callable reference
  • KT-64832 K2: False positive "Unused variable" checker report on suspend functional types, on overloaded functional types and on custom invoke operator types
  • KT-64609 K2: INAPPLICABLE_TARGET_PROPERTY_IMMUTABLE diagnostic is missed for primary constructor properties
  • KT-61937 K2: implicit script receiver from ScriptDefinition are not visible for invoke
  • KT-27936 Write InnerClasses attribute for all class names used in a class file
  • KT-31367 IllegalStateException: Concrete fake override public open fun (...) defined in TheIssue[PropertyGetterDescriptorImpl@1a03c376] should have exactly one concrete super-declaration: []

Docs & Examples

  • KT-63001 K2: Organize team-wide talks about new FIR2IR & PCLA

IR. Actualizer

  • KT-65274 IrFakeOverrideBuilder: ISE: "IrFieldPublicSymbolImpl is already bound"
  • KT-65236 IrFakeOverrideBuilder: ISE: "should not be called"
  • KT-65116 K2: IrFakeOverrideBuilder: "No override for FUN" if the function has already been overridden by another class in K <- J<- K <- J hierarchy
  • KT-65499 IrFakeOverrideBuilder: ISE IrSimpleFunctionPublicSymbolImpl is already bound for irrelevant 'remove' clashing with a function from Java collection subclass
  • KT-64150 IrFakeOverrideBuilder: Fake overrides for static java functions are not generated
  • KT-65432 IrFakeOverrideBuilder - No override for FUN IR_EXTERNAL_JAVA_DECLARATION_STUB name:elementData
  • KT-64895 K2:IrActualizer corrupts attributeOwnerId value

IR. Inlining

  • KT-64868 [K/N] Inlined assert is later not removed, even without -ea

IR. Tree

  • KT-64974 Consolidate visibility checks in IrFakeOverrideBuilder

JavaScript

  • KT-34995 JS: List, Map, and Set types are hard to use from JS because of mangled member names
  • KT-64548 KJS / K2: "Cannot find delegated constructor call" caused by external classes constructors
  • KT-63359 K2: support new ways to declare TestResult in JS TestGenerator lowering
  • KT-44871 Add @JsExport and @JsName annotations to stdlib classes (especially collections) to avoid method name mangling and improve Kotlin usability from JS
  • KT-64867 K2 JS: Name clash between constructors with same JsName but in different classes
  • KT-64463 KJS / K2: "Name contains illegal chars that cannot appear in JavaScript identifier" caused by non-ASCII character
  • KT-65168 Introduce an ability to create type-safe JS objects

KMM Plugin

  • KT-59270 Update wizards in KMM AS plugin after 1.9.20 release

Klibs

  • KT-65063 Clashing KLIB signatures from different modules result in an exception
  • KT-61143 [klib tool] Dump IR with unbound symbols

Language Design

  • KT-58881 K2: Run checkers in common code against platform session
  • KT-64187 K2: False positive ABSTRACT_NOT_IMPLEMENTED caused by the fact that common code sees platform code of its dependencies
  • KT-62959 Value of captured type is not a subtype of the same captured type
  • KT-64739 Mark @SubclassOptInRequired as an experimental

Libraries

  • KT-63397 kotlin-test should declare runtime dependency on "org.junit.platform:junit-platform-launcher"
  • KT-65242 Update transitive dependencies of JVM test frameworks in kotlin-test
  • KT-63355 Detect concurrent modifications in ArrayDeque
  • KT-57150 Consider introducing Common protected property AbstractMutableList.modCount
  • KT-64956 Implement optimized removeRange for ArrayDeque
  • KT-57151 Consider introducing Common protected function AbstractMutableList.removeRange
  • KT-58039 Wasm: Implement unsigned numbers using wasm builtin capabilities
  • KT-63714 K2: kotlinx-benchmarks fails with "Unable to find method ''org.gradle.api.tasks.TaskProvider" with register("js")

Native

  • KT-64249 Native: Implicit cache directory search is O(n^2)

Native. C and ObjC Import

  • KT-64105 [K2/N] cannot access Objective-C forward declared class used only in a dependent lib

Native. Runtime

  • KT-65170 Kotlin/Native: deprecate -Xworker-exception-handling=legacy with error

Native. Runtime. Memory

  • KT-63423 Kotlin/Native: huge dispose-on-main overhead
  • KT-64313 Kotlin Native: Seg Fault during Garbage Collection on 1.9.21 (observed on iOS)

Reflection

  • KT-57972 Reflection: "KotlinReflectionInternalError" when using callBy with overridden function in inline class

Tools. CLI

  • KT-64608 K2: Wrong end position of compiler diagnostics

Tools. Commonizer

  • KT-64376 Commonizer incorrectly retains UnsafeNumber annotation in target sets where it shouldn't

Tools. Compiler Plugins

  • KT-64591 Data class' copy method is never stripped from ABI
  • KT-59074 K2: false-positive MUST_BE_INITIALIZED_OR_FINAL_OR_ABSTRACT if allOpen plugin is used and a val is defined with init {} block
  • KT-64589 jvm-abi-gen: Order of class members affects ABI jar
  • KT-65072 jvm-abi-gen: SourceDebugExtension annotation isn't stripped along with corresponding attribute
  • KT-64971 Exception is thrown when compiling kotlinx.coroutines to Native because of the new signature clash diagnostics
  • KT-54025 [K2] [NONE_APPLICABLE] compiler error in case @ AllArgConstructor annotation is used together with a static field
  • KT-54054 [Lombok] An extra unneeded constructor parameter is expected by compiler if java class annotated with @ AllArgsConstructor and has private final initialized field

Tools. Daemon

  • KT-64283 Configure correct JVM arguments when starting the daemon

Tools. Fleet. ObjC Export

  • KT-65108 ObjCExport: Tests: Check if 'requirePlatformLibs' is necessary
  • KT-65281 ObjCExport: AA: Run already passing Unit Tests on CI
  • KT-65080 ObjCExport: Analysis-Api: error handling
  • KT-64952 ObjCExport: Analysis-Api: object
  • KT-64869 ObjCExport: Analysis-Api: Support 'MustBeDocumented' annotations
  • KT-64839 ObjCExport: Enable tests on CI for aggregate
  • KT-64888 ObjCExport: Analysis Api: Support exporting KDoc

Tools. Gradle

  • KT-62639 Compatibility with Gradle 8.4 release
  • KT-65143 Use the new ConfigurationContainer dependencyScope method to create dependency declaration configurations
  • 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
  • KT-61698 Compiler options configured inside metadata {} target set up all targets in a project
  • KT-59024 Compatibility with Gradle 8.3 release
  • KT-60664 Gradle 8.3: KGP eagerly creates compile task

Tools. Gradle. JS

  • KT-64119 K/JS: Migrate package manager from Yarn onto NPM
  • KT-65295 Gradle: K/N and K/JS tests may produce unrequested TeamCity service messages

Tools. Gradle. Multiplatform

  • KT-61943 Mark the checkKotlinGradlePluginConfigurationErrors as UP-TO-DATE when possible
  • KT-61559 Include stdlib and platform dependencies to KotlinNativeCompilation.compileDependencyFiles API
  • KT-65196 Add high-level DSL to configure compiler options in the multiplatform project
  • KT-61430 K2/KMP: metadata compilation fails with Unresolved reference for property in actual class

Tools. Gradle. Native

  • KT-49268 Only download Kotlin/Native Compiler when there are valid targets
  • KT-52567 Use Gradle dependency management for downloading Kotlin/Native compiler when compiling with Gradle
  • KT-64903 Add maven repo with dev versions into IT
  • KT-51255 Kotlin/Native should not download compiler artifacts when not necessary
  • KT-58303 Kotlin multiplatform Gradle plugin downloads Kotlin/Native compiler during configuration

Tools. JPS

  • KT-65043 JPS dumb mode should respect maps needed for the compiler

Tools. Kapt

  • KT-65684 KAPT: (Re)enable fallback to K1 KAPT and make it default
  • KT-61080 Kapt: investigate suspicious check for KMutableMap.Entry in KaptTreeMaker
  • KT-64479 Kapt4 + Compose. Error: scoping construct cannot be annotated with type-use annotation: @androidx.compose.runtime.Composable

Tools. Wasm

  • KT-64851 Wasm. Support Gradle configuration cache

2.0.0-Beta3

Analysis. API

Fixes

  • KT-62895 K2 IDE. FP 'when' expression must be exhaustive with sealed interface from library
  • KT-64805 Analysis API: introduce common entry point for multi-file test cases
  • KT-64714 K2: Analysis API: CollectionsKt.map doesn't resolves from Java in kotlin repo
  • KT-64647 K2: Allow to calculate decompiled inheritors for sealed classes in tests
  • KT-64595 AA: stackoverflow while simplifying a type with a recursive type parameter
  • KT-64825 Analysis API. Cannot compute containing PSI for unknown source kind 'org.jetbrains.kotlin.KtFakeSourceElementKind$DefaultAccessor' exception on getContainingSymbol call for default setter parameter
  • KT-64080 K2: Analysis API: On-air resolve does not trigger resolution of delegated super call arguments
  • KT-64243 K2: proper lazy resolution for fake overrides
  • KT-62891 K2 IDE. FP [EXPOSED_FUNCTION_RETURN_TYPE] on overriding library method which returns protected type
  • KT-61890 Analysis API: Migrate KtFirScopeProvider to ContextCollector instead of onAirResolve
  • KT-64197 K2: Code fragments are only supported in JVM
  • KT-64604 K2: IDE K2: "Modules are inconsistent during performance tests"
  • KT-62357 K2 IDE. False positive on generated component methods and false negative on getter of @JvmRecord classes in Java
  • KT-62892 K2 IDE. Java outer class from other module is not resolved when nested class is accessed with fq name in a type position
  • KT-62888 K2 IDE. IDE infers reference to KMutableProperty as reference to just KProperty
  • KT-64584 K2: StubBasedFirDeserializedSymbolProvider: support deserialization of delegated declarations
  • KT-60324 K2 IDE: "NoSuchElementException: List is empty at JavaOverrideChecker#buildErasure"
  • KT-62896 K2 IDE. FP ABSTRACT_MEMBER_NOT_IMPLEMENTED on inheriting class from library which implements interface by delegation
  • KT-62947 Analysis API: Error while resolving FirPropertyImpl
  • KT-64468 Analysis API: Implement mixed multi-module tests which support different kinds of KtModules
  • KT-63547 K2 IDE. False Positive AMBIGUOUS_ANNOTATION_ARGUMENT
  • KT-62832 K2: ClassCastException: FirDeclarationStatusImpl cannot be cast to FirResolvedDeclarationStatus
  • KT-64205 Analysis API: Do not import non-top-level callables by default
  • KT-63056 K2: Cannot mutate an immutable ImplicitReceiverValue on FirCodeFragment analysis
  • KT-64108 K2: KtFirSymbolDeclarationOverridesProvider shouldn't provide fake overrides
  • KT-63752 K2: java.lang.StackOverflowError FirFieldSymbol.getHasInitializer
  • KT-63718 Analysis API: Stub-based dependency symbol providers of library source sessions compute the wrong package name sets
  • KT-64186 Analysis API: ContextCollector provides incorrect scopes for anonymous objects
  • KT-63979 K2 IDE: presentation of types in completion is too verbose
  • KT-63681 K2: LL FIR: Improve isResolved check coverage of after lazy resolution

Analysis. Light Classes

  • KT-64795 SLC: distinguish last v.s. non-last vararg value parameter type during binary resolution
  • KT-64605 K2 IDE: usage of @Repeatable annotation in Java: false positive "Duplicate annotation"
  • KT-61605 K2 IDE: Light elements do not obey platform contracts
  • KT-57536 SLC: no need to populate members with expect modifier
  • KT-63087 K2 IDE: in .java source reference to JvmName names on unsigned type / value class are unresolved
  • KT-63949 K2 IDE. Analyze hang on @Autowired constructor analysis
  • KT-64320 Decouple kotlin psi from java PSI
  • KT-64282 Decouple KotlinIconProviderService from java PSI

Backend. Wasm

  • KT-58852 WASM: two methods with different varargs: Class korlibs.template.dynamic.DynamicShape has 2 methods with the same signature [register(kotlin.Array)

Compiler

New Features

  • KT-4113 Smart casts for properties to not-null functional types at invoke calls

Fixes

  • KT-64400 K2: allow to use simple boolean expressions as constants
  • KT-57094 K1: wrong type inferred for an instance of a local class inside a generic property
  • KT-62069 K2: ASSIGNMENT_TYPE_MISMATCH is reported in addition to NO_ELSE_IN_WHEN
  • KT-62776 FirLazyResolveContractViolationException: "lazyResolveToPhase(STATUS) cannot be called from a transformer with a phase TYPES" on Java annotation usage
  • KT-64222 K2: "return type is not a subtype of the return type of the overridden member"
  • KT-60056 K2: Introduced UNRESOLVED_REFERENCE
  • KT-59791 K2: Implement partially constrained lambda analysis
  • KT-64877 K2: PCLA doesn't allow infer types from value parameter having TV type
  • KT-42020 Psi2ir: IllegalStateException: "IrSimpleFunctionPublicSymbolImpl for public [...] is already bound" on generic function whose substitution leads to IdSignature clash
  • 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-64615 Inconsistent error messages for platform type nullability assertions
  • KT-59938 K2: Disappeared AMBIGUOUS_ACTUALS
  • KT-64501 K2: False-positive WRONG_INVOCATION_KIND when using default arguments
  • KT-64640 Prevent mutating SequenceCollection methods from JDK 21 be available on read-only collections
  • KT-63644 K2: Create special IR symbols for fake-overrides in fir2ir in mode with IR f/o generator
  • KT-62476 K2: Enable building fake overrides by ir on non-JVM targets
  • KT-63638 K2: Compiler crashes with "Inline class types should have the same representation"
  • KT-36220 NI: false positive NON_APPLICABLE_CALL_FOR_BUILDER_INFERENCE if one use cannot resolve
  • KT-64121 K2: Actual modifier is missed on override fun toString() fro value class in native
  • KT-63703 K2: Eliminate call to Candidate.usesSAM and samResolver.getFunctionTypeForPossibleSamType in AbstractConeCallConflictResolver.toTypeWithConversion
  • KT-64435 K2: FIR2IR: Source offsets for data class members are inconsistent with PSI2IR
  • KT-64090 K2: false-positive new inference error on invoking from another module a generic function on Java list type with wildcard type argument bounded by raw-typed Java inner class
  • KT-64044 K2: Java mapped method should have a source from Java method, not from mapped Kotlin source class
  • KT-46674 ClassCastException with smartcast if plus operator returns a different type
  • KT-59369 K2: Missing BUILDER_INFERENCE_STUB_RECEIVER
  • KT-64644 K2: Compiler crash in FirTypeParameterBoundsChecker
  • KT-64312 K2: FirPropertySymbol.hasBackingField() always returns true for properties from other modules
  • KT-64420 K2: Wrong module descriptor for builtin classes
  • KT-64127 K2: incorrect resolution of inherited members on Java classes inheriting classes from different packages in the presence of identically named classes in the same packages
  • KT-63446 IrFakeOverrideBuilder: AbstractMethodError due to missing bridge for generic method in a Java superclass
  • KT-63441 IrFakeOverrideBuilder: "accidental override" when implementing a Java function taking an array parameter
  • KT-63867 K2: Smartcast is allowed inside changing lambda with cycles
  • KT-63414 K2 / Contracts: false positive "Result has wrong invocation kind" when invoking a function returning a value with contract InvocationKind.EXACTLY_ONCE and try/finally
  • KT-63777 K2: Smartcast is allowed inside changing lambda with bounds
  • KT-64059 K2: CYCLIC_INHERITANCE_HIERARCHY while using nested annotation in an outer class declaration
  • KT-63528 K2: Missing UNNECESSARY_SAFE_CALL for warning level annotated java declarations
  • KT-64607 K2: extension functions on UInt and Number lead to JVM ClassCastException
  • KT-62816 K2: Annotation use site targets printing could be improved in diagnostics' messages
  • KT-62815 K2: FIR renderings leak through some diagnostics' message
  • KT-35289 Confusing warning message "Duplicate label in when"
  • KT-49084 Contracts: error message is unclear
  • KT-63228 K2: Upper bound violation diagnostic renders compiler internals about SourceAttribute
  • KT-62386 K2: Proofread quotes in diagnostic messages
  • KT-64081 K2: Incorrect smartcast candidate calculation in MemberScopeTowerLevel
  • KT-63994 K2: Investigate K2 failures in IntelliJ-Rust plugin
  • KT-64261 K2 / WASM: Extension function with star projection throws "RuntimeError: unreachable"
  • KT-58767 Inheritance opt-in enforcement via @SubclassOptInRequired can be avoided with type aliases
  • KT-63941 K2: "IllegalStateException: Unsupported compile-time value STRING_CONCATENATION" caused by class reference in string expression as annotation parameter
  • KT-59818 K2: Explore the TODO about suspend functions overridden in Java in FirHelpers
  • KT-63233 K2 : false negative Class is not abstract and does not implement abstract member with abstract suspend function
  • KT-63379 K2. Argument type mismatch on creating functional interface instance with function literal as an argument with in type projection
  • KT-64308 K2: prefer call with Unit conversion at lower level to one without Unit conversion at upper level
  • KT-64307 K2: prefer function with default arguments at lower level to one without them at upper level during callable reference resolve
  • KT-64306 K2: prefer SAM at lower level to a functional type at upper level
  • KT-63827 K2: Array += desugaring doesn't have origin
  • KT-64341 Kotlin/JVM: Missing line number generation for intrinsic comparisons
  • KT-64238 Add proper documentation to the IdeCodegenSettings class
  • KT-63667 K2/KMP: exception when expect property matched to java field
  • KT-63563 K2: False negative RETURN_TYPE_MISMATCH with empty return
  • KT-62525 K2: IllegalStateException: Can't find KotlinType in IrErrorType: IrErrorType(null)
  • KT-57427 Fix inconsistencies in name manglers that use different declaration representations
  • KT-57755 K2/JVM: Fix computing a "signature" mangled name for the main function
  • KT-63645 K2: Replace special f/o symbols with normal ones after actualization
  • KT-63076 K2: change in behavior for synthetic properties in Kotlin-Java hierarchy
  • KT-63723 Frontend manglers improperly handle error type
  • KT-63738 K2: Some declarations are missing in the hierarchy of overridden symbols
  • KT-62242 K2: Uniformly treat enum entries as anonymous objects
  • KT-62281 K2: build DuckDuckGo Android user project and pass it to CI
  • KT-60266 K2: origin is not set for FOR_LOOP_ITERATOR
  • KT-59875 K2: Disappeared UNRESOLVED_REFERENCE_WRONG_RECEIVER
  • KT-62715 K2: Missing WASM_IMPORT_EXPORT_UNSUPPORTED_PARAMETER_TYPE
  • KT-62723 K2: Missing WASM_IMPORT_ON_NON_EXTERNAL_DECLARATION
  • KT-62722 K2: Missing NESTED_WASM_IMPORT
  • KT-62721 K2: Missing WASM_EXPORT_ON_EXTERNAL_DECLARATION
  • KT-62720 K2: Missing JS_AND_WASM_EXPORTS_ON_SAME_DECLARATION
  • KT-62719 K2: Missing NESTED_WASM_EXPORT
  • KT-62718 K2: Missing WASM_IMPORT_EXPORT_UNSUPPORTED_RETURN_TYPE
  • KT-62717 K2: Missing WASM_IMPORT_EXPORT_PARAMETER_DEFAULT_VALUE
  • KT-62716 K2: Missing WASM_IMPORT_EXPORT_VARARG_PARAMETER
  • KT-60225 K2: compiler FIR symbol resolution crash on a call to an extension function whose receiver contains a type parameter with a recursive upper bound
  • KT-63530 K2: Disable passing data flow info from in-place lambdas
  • KT-60958 K2: smart cast does not work with definite return from if block
  • KT-60090 K2: Introduced DEPRECATED_PARCELER
  • KT-59949 K2: Disappeared DEPRECATED_PARCELER
  • KT-61768 Wrong bytecode index in LineNumberTable when there is an incremental operation
  • KT-64045 K2: "Expect declaration * is incompatible with actual" when function parameter names are different
  • KT-62018 K2: prohibit suspend-marked anonymous function declarations in statement positions
  • KT-63973 K2: "NoSuchElementException: Array is empty" with vararg used within tail recursive function
  • KT-63612 K2: Class is not abstract and does not implement abstract member
  • KT-61792 KMP: Backend error on @Deprecated usage with DeprecationLevel.HIDDEN in K2
  • KT-63709 K2: Argument smartcasting impacting receiver and call resolution for implicit invoke
  • KT-57788 Fix computing mangled names of types with @EnhancedNullability from IR-based declaration descriptors
  • KT-63249 K2: change in annotation resolve when ambiguous
  • KT-63514 ISE “Inline class types should have the same representation: [I != I” during compilation on submitting UIntArray to vararg
  • KT-63932 K2/Native codegen test failures around builder inference
  • KT-62553 K2: Add topLevelClassifierPackageNames to symbol name providers
  • KT-64148 K2: class cast exception org.jetbrains.kotlin.fir.types.ConeStarProjection
  • KT-63665 K2: "NullPointerException" caused by class with the companion object and extra curly brace
  • KT-59715 K2: Check behaviour of property + operator in operator position
  • KT-62347 Prohibit using property+invoke convention for delegated properties
  • KT-59421 K2: Missing CONTEXT_RECEIVERS_WITH_BACKING_FIELD
  • KT-59903 K2: Disappeared DELEGATE_SPECIAL_FUNCTION_NONE_APPLICABLE
  • KT-62926 K2: IR has missing receivers during expect-actual matching
  • KT-62565 K2 cannot infer type parameters in case of expected functional type
  • KT-63328 K2: Top-level properties in scripts can be used while uninitialized
  • KT-59683 K2: Add control flow graph to FirScript
  • KT-63524 K2: "Not enough information to infer type argument"
  • KT-63835 K2: metadata compilation with constants is falling for Native
  • KT-60251 K2: delegated method are delegating to different methods in hierarchy compared to K1
  • KT-63695 JVM: Don't use plugin extensions when compiling code fragment
  • KT-63574 K2: "IllegalStateException: IrFieldPublicSymbolImpl for java.nio/ByteOrder.LITTLE_ENDIAN"
  • KT-60504 K2: difference between LL FIR and FIR in enhanced return type with annotation
  • KT-64147 K2: Generate FIR diagnostics with explicit types
  • KT-63042 K2: proper processing of propagated annotations
  • KT-59368 K2: Missing SUBTYPING_BETWEEN_CONTEXT_RECEIVERS
  • KT-64083 K2: "KotlinIllegalArgumentExceptionWithAttachments: Unexpected returnTypeRef. Expected is FirResolvedTypeRef, but was FirJavaTypeRef"
  • KT-37308 No smart cast when the null check is performed on a child property through a function with a contract
  • KT-59894 K2: Disappeared ANNOTATION_ARGUMENT_MUST_BE_CONST
  • KT-63329 K2: difference in SAM-conversion casts generation
  • KT-64062 K2 IDE. NPE on typing nullable parameter in return
  • KT-58579 K2: false-positive new inference error on invoking a generic function on Java wildcard type bounded by raw-typed Java inner class
  • KT-64031 K2: Revise naming in FirBuilderInferenceSession
  • KT-50453 Improve builder inference diagnostics with type mismatch due to chosen inapplicable overload
  • KT-56949 K2: Builder inference violates upper bound
  • KT-63648 K2: values of postponed type variable don't introduce type constraints in extension receiver positions during builder-style type inference
  • KT-64028 K2: Investigate questionable condition in FirBuilderInfernceSession
  • KT-63848 ReflectiveAccessLowering does not count arguments of super-calls
  • KT-61920 K2: False negative CONST_VAL_WITH_NON_CONST_INITIALIZER when initializer is Java field
  • KT-63508 K2: "IllegalArgumentException: Not FirResolvedTypeRef (String) in storeResult" caused by @Deprecated Java function and typo
  • KT-63522 K2: wrong context for delegated field type
  • KT-53308 TYPE_MISMATCH: Contracts on boolean expression has no effect on referential equality to null
  • KT-51160 Type mismatch with contracts on narrowing sealed hierarchy fail to smart cast
  • KT-49696 Smart cast to non-null with inline non-modifying closures sometimes doesn't work
  • KT-46586 SMARTCAST_IMPOSSIBLE when assigning value inside lambda instead of if expression
  • KT-41728 False positive no smart cast with unreachable code after return in if expression
  • KT-22904 Incorrect bytecode generated for withIndex iteration on Array

IR. Actualizer

  • KT-58861 K2: Improve the new pipeline of FIR2IR conversion, IR actualization and fake-override generation
  • KT-63347 K2: Fix overridden symbols inside LazyDeclarations
  • KT-62535 K2: FakeOverrideRebuilder can't handle f/o without overridden symbols

JavaScript

  • KT-64366 KJS / K2: Exported declaration uses non-exportable return type: 'kotlin.?'
  • KT-64426 K2: Implement JsIrLineNumberTestGenerated for K2
  • KT-64422 K2: Implement IrJsSteppingTestGenerated for K2
  • KT-64364 K2 / KJS: @JSExports generates clashing declarations for companion objects that extends its own class
  • KT-63038 Compilation of suspend functions into ES2015 generators
  • KT-61929 KJS: "IllegalStateException: No dispatch receiver parameter for FUN LOCAL_FUNCTION_FOR_LAMBDA" caused by run function in init block

Klibs

  • KT-64085 Different klib signatures for K1/K2 for overridden properties assigned in init block
  • KT-64395 API for ABI: Add a check for the file's existence to KLIB ABI Reader
  • KT-63573 K2: Dependency problems with dependencies with same artifact id
  • KT-64082 Different klib signatures in K1/K2 for the same locally used constant declaration
  • KT-63931 [K/N] Relative path to klib option of cinterop tool doesn't work
  • KT-60390 KLIBs: Wrong IrSymbol is used for deserialized expect property's backing field & accessors

Libraries

  • KT-61969 Migrate kotlin-test to the current Kotlin Multiplatform Plugin
  • KT-64361 Optimization opportunity in Int.sign
  • KT-63157 Make sure that all deprecation levels are raised to ERROR for declarations intended for removal from kotlinx-metadata
  • KT-64230 Prohibit writing versions of metadata that are too high

Native

  • KT-64508 IndexOutOfBoundsException in Konan StaticInitializersOptimization

Native. C and ObjC Import

  • KT-63049 NPE in BackendChecker.visitDelegatingConstructorCall compiling ObjC-interop class
  • KT-59597 [K\N] Usage of instancetype in block return type crashes

Native. ObjC Export

  • KT-62091 KMP for iOS framework with private api : __NSCFBoolean
  • KT-64076 ObjCExport: Do not retain descriptors in stubs
  • KT-64168 ObjCExport: Split header generator module into K1 and Analysis Api
  • KT-64227 ObjCExport: Extract Header Generation to base module

Native. Runtime. Memory

  • KT-62689 Native: generate signposts for GC performance debugging

Native. Testing

  • KT-64256 IR_DUMP directive doesn't enforce FIR_IDENTICAL when it is possible
  • KT-62157 Native: Migrate FileCheck tests to new native test infra

Tools. CLI

  • KT-64013 CLI REPL: "com.sun.jna.LastErrorException: [14] Bad address" on invoking kotlinc from CLI on ARM Mac

Tools. Compiler Plugin API

  • KT-64444 K2: IrGeneratedDeclarationsRegistrar.addMetadataVisibleAnnotationsToElement doesn't work for declarations in common module

Tools. Compiler Plugins

  • KT-64707 K2: Parcelize ignores @TypeParceler set for typealias
  • KT-33020 Support stripping debug information in the jvm-abi-gen plugin

Tools. Compiler plugins. Serialization

  • KT-64447 K2: Implement Serialization...IrBoxTestGenerated for K2
  • KT-64124 Different klib signatures in K1/K2 for a serializable class

Tools. Gradle

  • KT-64251 KGP: Cannot re-use tooling model cache with Project Isolation due to "~/.gradle/kotlin-profile" changing
  • KT-58768 Support configuration cache and project isolation for FUS statistics
  • KT-64653 Add Kotlin DslMarker into Gradle plugin DSL
  • KT-64379 Remove kotlin.useK2 gradle property
  • KT-62527 Gradle: get rid of the Project.buildDir usages
  • KT-55322 Kotlin daemon: Cannot perform operation, requested state: Alive > actual: LastSession

Tools. Gradle. JS

  • KT-64561 K/JS tests are not executed after upgrade to 1.9.22
  • KT-63435 KJS: Get rid of deprecated outputFileProperty of Kotlin2JsCompile

Tools. Gradle. Multiplatform

  • KT-63226 KGP Multiplatform Ide Dependency Resolution: Use gradle variants instead/in addition of ArtifactResolutionQuery

Tools. Gradle. Native

  • KT-62800 CInteropProcess should not require .def file to exist
  • KT-62795 CInteropProcess task resolves cinterop def file eagerly, breaking Gradle task dependencies

Tools. Incremental Compile

  • KT-63837 Implement baseline fix for common sources getting access to platform declarations
  • KT-64513 Simplify adding configuration properties to incremental compilation
  • KT-21534 IC doesn't recompile file with potential SAM-adapter usage
  • KT-63839 Measure impact of rebuilding common sources, using nightly IC benchmarks
  • KT-64228 K2: After switching to LV20 branch incremental tests are not running on PSI anymore
  • KT-46743 Incremental compilation doesn't process usages of Java property in Kotlin code if getter is removed
  • KT-60522 Incremental compilation doesn't process usages of Java property in Kotlin code if return type of getter changes

Tools. JPS

  • KT-55393 JPS: Java synthetic properties incremental compilation is broken

Tools. Kapt

  • KT-64385 K2: Enable K2 KAPT by default
  • KT-64719 K2 KAPT Stub genertaion doesn't fail on files with syntax errors
  • KT-64680 Kapt: remove the flag to enable old JVM backend
  • KT-64639 KAPT+JVM_IR: erased error types in JvmStatic and JvmOverloads
  • KT-64389 K2 KAPT generates invalid code for multiple generic constraints
  • KT-61776 K2: KAPT tasks fail with parallel gradle
  • KT-64021 Kapt3 + Kapt4. NullPointerException: processingEnv must not be null
  • KT-64303 K2 KAPT: Kapt doesn't dispose resources allocated by standalone analysis API
  • KT-64301 K2 KAPT: Kapt doesn't report invalid enum value names to log
  • KT-64297 K2 KAPT: Deprecated members are not marked with @java.lang.Deprecated

Tools. REPL

  • KT-18355 REPL doesn't quit on the first line after pressing Ctrl+D or typing :quit

2.0.0-Beta2

Analysis. API

Fixes

  • KT-62982 K2: Cannot get a PSI element for 'Enum.values'
  • KT-59732 FirLazyResolveContractViolationException: lazyResolveToPhase(IMPORTS) cannot be called from a transformer with a phase IMPORTS from serialisation plugin
  • KT-61757 K2 IDE: resolution to buitlins does not work for from common module
  • KT-62676 K2 IDE: Reference shortener does not recoginize redundant this references
  • KT-63627 K2 IDE: shorten reference shortens required qualifier
  • KT-62675 K2 IDE: Reference shortener does not recoginize redundant labels
  • KT-63771 fe10: KtNamedClassOrObjectSymbol#isInline does not cover value classes
  • KT-62947 Analysis API: Error while resolving FirPropertyImpl
  • KT-60327 K2 IDE. "IllegalArgumentException: source must not be null" during delegation declaration
  • KT-63700 K2: "FirLazyExpression should be calculated before accessing" in the case of secondary constructor
  • KT-62111 K2 IDE. IllegalArgumentException on for loop with iterator declaration attempt
  • KT-63538 Analysis API: Removing a contract statement via PsiElement.delete() does not trigger an out-of-block modification
  • KT-63694 K1/K2 IDE. "RuntimeException: Broken stub format, most likely version of kotlin.FILE (kotlin.FILE) was not updated after serialization changes" exception on incorrect class name
  • KT-63560 Analysis API: Modifiable PSI tests cannot rely on the cached application environment to allow write access
  • KT-62980 Implement KtFirSimpleNameReference#getImportAlias
  • KT-63130 Analysis API: No receiver found for broken code during commit document
  • KT-60170 K2 IDE: CCE from KtFirCallResolver on invalid code with wrong implicit invoke
  • KT-61783 K2: Analyze 'KtCodeFragment' in a separate session
  • KT-62010 K2: IDE K2: "ConeClassLikeTypeImpl is not resolved to symbol for on-error type"
  • KT-62957 Analysis API: NullPointerException on call resolution when builtins are not available
  • KT-62899 K2 IDE. IDE ignores @Suppress annotation for errors
  • KT-62935 Analysis API: kotlin.Cloneable should not be available in Kotlin/Native sources
  • KT-62910 Analysis API: create AbstractFirPsiNativeDiagnosticsTest for LL FIR
  • KT-63096 K2: Analysis API: KotlinAnnotationsResolver for IDE is created with incorrect scope
  • KT-63282 K2 Script: annotation arguments phase should resolve propagated annotations
  • KT-63223 Analysis API: reference to declarations with kotlin* package are not resolved
  • KT-63195 AA: incorrect results from KtTypeProvider#getReceiverTypeForDoubleColonExpression

Analysis. Light Classes

  • KT-63552 Symbol Light Classes don't support arrayOf and similar without parameters in property initializers and default parameter values
  • KT-63486 SLC: a lot of RAM is allocated in org.jetbrains.kotlin.asJava.LightClassUtil.isMangled

Backend. Wasm

  • KT-62863 Execution failed for task ':kotlinx-serialization-properties:wasmJsD8Test' in serialization in the K2 QG

Compiler

New Features

  • KT-22004 Allow to resolve CONFLICTING_OVERLOADS with Deprecated(HIDDEN)
  • KT-61955 Support more wider actual member visibility, if the expect member is effectively final

Fixes

  • KT-63695 JVM: Don't use plugin extensions when compiling code fragment
  • KT-59903 K2: Disappeared DELEGATE_SPECIAL_FUNCTION_NONE_APPLICABLE
  • KT-62961 K2 / KMP: NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS with expect enum class and typealias
  • KT-59369 K2: Missing BUILDER_INFERENCE_STUB_RECEIVER
  • KT-53749 Support builder inference restriction in FIR
  • KT-59390 K2: Missing BUILDER_INFERENCE_MULTI_LAMBDA_RESTRICTION
  • KT-59887 K2: Disappeared ACTUAL_MISSING
  • KT-62885 Introduce a language feature entry for expect actual classes for easier configuration of MPP projects
  • KT-62589 K2: Investigate need of non-nullable IdSignature in Fir2IrLazyDeclarations
  • KT-63329 K2: difference in SAM-conversion casts generation
  • KT-64062 K2 IDE. NPE on typing nullable parameter in return
  • KT-63761 K2: False positive "Unresolved reference" caused by object's parameter in enum class which is passed as annotation parameter
  • KT-55252 Backend Internal error during psi2ir in native compile tasks (NPE in getKlibModuleOrigin)
  • KT-50453 Improve builder inference diagnostics with type mismatch due to chosen inapplicable overload
  • KT-56949 K2: Builder inference violates upper bound
  • KT-64028 K2: Investigate questionable condition in FirBuilderInfernceSession
  • KT-60031 K2: Introduced NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS
  • KT-63646 K2: "IllegalStateException: Return type of provideDelegate is expected to be one of the type variables of a candidate, but D was found"
  • KT-59881 K2: Disappeared UNSUPPORTED
  • KT-64136 K2: NSME with Anvil compiler plugin
  • KT-63448 K2: CONFLICTING_INHERITED_JVM_DECLARATIONS with @JvmField
  • KT-63865 K2: "IllegalArgumentException: Failed requirement." caused by lambda parameters with different type in init block
  • KT-62609 K2. Type argument inference changed for object of Java class with several common parents
  • KT-63081 Optimize new native caches: CachedLibraries.computeVersionedCacheDirectory()
  • KT-63580 "AssertionError: access of const val: GET_FIELD" caused by const value and variable with delegation
  • KT-63567 "NoSuchMethodError" on getting value of lazily initialized property by companion's const value
  • KT-63540 Restrict the CONFLICTING_OVERLOADS + DeprecatedLevel.HIDDEN ignore to final callables
  • KT-30369 Smartcasts from safe call + null check don't work if explicit true/false check is used
  • KT-30376 Smartcasts don't propagate to the original variable when use not-null assertion or cast expression
  • KT-30868 Unsound smartcast if smartcast source and break is placed inside square brackets (indexing expression)
  • KT-31053 Nothing? type check isn't equivalent to null check is some places
  • KT-29935 Smartcasts don't work if explicit annotated true/false check is used
  • KT-30903 Smartcast to null doesn't affect computing of exhaustiveness
  • KT-62847 K2: Introduce FIR node for SAM conversion
  • KT-63564 K/Wasm: CompilationException with 2.0.0-Beta1
  • KT-63345 K2: FIR2IR chooses an incorrect type for smartcast in case of SAM conversion
  • KT-63848 ReflectiveAccessLowering does not count arguments of super-calls
  • KT-61920 K2: False negative CONST_VAL_WITH_NON_CONST_INITIALIZER when initializer is Java field
  • KT-63649 K2: Wild card in superclass confuses EXPANSIVE_INHERITANCE checker
  • KT-63569 K2: "IllegalStateException: ?!id:1" caused by private function call
  • KT-63842 K2: some arguments of annotations on local declarations are unresolved
  • KT-63832 K2: missed context during annotation argument resolution for a type alias, init and property receiver
  • KT-62559 KMP, K2: prevent reporting ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT twice in CLI
  • KT-24652 Elvis with 'break' can produce unsound smartcasts in while-true loop
  • KT-28508 Possible unsound smartcast in class initializer
  • KT-28759 No not-null smartcast from direct assignment if it's split into declaration and value assignment
  • KT-28760 No not-null smartcast from direct assignment of this
  • KT-29878 Smartcasts from type check or null check don't work if explicit true check as reference equality is used
  • KT-29936 Smartcasts don't work if comparing with return value of some function and explicit true/false check is used
  • KT-30317 Smartcast doesn't work if smartcast source is used as an operand of the reference equality
  • KT-63071 K2 supports calling functions with the dynamic receiver over Nothing?
  • KT-59896 K2: Disappeared WRONG_ANNOTATION_TARGET
  • KT-56849 Implement K/Wasm K1 diagnostics in K2
  • KT-31636 Expect-actual matching doesn't work for inner/nested classes with explicit constructor using typealiases
  • KT-63361 K2: Expected FirResolvedTypeRef for return type of FirDefaultPropertyGetter(SubstitutionOverride(DeclarationSite)) but FirImplicitTypeRefImplWithoutSource found
  • KT-63377 K2: conflict between type parameter and nested class
  • KT-62913 Convert DEFAULT_ARGUMENTS_IN_EXPECT_ACTUALIZED_BY_FAKE_OVERRIDE to checking incompatibility
  • KT-63550 K2: fake-override in expect covariant override in actual. Move diagnostics from backend to frontend
  • KT-63443 IrFakeOverrideBuilder: ISE "No new fake override recorded" when Java superclass declares abstract toString
  • KT-58933 Applying suggested signature from WRONG_NULLABILITY_FOR_JAVA_OVERRIDE leads to red code
  • KT-63600 K2: Duplicate WRONG_NULLABILITY_FOR_JAVA_OVERRIDE
  • KT-63508 K2: "IllegalArgumentException: Not FirResolvedTypeRef (String) in storeResult" caused by @Deprecated Java function and typo
  • KT-63656 K2: "IllegalArgumentException: Local com/example/ should never be used to find its corresponding classifier"
  • KT-63459 K2: OPT_IN_USAGE_ERROR is absent when calling the enum primary constructor
  • KT-59582 OPT_IN_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_OPT_IN on an annotation import
  • KT-63732 K1: False positive OUTER_CLASS_ARGUMENTS_REQUIRED inside anonymous object
  • KT-60614 K2: Conflicting INVISIBLE_REFERENCE and UNRESOLVED_REFERENCE reported depending on FIR test for transitive friend module dependencies
  • KT-59983 K2: Disappeared IMPLEMENTATION_BY_DELEGATION_IN_EXPECT_CLASS
  • KT-57044 K2 LL Tests: false-positive 'Overload resolution ambiguity between candidates: [@Override() fun test(): Unit , fun test(): Unit]'
  • KT-58028 K2: False-positive TYPE_PARAMETER_IS_NOT_AN_EXPRESSION
  • KT-62560 K2: KAPT4: annotation @ReplaceWith is missing a default value for the element 'imports'
  • KT-63068 K2 supports typeRef-name labels
  • KT-63642 JVM_IR: don't generate reflective access to getter/setter without property
  • KT-62212 K2: require matching of suspend status for override check
  • KT-63597 JVM_IR: Properly handle type parameters of outer declaration in code fragment
  • KT-61282 K2: Incorrect overridden function for java.nio.CharBuffer.get
  • KT-63317 K2: Disallow generic types in contract type assertions
  • KT-59922 K2: Disappeared CANNOT_CHECK_FOR_ERASED
  • KT-63241 IJ monorepo K2 QG: backward-incompatible compiler ABI change leads to run-time failures of Fleet's kotlinc plugins
  • KT-59988 K2: Disappeared TYPE_ARGUMENTS_NOT_ALLOWED
  • KT-59936 K2: Disappeared ARGUMENT_PASSED_TWICE
  • KT-63522 K2: wrong context for delegated field type
  • KT-63454 Properly check that inline fun is in the same module as callee in IrSourceCompilerForInline
  • KT-59951 K2: Disappeared NO_TYPE_ARGUMENTS_ON_RHS
  • KT-63535 K2: Apply DFA implications for nullable Nothing to both sides
  • KT-62727 K2: Missing JSCODE_UNSUPPORTED_FUNCTION_KIND
  • KT-62726 K2: Missing JSCODE_WRONG_CONTEXT
  • KT-62725 K2: Missing JSCODE_INVALID_PARAMETER_NAME
  • KT-62314 Make usages of JavaTypeParameterStack safe
  • KT-60924 FIR2IR: Get rid of all unsafe usages of IrSymbol.owner
  • KT-57949 FIR: SignatureEnhancement: mutation of java enum entry
  • KT-59908 K2: Disappeared RECURSIVE_TYPEALIAS_EXPANSION
  • KT-62724 K2: Missing WRONG_JS_FUN_TARGET
  • KT-62856 K2: Don't create IR declaration when its symbol is accessed in fir2ir
  • KT-61329 K2: Review for diagnostic messages reported by CLI arguments processing
  • KT-60604 K2: introduced NON_PUBLIC_CALL_FROM_PUBLIC_INLINE, @PublishedApi needed for constants in annotations
  • KT-63286 K2: Top-level properties in scripts are missing initialization checks
  • KT-62711 Incorrect ParsedCodeMetaInfo instances
  • KT-63122 K2: Improve 'EVALUATION_ERROR' messages
  • KT-63164 K2/JVM: compiler codegen crash on invisible property IllegalStateException: Fake override should have at least one overridden descriptor
  • KT-62352 jspecify NonNull annotation seems not supported
  • KT-56614 K2: Incorrect overload resolution with SAM types
  • KT-62783 K2: False positive CAST_NEVER_SUCCEEDS when casting nullable expression to it's non-nullable generic base class
  • KT-47931 FIR DFA: smartcast not working for if (x!=null || x!=null && x!=null) {}
  • KT-62735 K2: Disappeared EXTERNAL_CLASS_CONSTRUCTOR_PROPERTY_PARAMETER
  • KT-62733 K2: Disappeared WRONG_EXTERNAL_DECLARATION
  • KT-62734 K2: Disappeared INLINE_EXTERNAL_DECLARATION
  • KT-62618 K2: Fix the ensureAllMessagesPresent test
  • KT-60312 K2: CCE “class [I cannot be cast to class java.lang.Number ([I and java.lang.Number are in module java.base of loader 'bootstrap')” on using IntArray as vararg
  • KT-61362 K2: Properties/fields are missing from system libraries
  • KT-52432 Using the IDE compiled with K2 (useFir) throws VerifyError exception
  • KT-59825 K2: Fix the TODO about wasExperimentalMarkerClasses in FirSinceKotlinHelpers
  • KT-26045 False positive DUPLICATE_LABEL_IN_WHEN for safe calls
  • KT-63094 K2: Exception from fir2ir during conversion data class with property of dynamic type
  • KT-59822 K2: Fix the TODO in FirConstChecks
  • KT-59493 Definitely non-nullable types have type inference issues with extension functions
  • KT-63396 K2: property from companion object are unresolved as an annotation argument in type parameter
  • KT-62925 K2: Disappeared EXPOSED_FUNCTION_RETURN_TYPE for package-private and type args
  • KT-63430 IrFakeOverrideBuilder: VerifyError on calling a function with a context receiver from a superclass
  • KT-62420 K2: Remove ConeClassifierLookupTag from ConeTypeVariableTypeConstructor
  • KT-59998 K2: Disappeared OPT_IN_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_OPT_IN
  • KT-53308 TYPE_MISMATCH: Contracts on boolean expression has no effect on referential equality to null
  • KT-51160 Type mismatch with contracts on narrowing sealed hierarchy fail to smart cast
  • KT-49696 Smart cast to non-null with inline non-modifying closures sometimes doesn't work
  • KT-46586 SMARTCAST_IMPOSSIBLE when assigning value inside lambda instead of if expression
  • KT-41728 False positive no smart cast with unreachable code after return in if expression
  • KT-57529 K1/K2: "IllegalStateException: not identifier: " with hard keywords in angle brackets
  • KT-59401 K2: Missing ADAPTED_CALLABLE_REFERENCE_AGAINST_REFLECTION_TYPE
  • KT-63147 K2: False negative DSL_SCOPE_VIOLATION when member is annotated with @LowPriorityInOverloadResolution
  • KT-63172 K2: Java vararg setter should not be used as property accessor
  • KT-62306 K2: Compiler internal error for incorrect call on ILT
  • KT-61592 kt57320.kt weird diagnostic range for NO_ACTUAL_FOR_EXPECT
  • KT-60294 K2: lambda inside object capturing this, when not in K1
  • KT-62590 Split expect/actual matcher-checker machinery in two separate components: matcher and checker
  • KT-62120 K2: "NoSuchMethodError: java.lang.String" at runtime on class delegating to Java type
  • KT-36976 FIR: Provide exact smart casting type
  • KT-62628 K2: FirErrorTypeRefImpl doesn't have annotations
  • KT-62447 K2. "Replacing annotations in FirErrorTypeRefImpl is not supported" compiler error when annotation is used as variable type or return type
  • KT-62541 K2: Missed type mismatch error
  • KT-37591 Deprecate cases in FE 1.0 when companion property is prioritized against enum entry

Docs & Examples

IDE

  • KT-55788 [SLC] Declarations with value classes are leaked into light classes

IDE. Gradle. Script

  • KT-60813 Scripts: NoSuchMethodError: 'void org.slf4j.Logger.error(java.lang.String, java.lang.Object)' when dependency uses Slf4j API

IDE. JS

  • KT-61257 Analysis API:"KotlinIllegalArgumentExceptionWithAttachments: Invalid FirDeclarationOrigin DynamicScope" exception on unsupported JS dynamic usage in scope

IDE. Multiplatform

  • KT-45513 Run c-interop generation in parallel during project import
  • KT-63126 K2: Analysis API Standalone: IllegalStateException from Kotlin/Native klib

IDE. Script

  • KT-61267 K2 Scripts: dependency issues

IR. Actualizer

  • KT-62292 K2: Extract IrActualizer into separate module
  • KT-63442 IrFakeOverrideBuilder: ISE "Multiple overrides" error when function signatures differ only in the type parameter upper bound

IR. Interpreter

  • KT-62683 K2: FIR2IR: IrConst*Transformer doesn't evaluate an expression for const val initializer

IR. Tree

  • KT-61970 Refactor IR and FIR tree generators to reuse common logic
  • KT-61703 Drop the dependency on kotlinpoet for IR tree generation
  • KT-63437 IrFakeOverrideBuilder: ISE "Captured Type does not have a classifier" on complex Java hierarchy

JavaScript

Fixes

  • KT-61117 Migrate remaining legacy IC tests to IR
  • KT-63808 compileTestDevelopmentExecutableKotlinJs failed in JsIntrinsicTransformers
  • KT-61523 KJS: Call main function in per-file mode
  • KT-63543 KJS / K2: Exported declaration uses non-exportable return type type: 'kotlin.Unit'
  • KT-63089 KJS / K2 : "IllegalArgumentException: source must not be null " for inner class and interface as type
  • KT-62077 KJS: TypeError: str.charCodeAt is not a function
  • KT-63436 K/JS: Eliminate names for synthetic classes in setMetadataFor()
  • KT-61929 KJS: "IllegalStateException: No dispatch receiver parameter for FUN LOCAL_FUNCTION_FOR_LAMBDA" caused by run function in init block
  • KT-63013 KJS: requireNotNull not working correctly in JS tests with Kotlin 1.9.20
  • KT-63207 KMP / JS: "TypeError: <mangled_name> is not a function" with 1.9.20
  • KT-16981 js: Command line arguments passed to main() are always empty
  • KT-61525 KJS: Test functions are not invoked in per-file mode

Klibs

  • KT-62259 KLIB ABI reader: add information about a backing field to AbiProperty
  • KT-62515 Interop klib of concurrent version is not accepted when building dependent project: "The library versions don't match"

Language Design

  • KT-62138 K1: false positive (?) NO_SET_METHOD for += resolved as a combination of Map.get and plus
  • KT-61573 Emit the compilation warning on expect/actual classes. The warning must mention that expect/actual classes are in Beta

Libraries

  • KT-62346 Sublists of ListBuilder does not correctly detect ConcurrentModification
  • KT-59441 Design reading and writing future versions of Kotlin metadata
  • KT-57922 kotlinx-metadata-jvm does not take into account strict semantics flag
  • KT-63341 K2: JVM StringBuilder has no corresponding members for expected class members
  • KT-51058 Avoid byte array allocation in File.writeText when possible
  • KT-63447 K2: stdlib buildscript error: file included in two modules

Native

  • KT-63789 Native: Incremental compilation problem with compose
  • KT-50547 [Commonizer] K/N echoServer sample fails with multiple "Unresolved reference" errors on Windows

Native. Build Infrastructure

  • KT-63905 Extract ObjC Export Header generation from K/N backend
  • KT-63220 [K/N] Unable to specify custom LLVM distribution

Native. C and ObjC Import

  • KT-63287 [K/N] Create test model for building/executing C-Interop tests
  • KT-63048 K2 ObjC interop: Fields are not supported for Companion of subclass of ObjC type

Native. ObjC Export

  • KT-63153 Native: implement a flag to emit compiler warnings on ObjCExport name collisions

Reflection

  • KT-60708 Reflection: Not supported ) (parentheses in backticks)

Tools. Compiler Plugins

  • KT-53861 K2. Report SERIALIZER_TYPE_INCOMPATIBLE on specific type argument in kotlinx.serialization
  • KT-63086 K2: "Parcelable should be a class"
  • KT-61432 K2 Parcelize. RawValue is not recognized if parameter is annotated via typealias

Tools. Compiler plugins. Serialization

  • KT-63591 K2: "KotlinReflectionInternalError: Could not compute caller for function" on generated internal constructor
  • KT-63570 K2 / Serialization: "Class * which is serializer for type * is applied here to type *. This may lead to errors or incorrect behavior."
  • KT-63402 K2 / Serialization: "SyntheticAccessorLowering should not attempt to modify other files!" caused by sealed base with generic derived class in separate files

Tools. Gradle

New Features

  • KT-61975 Re-purpose kotlin.experimental.tryK2

Performance Improvements

  • KT-63005 Avoid registering KMP related compatibility/disambiguration rules for pure JVM/Android projects

Fixes

  • KT-60733 Allow specify log level for compiler arguments used to compile sources
  • KT-63697 The warning is still presented in terminal after suppressing it with -Xexpect-actual-classes flag
  • KT-63491 Restore access to top-level DSL to configure compiler options in MPP
  • KT-55322 Kotlin daemon: Cannot perform operation, requested state: Alive > actual: LastSession
  • KT-63369 Fix: "The org.gradle.api.plugins.BasePluginConvention type has been deprecated."
  • KT-63368 Fix "The automatic loading of test framework implementation dependencies has been deprecated. "
  • KT-63601 Fetching Gradle compiler DSL objects using raw strings is inconvenient in the Groovy DSL
  • KT-62758 Gradle: make precise task outputs backup enabled by default
  • KT-62955 Missing static accessors for Wasm targets in Kotlin Gradle plugin DSL:
  • KT-62962 Remove COMPILE_INCREMENTAL_WITH_ARTIFACT_TRANSFORM system property
  • KT-63499 Gradle: Source sets conventions are still registered
  • KT-52976 Remove deprecated Gradle conventions usages
  • KT-62939 Bump minimal supported AGP version to 7.1
  • KT-58223 Kotlin Gradle plugin shouldn't store data in project cache directory
  • KT-62131 Could not isolate value org.jetbrains.kotlin.gradle.plugin.statistics.BuildFlowService$Parameters_Decorated@63fddc4b of type BuildFlowService.Parameters
  • KT-62264 Send build type report metric to FUS
  • KT-62617 Update report configuration project FUS metrics

Tools. Gradle. Cocoapods

  • KT-63331 CocoaPods plugin noPodspec() causes "property * specifies file * which doesn't exist."

Tools. Gradle. JS

  • KT-62780 K/JS: Deprecate node-specific properties in NodeJsRootExtension
  • KT-63544 KGP: JS - KotlinJsIrLink is not compatible with Gradle CC starting 8.4
  • KT-63312 KJS: Apply IR flags for JS compilations unconditionally
  • KT-62633 wasmWasi/JsNodeTest tasks are always not up-to-date
  • KT-63040 K/JS: Rework outputs of webpack and distribution task

Tools. Gradle. Multiplatform

  • KT-63315 Wasm gradle plugin DSL is invalid for parameterless wasmWasi method
  • KT-63338 [KMP] metadata task fails to find cinterop classes from dependency projects
  • KT-63197 After using Kotlin 1.9.20 on Windows 11, the gradle sync failed
  • KT-63044 KGP: Multiplatform - 8.4 configuration cache support
  • KT-63011 Apple Framework Artifacts is not connected to KotlinNativeTask

Tools. Gradle. Native

  • KT-56455 Gradle: remove enableEndorsedLibs from codebase

Tools. Incremental Compile

  • KT-56963 Add MPP/Jvm incremental compilation tests for both K1 and K2 modes
  • KT-63876 Move useful utilities from KmpIncrementalITBase.kt to KGPBaseTest and/or common utils
  • KT-63010 Build reports may contain incorrect measurements for "Total size of the cache directory"
  • KT-59178 With language version = 2.0 incremental compilation of JVM, JS fails on matching expect and actual declarations

Tools. JPS

  • KT-63549 Add compiler performance metrics to JPS build reports
  • KT-64026 Maven. JVM target is imported as 1.6(deprecated) if an invalid parameter value specified in pom.xml
  • KT-63594 ClassCastException in JPS statistics
  • KT-63799 Make plugin classpath serialization path agnostic

Tools. Kapt

  • KT-60821 [KAPT4] Make sure that KAPT produces correct JCTree; if that's not possible, investigate using JavaPoet as an alternative
  • KT-57389 KAPT3 uses a Javac API for JCImport which will break in JDK 21

Tools. Maven

Tools. Scripts

  • KT-58367 Remove script-util from the repo
  • KT-54819 Scripts: Not able to use slf4j in .main.kts
  • KT-63352 Scripting dependencies resolver logs "file not found" even if the artefact is retrieved

Tools. Wasm

  • KT-63417 KMP hierarchy DSL. Split withWasm() into withWasmJs() and withWasmWasi()

2.0.0-Beta1

Analysis. API

Performance Improvements

  • KT-61789 K2: optimize getFirForNonKtFileElement for references inside super type reference
  • KT-59498 K2: getOnAirGetTowerContextProvider took too much time due to on air resolve
  • KT-61728 Analysis API: optimize AllCandidatesResolver.getAllCandidates

Fixes

  • KT-61252 K2: IDE K2: "By now the annotations argument mapping should have been resolved"
  • KT-62310 K2 IDE. False positives errors with external annotations
  • KT-62397 K2 IDE. FP Error in the editor on RequiresOptIn annotation from the lib despite the warning level
  • KT-62705 K2: "lazyResolveToPhase(IMPORTS) cannot be called..." from light classes
  • KT-62626 IllegalStateException: Cannot build symbol for class org.jetbrains.kotlin.psi.KtScriptInitializer
  • KT-62693 K2: IDE K2: "PSI should present for declaration built by Kotlin code"
  • KT-62674 K2: "Scope for type ConeClassLikeTypeImpl" is null from transitive dependencies
  • KT-61889 Analysis API: Migrate KtFirReferenceShortener to ContextCollector instead of FirResolveContextCollector
  • KT-62772 Analysis API: No 'org.jetbrains.kotlin.fir.java.FirSyntheticPropertiesStorage'(31) in array owner: LLFirSourcesSession when analysing builtins in a context of common code
  • KT-61296 K2: do not resolve the entire file on lazyResolve call if FirFile is passed
  • KT-60319 K2 IDE: "Stability for initialized variable always should be computable"
  • KT-62859 K2 IDE: "Evaluate expression" throws exception when calling "Any?.toString()"
  • KT-62421 K2: IDE K2: "lazyResolveToPhase(BODY_RESOLVE) cannot be called from a transformer with a phase BODY_RESOLVE."
  • KT-63058 K2 IDE: Code completion unexpectedly imports static/companion object method
  • KT-62588 getExpectedType should not calculate type of the expression
  • KT-61990 K2: Unexpected returnTypeRef for FirSyntheticProperty
  • KT-62625 K2: 'FirLazyExpression should be calculated before accessing' for unresolved super type
  • KT-62071 Analysis API: KtFirScopeProvider.getScopeContextForPosition throws exception when ImplicitReceiverValue.implicitScope is null
  • KT-62691 K2: optimize getFirForNonKtFileElement for references inside 'where'
  • KT-62587 K2 IDE. FP unresolved reference on accessing nested class in annotation argument
  • KT-62834 K2: missing file node level in control flow builder
  • KT-62768 Analysis API: No 'org.jetbrains.kotlin.fir.scopes.impl.FirDelegatedMembersFilter'(44) in array owner: LLFirSourcesSession exception on analysing common code
  • KT-62874 K2: FirLazyExpression should be calculated before accessing
  • KT-62407 Analysis API: resolve [this] in KDoc to extension receiver
  • KT-61204 K2: "FirLazyExpression should be calculated before accessing in ktor HttpBinApplication"
  • KT-61901 Analysis API: Declared member scopes for Java classes are missing static members
  • KT-61800 Analysis API: Provide separate declared member scopes for non-static and static callables
  • KT-61255 Analysis API: Get rid of valueOf, values and entries from a declared member scope
  • KT-62466 Expected type for functional expression should include inferred types
  • KT-61203 IDE K2: "Expected FirResolvedArgumentList for FirAnnotationCallImpl of FirRegularClassImpl(Source) but FirArgumentListImpl found"
  • KT-61791 Analysis API: Implement combined getPackage for combined Kotlin symbol providers
  • KT-62437 K2 IDE. Resolution does not work inside lambda expression in constructor argument in supertypes
  • KT-62244 K2: Analysis API Standalone: Resolving klib dependencies from binary roots terminates application
  • KT-62897 K2 IDE. Unresolved declarations from libraries which are doubled in intellij project libraries
  • KT-61615 K2: No 'org.jetbrains.kotlin.fir.analysis.js.checkers.FirJsModuleKind' in array owner: LLFirSourcesSession
  • KT-59334 K2: LLFirImplicitTypesLazyResolver problems
  • KT-62038 K2: Nested classes are missing in symbol light class structure tests for libraries
  • KT-61788 Analysis API: Symbol for FirAnonymousInitializer cannot be null
  • KT-62139 Analysis API: KtFe10AnalysisSession.createContextDependentCopy does not need validity check
  • KT-62090 Analysis API: introduce an API to get a substitution formed by class inheritance
  • KT-62268 K2 IDE. No autocompletion and IllegalStateException for Pair
  • KT-62302 Support PsiType -> KtType conversion
  • KT-60325 K2 IDE. "IllegalArgumentException: source must not be null" on throw usage attempt
  • KT-61431 K2: KtPropertyAccessorSymbolPointer pointer already disposed for $$result script property
  • KT-60957 K2: Analysis API: Reference shortener does not work correctly with invoke function calls on properties
  • KT-58490 K2: LLFirTypeLazyResolver problems
  • KT-58494 K2: LLFirAnnotationArgumentsLazyResolver problems
  • KT-58492 K2: LLFirBodyLazyResolver problems
  • KT-58769 K2: LL FIR: implement platform-dependent session factories
  • KT-60343 K2 IDE. IllegalArgumentException on passing incorrect type parameter to function
  • KT-61383 K2: 'KtCompilerFacility' fails on code fragment compilation in library sources with duplicated dependencies
  • KT-61842 K2: reduce number of "in-block modification" events
  • KT-62012 K2: "KtReadActionConfinementLifetimeToken is inaccessible: Called outside analyse method"
  • KT-61371 K2: Analysis API standalone: register compiler symbol provider for libraries in standalone mode
  • KT-61422 K2 IDE: "No array element type for vararg value parameter: org.jetbrains.kotlin.fir.declarations.impl.FirValueParameterImpl"
  • KT-60611 K2: reduce number of "in-block modification" events
  • KT-61425 Analysis API: Provide a way to get a declared member scope for an enum entry's initializing anonymous object
  • KT-61405 Analysis API: An enum entry should not be a KtSymbolWithMembers
  • KT-60904 K2: IDE K2: "For DESTRUCTURING_DECLARATION_ENTRY with text _, one of element types expected, but FirValueParameterSymbol found"
  • KT-61260 K2 Scripts: Containing function should be not null for KtParameter
  • KT-61568 FIR Analysis API: collectCallCandidates gives presence to the top level functions in the presence of more suitable overrides
  • KT-60610 K2 IDE: move "out of block" processing logic into LL FIR
  • KT-61597 Analysis API: KotlinIllegalStateExceptionWithAttachments: expected as maximum one expect for the actual on errorneous code with multiple expects
  • KT-59793 K2: class org.jetbrains.kotlin.fir.declarations.impl.FirErrorImportImpl cannot be cast to class org.jetbrains.kotlin.fir.declarations.FirResolvedImport
  • KT-61599 K2: ContextCollector: Support smart cast collection
  • KT-61689 Analysis API: ContextCollector provides incorrect context in scripts
  • KT-61683 Analysis API: resolve ambiguities in kotlin project
  • KT-61245 Analysis API: ContextCollector provides incorrect context for supertype constructor calls
  • KT-60384 K2: Opening @JvmName source in IDEA: NPE at PsiRawFirBuilder$Visitor.toFirConstructor()
  • KT-60918 K2 IDE: "FirDeclaration was not found for class org.jetbrains.kotlin.psi.KtDestructuringDeclarationEntry, fir is null"
  • KT-61013 K2 Scripts: LLFirReturnTypeCalculatorWithJump: No designation of local declaration
  • KT-59517 K2 IDE: KotlinExceptionWithAttachments: Modules are inconsistent
  • KT-61331 K2: add cache restoring in case of existing context
  • KT-61408 K2: IDE K2: "Inconsistency in the cache. Someone without context put a null value in the cache"

Backend. Native. Debug

  • KT-57365 [Native] Incorrect debug info on inline function call site

Backend. Wasm

  • KT-62147 [Kotlin/Wasm] Nothing typed when expression cause a backend error
  • KT-61958 Update SpiderMonkey and return its usage in box tests when they switch to the final opcodes for GC and FTR proposals
  • KT-60828 K/Wasm: return br_on_cast_fail usages
  • KT-59720 K/Wasm: update to final opcodes
  • KT-59084 WASM: "RuntimeError: illegal cast" caused by inline class and JsAny
  • KT-60700 [WASM] test FirWasmCodegenBoxTestGenerated.testSuspendUnitConversion failed after KT-60259

Compiler

New Features

  • KT-62239 Allow enum entries without parentheses uniformly
  • KT-22004 Allow to resolve CONFLICTING_OVERLOADS with Deprecated(HIDDEN)
  • KT-11712 Smart cast is not applied for invisible setter
  • KT-61077 Support provideDelegate inference from var property type
  • KT-59504 K2 compiler does not require resolved 'componentX' functions for the placeholder ('_') variables in the destructuring declarations

Performance Improvements

  • KT-62619 FIR: Checker performance regression due to MISSING_DEPENDENCY checkers
  • KT-62044 Do not add nullability annotations to the methods of anonymous class
  • KT-62706 Optimize KtSourceElement.findChild()
  • KT-62513 Do not add nullability annotations to the methods of local classes
  • KT-61991 K2: avoid redundant full body resolution for properties during implicit type phase
  • KT-61604 [K/N] Bitcode dependency linking is slow for large compilations
  • KT-39054 Optimize delegated properties which call get/set on the given KProperty instance on JVM
  • KT-61635 K2: getConstructorKeyword call in PsiRawFirBuilder.toFirConstructor forces AST load
  • KT-57616 K2: Consider optimizing reversed versions of persistent lists in FirTowerDataContext

Fixes

  • KT-63257 K2: FIR2IR inserts incorrect implicit cast for smartcasted variable
  • KT-61459 K2: type parameters cannot be parameterized with type arguments
  • KT-61959 K2: Type parameters from outer class leak to nested class
  • KT-61384 IrFakeOverrideBuilder incorrectly checks visibility for friend modules
  • KT-62032 K2: Render flexible types as A..B instead of cryptic ft<A, B> in diagnostic messages
  • KT-59940 K2: Disappeared ACTUAL_ANNOTATION_CONFLICTING_DEFAULT_ARGUMENT_VALUE
  • KT-61243 K2: Always use declaredMemberScope-s in FirConflictsHelpers instead of declarations
  • KT-59430 K2: Missing CALLABLE_REFERENCE_RESOLUTION_AMBIGUITY
  • KT-56683 K2: No control flow analysis for top-level properties
  • KT-62334 K2: FIR should not generate delegated functions for methods from java interface with default implementation
  • KT-59590 JVM IR: NotImplementedError during rendering of conflicting JVM signatures diagnostic
  • KT-62607 K2: "Overload resolution ambiguity between candidates"
  • KT-55096 K2: false-positive smartcast after equals check with reassignment in RHS of ==
  • KT-62590 Split expect/actual matcher-checker machinery in two separate components: matcher and checker
  • KT-62120 K2: "NoSuchMethodError: java.lang.String" at runtime on class delegating to Java type
  • KT-62916 K2: False positive INCOMPATIBLE_MATCHING
  • KT-62752 expect-actual matcher/checker: return type must be "checking" incompatibility
  • KT-62137 Compiler fails on null tracking (inference) for safe call
  • KT-59744 K2: false negative VAL_REASSIGNMENT in case of reassignment inside custom setter
  • KT-58531 K2: "Property must be initialized" compile error
  • KT-62404 K2 Scripting for gradle: unresolved name errors on implicit imports
  • KT-62305 K2: Missing Fir metadata serialization support for scripts
  • KT-62197 K2 and Apache Commons's MutableLong: Overload resolution ambiguity between candidates
  • KT-53551 suspend functional type with context receiver causes ClassCastException
  • KT-61491 K2 AA: Multiple FIR declarations for the same delegated property
  • KT-55965 K2: NPE via usage of functions that return Nothing but have no return expressions
  • KT-60942 K2: Transitive dependency IR is not deserialized correctly
  • KT-55319 K2: False negative NON_LOCAL_RETURN_NOT_ALLOWED for non-local returns example
  • KT-62151 K2. overload resolution ambiguity for calls of Java record compact constructors
  • KT-62944 K2: Symbols with context receiver shouldn't be rendered with line break
  • KT-62394 K2: Synthetic property scope doesn't consider java classes in the hierarchy
  • KT-60117 K2: ISE “Cannot serialize error type: ERROR CLASS: Cannot infer variable type without initializer / getter / delegate” on compiling lateinit property without initialization
  • KT-61039 False positive ABSTRACT_MEMBER_NOT_IMPLEMENTED in K1 when expect actual super types scopes don't match
  • KT-60042 K2: Introduced PRIMARY_CONSTRUCTOR_REQUIRED_FOR_DATA_CLASS
  • KT-59402 K2: Missing EXPANSIVE_INHERITANCE and EXPANSIVE_INHERITANCE_IN_JAVA
  • KT-62467 K2: Result type of elvis operator should be flexible if rhs is flexible
  • KT-62126 KJS / K2: "InterpreterError: VALUE_PARAMETER" caused by reflection, delegation and languageVersion = 1.9
  • KT-62679 K2: drop ARGUMENTS_OF_ANNOTATIONS phase
  • KT-56615 K2: False-negative USELESS_CAST after double smartcast
  • KT-59820 K2: Investigate the TODO in FirCastDiagnosticsHelpers
  • KT-61100 K2: wrong type for "value" parameter of java annotation constructor
  • KT-62491 K2. No 'when' expression must be exhaustive error when Java sealed class inheritors are not listed in permits clause
  • KT-60095 K2: Introduced INCOMPATIBLE_TYPES
  • KT-61598 K2: report IR_WITH_UNSTABLE_ABI_COMPILED_CLASS
  • KT-59561 K2/MPP reports INCOMPATIBLE_MATCHING when an actual annotation declaration with vararg property is typealias with @Suppress
  • KT-60123 K2: PROPERTY_WITH_NO_TYPE_NO_INITIALIZER isn't working in IDE for lateinit property without a type
  • KT-59935 K2: Disappeared PROPERTY_WITH_NO_TYPE_NO_INITIALIZER
  • KT-58455 K2(LT). Internal compiler error "UninitializedPropertyAccessException: lateinit property identifier has not been initialized" on missing type parameter in "where" constraint
  • KT-60714 K2: Implement resolve to private members from Evaluator in K2
  • KT-59577 K2. Enum constant name is not specified in error text
  • KT-60003 K2: Disappeared INVALID_CHARACTERS_NATIVE_ERROR
  • KT-62099 K2: "Type arguments should be specified for an outer class" error about typealias
  • KT-60983 K2: "Argument type mismatch: actual type is android/view/View.OnApplyWindowInsetsListener but androidx/core/view/OnApplyWindowInsetsListener? was expected"
  • KT-60111 K2: Location regressions for operators
  • KT-59399 K2: Missing JSCODE_NO_JAVASCRIPT_PRODUCED
  • KT-59388 K2: Missing JSCODE_ERROR
  • KT-59435 K2: Missing JSCODE_ARGUMENT_SHOULD_BE_CONSTANT
  • KT-60601 K2 / Maven: Overload resolution ambiguity between candidates inline method
  • KT-60778 K2: implement MISSING_DEPENDENCY_CLASS(_SUPERCLASS) errors
  • KT-62581 K2: Difference in kind flag in metadata
  • KT-59956 K2: Disappeared INAPPLICABLE_OPERATOR_MODIFIER
  • KT-35913 Diagnostic error VAL_REASSIGNMENT is not reported multiple times
  • KT-60059 K2: Introduced VAL_REASSIGNMENT
  • KT-59945 K2: Disappeared ANONYMOUS_FUNCTION_WITH_NAME
  • KT-62573 K2: incorrect parsing behavior with named functions as expressions
  • KT-56629 K2: an instance of USELESS_CAST was not moved under EnableDfaWarningsInK2 language feature
  • KT-58034 Inconsistent resolve for nested objects in presence of a companion object property with the same name
  • KT-59864 K2: Bad locations with delegates
  • KT-59584 K2: Bad startOffset for 'this'
  • KT-61388 K2: ISE "Annotations are resolved twice" from CompilerRequiredAnnotationsComputationSession on nested annotation
  • KT-62027 "java.lang.IndexOutOfBoundsException: Empty list doesn't contain element at index 0" caused by ClassicExpectActualMatchingContext.kt when annotation @AllowDifferentMembersInActual used
  • KT-61055 K2: Investigate if usage of toResolvedCallableSymbol is correct at FirDataFlowAnalyzer#processConditionalContract
  • KT-61688 K2: FIR renderings of type annotations leak through the diagnostics' messages
  • KT-61794 FIR: MergePostponedLambdaExitsNode.flow remains uninitialized after resolve
  • KT-61068 Bounds of type parameters are not enforced during inheritance of inner classes with generic outer classes
  • KT-61065 K2: @Suppress annotation is ignored inside preconditions of when-clauses
  • KT-61937 K2: implicit script receiver from ScriptDefinition are not visible for invoke
  • KT-61076 K2: false-positive conflicting overloads error on suspending function and private Java method from a supertype
  • KT-61075 K2: type inference for delegate expressions with complexly bounded type variables fails on properties with annotated accessors
  • KT-58579 K2: false-positive new inference error on invoking a generic function on Java wildcard type bounded by raw-typed Java inner class
  • KT-62671 K2: fir2ir generates a duplicate of delegated function for class from a common module
  • KT-60682 K2: Disappeared DEPRECATION
  • KT-62143 Error: Identity equality for arguments of types 'kotlin/Int?' and 'kotlin/Nothing?' is prohibited
  • KT-61517 K2: FirModuleDescriptor should correctly provide dependencies from FirModuleData
  • KT-62578 K2: @NoInfer annotation doesn't work for deserialized functions
  • KT-59916 K2: Disappeared REPEATED_ANNOTATION
  • KT-62450 K2: Disappeared OPT_IN_USAGE_ERROR for a data class property during the destructuring declaration
  • KT-59997 K2: Disappeared OPT_IN_USAGE_ERROR
  • KT-62393 K2: FIR doesn't count visibility when creating synthetic property override
  • KT-61208 EnumEntries mappings are generated incorrectly in the face of incremental compilation
  • KT-61786 K2: Remove type enhancement on java final fields
  • KT-57811 K2: make java static string and int fields not null
  • KT-62531 InvalidProtocolBufferException on reading module metadata compiled by K2 from compilers earlier than 1.8.20 with -Xskip-metadata-version-check
  • KT-59371 K2: Missing MISSING_DEPENDENCY_CLASS
  • KT-61511 IrFakeOverride builder: objc overridability condition is not supported
  • KT-62316 K2: CONFLICTING_INHERITED_JVM_DECLARATIONS on List subclass inheriting remove/removeAt from Java superclass
  • KT-60671 KMP: check other annotation targets in expect and actual annotations compatibility checker
  • KT-62451 K2: Disappeared OPT_IN_USAGE_ERROR for typealias
  • KT-62452 K2: Violation of OPT_IN_USAGE_ERROR non-propagating opt-in rules for typealias
  • KT-59927 K2: Disappeared INVISIBLE_REFERENCE
  • KT-60104 K2: Introduced FUNCTION_CALL_EXPECTED
  • KT-57513 K2: Bound smart casts don't work with Strings
  • KT-62146 K2: @Suppress does not work with named argument
  • KT-62475 K2: IrExternalModuleFragments contains incorrect data in Fir2Ir
  • KT-61983 K2: *fir.kt.txt dump uses different naming approach for local vars
  • KT-59970 K2: Disappeared NULLABLE_TYPE_IN_CLASS_LITERAL_LHS
  • KT-58216 K2 (2.0): when is not checked for exhaustiveness with Java sealed class
  • KT-62036 KMP: consider prohibiting actual fake-override when the corresponding expect class has default arguments
  • KT-61205 Compose Compiler K2/ios: No file for /App|App(){}[0] when running linkPodDebugFrameworkIosX64
  • KT-58240 Support running irText compiler tests against the Native backend
  • KT-59565 K2. Internal error "IndexOutOfBoundsException: Index -1 out of bounds for length 0" on incorrect usage of annotation in type parameter
  • KT-59393 K2: Missing TYPE_ARGUMENTS_FOR_OUTER_CLASS_WHEN_NESTED_REFERENCED
  • KT-59954 K2: Disappeared REPEATED_MODIFIER
  • KT-62127 "NoSuchFieldError: TRUE$delegate" on referencing companion's variable in submodule
  • KT-57100 K2 does not report Conflicting overloads and backend crashes with Exception during IR lowering on conflict overloading with suspend function
  • KT-62129 K2: Verification error on calling an extension from an env with 2+ context receivers
  • KT-59955 K2: Disappeared INCOMPATIBLE_MODIFIERS
  • KT-61572 [K2/N] Missing diagnostic SUPER_CALL_WITH_DEFAULT_PARAMETERS in test for MPP supercall with default params
  • KT-59514 K2: New inference error with jspecify and Java interop
  • KT-62263 Turn "different expect/actual members" error into a warning
  • KT-62262 [K2/N] tests/samples/uikit compilation fails with NPE in checkCanGenerateOverrideInit
  • KT-52213 Context receivers: "No mapping for symbol: VALUE_PARAMETER" caused by contextual suspending function type with receiver
  • KT-62114 K2: Unresolved reference for smart cast inside when (but not if)
  • KT-59373 K2: Missing INVISIBLE_MEMBER
  • KT-61844 K2: "Expression * of type * cannot be invoked as a function" caused by private property
  • KT-60581 K2 fails with New inference error for assertThat under strange circumstances
  • KT-61735 [FIR] Assignment to val with flexible type dispatch receiver causes crash
  • KT-59942 K2: Disappeared ANNOTATION_PARAMETER_DEFAULT_VALUE_MUST_BE_CONSTANT
  • KT-62058 K2: use PRE_RELEASE flag until 2.0-RC
  • KT-59931 K2: Disappeared CLASS_LITERAL_LHS_NOT_A_CLASS
  • KT-59377 K2: Missing CALL_TO_JS_MODULE_WITHOUT_MODULE_SYSTEM
  • KT-61645 K2/KMP: Set stdlib-native before stdlib-commonMain in dependencies for shared native metadata compilation
  • KT-61974 K2: "ClassCastException: class cannot be cast to class java.lang.Void" in test
  • KT-61637 K2: Store all IR declarations inside Fir2IrDeclarationStorage
  • KT-61924 Native: problem with abstract fake override from Any
  • KT-60921 K2: IndexOutOfBoundsException on attempt to cast an element to inner class with type parameter
  • KT-61933 K2: "Argument type mismatch: actual type is 'Foo<kotlin/Function0<kotlin/Unit>>' but 'Foo<kotlin/coroutines/SuspendFunction0<kotlin/Unit>>' was expected"
  • 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-61732 K2: Analysis API: resolve ambiguities in kotlin project
  • KT-60499 K2: Order of synthetic fields is different from K1's order
  • KT-61773 K2 Native: support reporting PRE_RELEASE_CLASS
  • KT-61578 [FIR] Resolution to private companion objects does not produce INVISIBLE_REFERENCE diagnostic
  • KT-62031 K2: Render k2-specific flexible types in a more compact way in diagnostic messages
  • KT-62030 K2: Render dot-separated FQNs instead of slash-separated ones in diagnostics
  • KT-59950 K2: Disappeared ILLEGAL_ESCAPE
  • KT-61827 K2: Fix rendering of NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS message
  • KT-61386 IrFakeOverrideBuilder: wrong dispatch receiver type
  • KT-59907 K2: Disappeared RETURN_TYPE_MISMATCH
  • KT-62056 K2: Drop FIR_COMPILED_CLASS error in K1
  • KT-61824 K2: Don't render internal compiler type annotations in diagnostic messages
  • KT-61826 K2: Fix rendering of SUSPENSION_POINT_INSIDE_CRITICAL_SECTION message
  • KT-57858 @PlatformDependent annotation should be considered in JS and Native
  • KT-61876 K2: FirCommonSessionFactory does not register visibility checker for a library session
  • KT-60264 K2: while loop body block sometimes replaced with single expression
  • KT-58542 K2: Store abbreviated types in deserialized declarations as attributes for rendering
  • KT-62008 K2: Java getter function may be enhanced twice
  • KT-61921 K2: Check for false positive/negative diagnostics caused by wrong handling of typealiases
  • KT-41997 False positive "Value class cannot have properties with backing fields" inside expect class
  • KT-62017 K2: ISE "No real overrides for FUN FAKE_OVERRIDE" on calling package-private Java method through anonymous object
  • KT-58247 Incorrect inference of nullable types inside Optional
  • KT-61309 K2: Only named arguments are available for Java annotations
  • KT-61366 IrFakeOverrideBuilder ignores package-private visibility
  • 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-61499 K2: False positive "Const 'val' initializer should be a constant value" when using typealias
  • KT-62005 K2: No conflicting declarations error for constructors of nested classes and member functions
  • KT-61972 K2: FIR2IR crashes on converting data classes in MPP setup
  • KT-60105 K2: Introduced UNDERSCORE_USAGE_WITHOUT_BACKTICKS
  • KT-61443 K2: Return typeId -1 during JS compilation
  • KT-60075 K2: Introduced ACTUAL_WITHOUT_EXPECT
  • KT-61668 Put expect/actual diagnostics introduced in 1.9.20 release under 1.9 Language Version
  • KT-61751 IrFakeOverrideBuilder: keep flexible type annotations when remapping/substituting types
  • KT-61778 K2: Overload resolution ambiguity between expect and non-expect in native build
  • KT-61367 K2: Introduce OptIn for FirExpression.coneTypeOrNull
  • KT-61802 K2: infinite recursion in constant evaluator causing StackOverflowError
  • KT-60043 K2: Introduced PROPERTY_AS_OPERATOR
  • KT-61691 K2: This annotation is not applicable to target 'local variable'
  • KT-59915 K2: Disappeared TOO_MANY_ARGUMENTS
  • KT-59925 K2: Disappeared VIRTUAL_MEMBER_HIDDEN
  • KT-61173 K2: FirProperty.hasBackingField is true for an expect val
  • KT-61696 K2: Cannot override method of interface if superclass has package-protected method with same signature
  • KT-59370 K2: Missing JS_NAME_CLASH
  • KT-36056 [FIR] Fix implementation of try/catch/finally in DFA
  • KT-61719 K2. Invisible reference is shown for whole type reference instead of single name reference
  • KT-60248 K2: Type abbreviations are not stored in IR
  • KT-59251 KMP/JS: forbid matching actual callable with dynamic return type to expect callable with non-dynamic return type
  • KT-61510 K2: internal declarations are invisible in cyclically dependent modules
  • KT-60048 K2: Introduced MISSING_EXCEPTION_IN_THROWS_ON_SUSPEND
  • KT-59425 K2: Missing JS_FAKE_NAME_CLASH
  • KT-61060 K2: Rewrite delegate inference
  • KT-59529 K2: "property delegate must have" caused by class hierarchy
  • KT-55471 K2. Unresolved reference for nested type is shown instead of outer class
  • KT-58896 K2: Higher priority expect overload candidates in common code lose in overload resolution to non-expects
  • KT-58476 Context receivers: "No mapping for symbol: VALUE_PARAMETER" with context-receiver inside suspended lambda calling another suspended function
  • KT-60780 K2: missing PRE_RELEASE_CLASS
  • KT-59855 K2: Replace FirExpression.typeRef with coneType
  • KT-59391 K2: Missing JS_BUILTIN_NAME_CLASH
  • KT-59392 K2: Missing NAME_CONTAINS_ILLEGAL_CHARS
  • KT-59110 K2. "NotImplementedError: An operation is not implemented." error on incorrect @Target annotation
  • KT-53565 K2: no WRONG_ANNOTATION_TARGET on when subject
  • KT-54568 K2: Type variables leak into implicit it parameter of lambdas
  • KT-60892 K2: Implement diagnostics around @OptionalExpectation
  • KT-61029 K2: Duplicates when processing direct overridden callables
  • KT-60917 K2: "Unresolved reference" for operator for array value
  • KT-59367 K2: Missing MIXING_SUSPEND_AND_NON_SUSPEND_SUPERTYPES
  • KT-60268 K2: lazy annotation classes have wrong modality
  • KT-61129 K2: Implement error suppression warning
  • KT-60536 K2: FIR2IR Crash when resolving to companion of internal class with Suppress("INVISIBLE_REFERENCE")
  • KT-55196 K2: False-negative CONST_VAL_WITH_NON_CONST_INITIALIZER on boolean .not() call
  • KT-60292 K2: annotations on local delegated properties are lost
  • KT-59418 K2: Missing DUPLICATE_PARAMETER_NAME_IN_FUNCTION_TYPE
  • KT-59422 K2: Missing NON_SOURCE_ANNOTATION_ON_INLINED_LAMBDA_EXPRESSION
  • KT-57963 K2: MPP: Annotation calls should be actualized
  • KT-61407 K2: java.lang.IllegalArgumentException: Stability for initialized variable always should be computable
  • KT-59186 K2: False negative CONFLICTING_OVERLOADS in nested functions
  • KT-54390 K2: ClassId for local classes do not match with specification
  • KT-61277 K2: Expand the MIXING_SUSPEND_AND_NON_SUSPEND_SUPERTYPES check to other function kinds
  • KT-61548 Compiler crashes with StackOverflowError when mapping types
  • KT-56757 Drop IGNORE_BACKEND_K2_LIGHT_TREE directive
  • KT-61330 K2: No BinarySourceElement for system libraries
  • KT-61166 Inherited platform declaration clash & accidental override
  • KT-58764 [K2] Make FirResolvedDeclarationStatus.modality not nullable
  • KT-61576 [FIR] Private type alias for public class constructor is always visible
  • KT-60531 K2/JS: Report diagnostics before running FIR2IR
  • KT-59900 K2: Disappeared NESTED_CLASS_NOT_ALLOWED
  • KT-59344 K2: implement deprecation warnings from KT-53153
  • KT-61067 K2. No Assignments are not expressions
  • KT-61144 FIR2IR: Fix field access for class context receiver from debugger evaluator in K2
  • KT-59914 K2: Disappeared RETURN_NOT_ALLOWED
  • KT-60136 Wrong IR is generated for spread call in annotation call when annotation has a vararg parameter
  • KT-56872 K2: not all reassignments, operator assignments, increments, decrements are tracked in DFA for try/catch expressions
  • KT-60397 K2/MPP: don't perform enhancement twice when Java method is called from different modules
  • KT-61640 K2: Share declarations from JvmMappedScope between sessions in MPP scenario
  • KT-59051 "ISE: IrSimpleFunctionSymbolImpl is already bound" when implementing multiple interfaces by delegation where one of them overrides equals/hashCode
  • KT-60380 K2: IAE: class org.jetbrains.kotlin.psi.KtLambdaArgument is not a subtype of class org.jetbrains.kotlin.psi.KtExpression for factory TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM
  • KT-60795 K2: missing INCOMPATIBLE_CLASS and corresponding CLI error
  • KT-59650 K2: Get rid of FirNoReceiverExpression
  • KT-60555 K2. FirJavaClass source field is null
  • KT-61045 K2: Missing return from DELEGATED_PROPERTY_ACCESSOR setter
  • KT-60636 KMP: K2 handling of actual typealiases to nullable types
  • KT-59815 K2: Avoid recomputing argumentVariables
  • KT-61409 Kotlin/Native: crash in kmm-production-sample (compose-app) with escape analysis enabled
  • KT-61348 K2: Refactor FIR2IR declaration storages
  • KT-61249 Move fir-related code from backend.native module
  • KT-59478 K2: StackOverflowError on invalid code with nullable unresolved
  • KT-59893 K2: Disappeared WRONG_NUMBER_OF_TYPE_ARGUMENTS
  • KT-60450 K2: IOOBE from analyzeAndGetLambdaReturnArguments
  • KT-61442 K2: Consider stricter filtering on implicit integer coercion
  • KT-61441 K2: Wrong overload is chosen with ImplicitIntegerCoercion enabled
  • KT-57076 K2 does not report 'More than one overridden descriptor declares a default value'
  • KT-55672 K2. Operator name message instead of "Unresolved reference" when operator isn't defined for type
  • KT-60252 K2: Supertype argument is not substituted in fake override receivers and value parameters
  • KT-60687 K2: Introduced UNEXPECTED_SAFE_CALL
  • KT-59664 Inline modifier can be added to a constructor parameter, but it does not have any effect
  • KT-61312 K2: Remove FirExpression.typeRef completely when Compose was migrated
  • KT-60602 Fix scripting tests in 2.0 branch
  • KT-60771 K2: "Conflicting declarations". Unable to re-declare variable if the first one comes from a destructured element
  • KT-60760 K2: Every FirFunctionCall has an implicit type reference which points to the return type declaration
  • KT-59944 K2: Disappeared NON_MEMBER_FUNCTION_NO_BODY
  • 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-60250 K2: origin is set too many times for elvis operator
  • KT-60254 K2: Extra unset type argument on Java field reference
  • KT-60245 K2: Extra return is generated in always throwing function
  • KT-59407 K2: Missing MISSING_CONSTRUCTOR_KEYWORD
  • KT-57681 Request review for all FIR diagnostic messages
  • KT-57738 K2: unresolved class fields and methods in kotlin scripts
  • KT-60885 K2: Fix testSelfUpperBoundInference test in LV 2.0 branch
  • KT-59957 K2: Missing UNSUPPORTED_SEALED_FUN_INTERFACE
  • KT-60000 K2: Missing UNSUPPORTED_INHERITANCE_FROM_JAVA_MEMBER_REFERENCING_KOTLIN_FUNCTION
  • KT-60886 K2: Fix testDirectoryWithRelativePath in LV 2.0 branch
  • KT-60002 K2: Missing UNSUPPORTED_SUSPEND_TEST
  • KT-59419 K2: Missing MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES_WHEN_NO_EXPLICIT_OVERRIDE
  • KT-60297 K2: finally block is not coerced to unit
  • KT-59416 K2: Missing EXTERNAL_INTERFACE_AS_REIFIED_TYPE_ARGUMENT
  • KT-59417 K2: Missing CALL_FROM_UMD_MUST_BE_JS_MODULE_AND_JS_NON_MODULE
  • KT-59381 K2: Missing CALL_TO_JS_NON_MODULE_WITH_MODULE_SYSTEM
  • KT-59384 K2: Missing DYNAMIC_NOT_ALLOWED
  • KT-59406 K2: Missing PROPERTY_DELEGATION_BY_DYNAMIC
  • KT-57223 K2: false-negative INAPPLICABLE_JVM_NAME on non-final properties outside interfaces
  • KT-59413 K2: Missing VALUE_CLASS_CANNOT_HAVE_CONTEXT_RECEIVERS
  • KT-59387 K2: Missing NO_CONSTRUCTOR
  • KT-57803 K2. "Kotlin: Only the Kotlin standard library is allowed to use the 'kotlin' package" error missing in 2.0

IDE

Fixes

  • KT-62777 K2 IDE: False positive MISSING_DEPENDENCY_SUPERCLASS for built-ins in non-JVM modules
  • KT-61195 UAST modeling of implicit it is inconsistent for Enum.entries
  • KT-62757 SLC: incorrect nullability annotation on aliased type
  • KT-60318 K2: disable SLC for non-JVM platforms
  • KT-62440 On the fly resolve with light method context doesn't resolve method type parameters
  • KT-50241 Make Symbol Light Classes consistent with Ultra Light Classes
  • KT-56546 LL FIR: fix lazy resolve contract violation in Symbol Light Classes
  • KT-57550 K2: AA: incorrect constant value in file-level annotation
  • KT-61460 SLC: unnecessary upper bound wildcards (w/ type alias)
  • KT-61377 K2: SLC: wrong retention counterpart for AnnotationRetention.BINARY
  • KT-60603 K2: Investigate intellij tests failures in branch 2.0
  • KT-60590 Fix light classes related tests in branch 2.0

IDE. Gradle Integration

IDE. Multiplatform

  • KT-63007 K2: Analysis API Standalone: klibs are not resovled from common code
  • KT-61520 Sources.jar is not imported for common and intermediate source-sets from the MPP library

IDE. Script

  • KT-60418 K2 scripting: highlighting sometimes fails
  • KT-60987 K2: Analysis API: make build.gradle.kts resolution work on build scripts from kotlin projects

IR. Actualizer

  • KT-62623 K2: Ir actualizer leaves inconsistent module links from files

IR. Tree

  • KT-61934 Decouple building fake overrides from symbol table and build scheduling
  • KT-60923 IR: Mark IrSymbol.owner with OptIn

JavaScript

  • KT-61795 KJS: Incremental Cache is not invalidated if useEsClasses compiler argument was changed
  • KT-62425 K/JS: Implement K2 and K1 diagnostics for checking argument passing to js()
  • KT-58685 KJS: "IllegalStateException: Not locked" cused by "unlock" called twice
  • KT-56818 KJS: "TypeError: Class constructor * cannot be invoked without 'new'" when extending external class
  • KT-61710 K/JS: Implement JS_NAME_CLASH check for top level declarations
  • KT-61886 K/JS: Prepare K/JS tests for JS IR BE diagnostics
  • KT-60829 Fix JS Incremental tests in 2.0 branch
  • KT-60785 KJS: Destructured value class in suspend function fails with Uncaught TypeError: can't convert to primitive type error
  • KT-60635 K/JS: Class internal methods may clash with child methods from other module that have the same name
  • KT-60846 Fix IncrementalJsKlibCompilerWithScopeExpansionRunnerTestGenerated test in 2.0 branch

KMM Plugin

  • KT-60169 Generate gradle version catalog in KMM AS plugin
  • KT-59269 Update wizards in KMM AS plugin after 1.9.0 release

Klibs

  • KT-61767 [K/N] Header klibs should keep private underlying properties of value classes
  • KT-60807 [klib] Add an option to write out header klibs
  • KT-61097 [PL] Don't create an executable if there were errors in PL

Language Design

  • KT-58921 K1/K2: difference in Enum.values resolve priority
  • KT-61573 Emit the compilation warning on expect/actual classes. The warning must mention that expect/actual classes are in Beta
  • KT-62138 K1: false positive (?) NO_SET_METHOD for += resolved as a combination of Map.get and plus
  • KT-22841 Prohibit different member scopes for non-final expect and its actual

Libraries

  • KT-62785 Drop unnecessary suppresses in stdlib after bootstrap update
  • KT-58588 Optimizations for sequence functions distinct, flatten
  • KT-62004 Drop legacy JS compilations of stdlib and kotlin-test
  • KT-61614 WASM: Enum hashCode is not final

Native

  • KT-61642 [K/N] Serialize full IdSignatures to caches
  • KT-62803 Konanc has print statement "Produced library API in..." that should be deleted or properly logged at INFO level
  • KT-61248 [K/N] Extract native manglers out of backend.native module

Native. Runtime. Memory

  • KT-57773 Kotlin/Native: track memory in big chunks in the GC scheduler
  • KT-61093 Kotlin/Native: enable concurrent weak processing by default

Native. Stdlib

  • KT-60514 Add llvm filecheck tests for atomic intrinsics

Native. Testing

  • KT-62157 Native: Migrate FileCheck tests to new native test infra

Reflection

  • KT-60984 K2: java.lang.ClassNotFoundException: kotlin.Array in runtime with Spring Boot test
  • KT-60709 Reflection: Not recognized bound receiver in case of 'equals' always returning true
  • KT-61304 Reflection: Calling data class copy method via reflection (callBy) fails when the data class has exactly 64 fields

Tools. CLI

  • KT-62644 Don't enable in progressive mode bug-fix features without target version
  • KT-62350 CLI: no color output on Apple silicon Macs
  • KT-61156 K2: do not try to run compilation if there were errors during calculation of Java module graph
  • KT-48026 Add the compiler X-flag to enable self upper bound type inference

Tools. Compiler Plugin API

  • KT-61872 K2: Adding annotations to metadata from backend plugin doesn't work in the presence of comments on annotated declaration

Tools. Compiler Plugins

  • KT-60849 jvm-abi-gen: do not treat hasConstant property flag as a part of ABI for non-const properties
  • KT-53926 K2. Don't check serializable properties from supertypes

Tools. Compiler plugins. Serialization

  • KT-62215 Serialization / Native: "IllegalArgumentException: No container found for type parameter" caused by serializing generic classes with a field that uses generics
  • KT-62522 K2 + kotlinx.serialization + Native: NPE when generic base class has inheritor in other module

Tools. Gradle

New Features

Performance Improvements

  • KT-62318 Android Studio sync memory leak in 1.9.20-Beta

Fixes

  • KT-62650 Gradle: Return the usage of kotlin-compiler-embeddable back
  • KT-61295 KotlinTestReport captures Project.buildDir too early
  • KT-62987 Add tests for statistics plugin in Aggregate build
  • KT-62964 Build Gradle plugin against Gradle 8.4 API
  • KT-61896 Gradle: compilation via build tools API doesn't perform Gradle side output backups
  • KT-61918 Removal of an associated compilation from a build script doesn't lead to full recompilation
  • KT-59826 Update SimpleKotlinGradleIT#testProjectIsolation to run on Gradle 8
  • KT-61401 The reported language version value for KotlinNativeLink tasks in build reports and build scans is inaccurate
  • KT-62024 K/Wasm: Binaryen modifying compiler output
  • KT-61950 K/Wasm: Add warning about changed sourceSets
  • KT-61895 KotlinTopLevelExtension.useCompilerVersion is not marked as experimental
  • KT-56574 Implement a prototype of Kotlin JVM compilation pipeline via the build tools API
  • KT-61206 Build system classes may leak into the Build Tools API classloader
  • KT-61737 GradleStyleMessageRenderer.render misses a space between the file and the message when location is (line:column = 0:0)
  • KT-61457 Kotlin Gradle Plugin should not use internal deprecated StartParameterInternal.isConfigurationCache

Tools. Gradle. JS

  • KT-41382 NI / KJS / Gradle: TYPE_MISMATCH caused by compilations.getting delegate
  • KT-53077 KJS / Gradle: Remove redundant gradle js log on kotlin build
  • KT-61992 KJS / Gradle: KotlinJsTest using KotlinMocha should not show output, and should not run a dry-run every time.
  • KT-56300 KJS / Gradle: plugin should not add repositories unconditionally
  • KT-55620 KJS / Gradle: plugin doesn't support repositoriesMode
  • KT-56465 MPP: Import with npm dependency fails with "UninitializedPropertyAccessException: lateinit property fileHasher has not been initialized" if there is no selected JavaScript environment for JS target
  • KT-41578 Kotlin/JS: contiuous mode: changes in static resources do not reload browser page

Tools. Gradle. Kapt

  • KT-22261 Annotation Processor - in gradle, kapt configuration is missing extendsFrom
  • KT-62518 kapt processing is skipped when all annotation processors are indirect dependencies

Tools. Gradle. Multiplatform

  • KT-62601 AS/IntelliJ exception after updating a KMP project with a macos target to Kotlin 1.9.20-RC
  • KT-60734 Handle the migration from ios shortcut and source set with getting
  • KT-59042 "Cannot build 'KotlinProjectStructureMetadata' during project configuration phase" when configuration cache enabled
  • KT-62029 Kotlin 1.9.20-Beta fails to detect some transitive dependency references in JVM+Android source set
  • KT-61652 MPP ConcurrentModificationException on transformCommonMainDependenciesMetadata
  • KT-61622 Upgrading to Kotlin 1.9 prevents commonMain sourceset classes from being processed by kapt/ksp (dagger/Hilt)
  • KT-61540 K2: KMP/K2: Metadata compilations: Discriminate expect over actual by sorting compile path using refines edges
  • KT-59020 1.9.0 Beta Kotlin plugin Gradle sync fails with intermediate JVM + Android source set
  • KT-60860 K2: Fix KotlinNativeCompileArgumentsTest in 2.0 branch
  • KT-61463 KMP: Remove unused 'kpm' code

Tools. Gradle. Native

  • KT-51553 Migrate all Kotlin Gradle plugin/Native tests to new test DSL and add CI configuration to run them
  • KT-61657 KonanTarget should implement equals or custom serialization
  • KT-62907 Turn on downloading Kotlin Native from maven by default
  • KT-61700 Native: linkDebugExecutableNative has duplicated freeCompilerArgs

Tools. Incremental Compile

  • KT-61865 Add support for incremental compilation within the in-process execution strategy in the build tools api
  • KT-61590 K2/KMP: Expect actual matching is breaking on the incremental compilation
  • KT-60831 Fix IncrementalMultiplatformJvmCompilerRunnerTestGenerated in 2.0 branch

Tools. JPS

  • KT-60737 Investigate/fix JPS-related tests in 2.0 migration branch

Tools. Kapt

  • KT-60507 Kapt: "IllegalAccessError: superclass access check failed" using java 21 toolchain
  • KT-62438 Change experimental K2 kapt diagnostic message
  • KT-61916 K2 KAPT. Kapt doesn't generate fully qualified names for annotations used as arguments to other annotations
  • KT-61879 K2 Kapt: java.lang.NoSuchMethodError during stub generation
  • KT-61729 K2: KAPT 4: Compiler crash during compilation of Sphinx for Android
  • KT-61333 K2 Kapt: support REPORT_OUTPUT_FILES compiler mode
  • KT-61761 Kapt4ToolIntegrationTestGenerated should not use Kapt3ComponentRegistrar

Tools. Maven

  • KT-54868 Stop publishing kotlin-archetype-js
  • KT-26156 Maven Kotlin Plugin should not WARN when no sources found
  • KT-60859 K2: Fix maven IncrementalCompilationIT tests in 2.0 branch

Tools. Parcelize

  • KT-57685 Support ImmutableCollections in Parcelize plugin

Tools. Scripts

  • KT-62400 K2: Missing annotation resolving for scripts
  • KT-61727 Scripts: Maven artifacts resolution is slow

Tools. Wasm

  • KT-61973 K/Wasm: wasmWasiNodeRun is missed
  • KT-61971 K/Wasm: wasmWasiTest should depends on kotlinNodeJsSetup

Recent ChangeLogs: