Skip to content

Kotlin 2.1.0-Beta1

Pre-release
Pre-release
Compare
Choose a tag to compare
@KotlinBuild KotlinBuild released this 17 Sep 13:09

Changelog

Analysis. API

New Features

  • KT-68603 KotlinDirectInheritorsProvider: add an option to ignore non-kotlin results
  • KT-69961 resolveToCallCandidates should support properties
  • KT-69960 resolveToCallCandidates should support operators

Performance Improvements

  • KT-70757 Performance problem in KaFirVisibilityChecker for KaFirPsiJavaClassSymbol
  • KT-70529 KaSymbol: reduce the number of cached usages

Fixes

  • KT-65618 K2: resulted FirClass.psi != requested PsiClass from completion
  • KT-70323 FirLazyResolveContractViolationException: lazyResolveToPhase(TYPES) cannot be called from a transformer with a phase TYPES
  • KT-69535 Redesign 'containingSymbol'
  • KT-70859 Do not fail highlighting due to resolution problems
  • KT-67483 K2 IDE: Serializable plugin causes infinite resolve recursion when there is a star import from a class with annotation call
  • KT-63490 Analysis API: Accessing the Analysis API should be prohibited during dumb mode
  • KT-69416 K2 IDE / Completion: “No classifier found” on simple value creating
  • KT-70663 KaFirDestructuringDeclarationSymbol: Failed requirement
  • KT-70662 NPE: FirLazyBodiesCalculatorKt.calculateLazyBodyForProperty
  • KT-70661 Invalid FirDeclarationOrigin ScriptTopLevelDestructuringDeclarationContainer
  • KT-70624 Declaration symbols from code fragments are treated as not local
  • KT-70257 CCE: class kotlin.UInt cannot be cast to class java.lang.Number
  • KT-69070 Analysis API: Querying declared member scope for Java symbols results in exception in some use cases
  • KT-70199 K2: ConcurrentModificationException at FirCallCompleter$LambdaAnalyzerImpl.analyzeAndGetLambdaReturnArguments
  • KT-70376 K2 IDE / Kotlin Debugger: IAE “Only componentN functions should be cached this way, but got: toString” on evaluating toString() method for value class
  • KT-70264 AA: service registration via XML fails with AbstractMethodError in Lint CLI
  • KT-69381 Analysis API: Investigate the viability of current KaSymbol caches
  • KT-69950 Analysis API: Introduce isSubtypeOf(ClassId)
  • KT-68625 K2: “lazyResolveToPhase(STATUS) cannot be called from a transformer with a phase STATUS.”
  • KT-67009 Analysis API: Add abbreviated type tests for type aliases from source modules
  • KT-69977 KaFirFunctionalType#getAbbreviation is always null
  • KT-68341 Analysis API: Expanded function types from libraries don't have an abbreviated type
  • KT-68857 Analysis API: Refactor annotations
  • KT-70386 Do not filter out overloads from different libraries in dangling files
  • KT-65552 K2: CANNOT_CHECK_FOR_ERASED in KtTypeCodeFragment
  • KT-69360 Lack of implicit receiver for the last statement under lambda in scripts
  • KT-69699 Receiver type is not substituted in the case of conflict declarations
  • KT-70206 anonymousSymbol API throws an exception for regular functions
  • KT-65803 K2: Analysis API: KtFirTypeProvider#getSubstitutedSuperTypes throws an exception in the case of "Wrong number of type arguments"
  • KT-68896 Support VirtualFile binary dependency inputs to Analysis API modules
  • KT-69671 TYPES phase contract violation through JavaSymbolProvider
  • KT-69395 K2 IDE: incorrect overload selection from binary dependencies in a shared native source set
  • KT-68573 ISE: "Unexpected constant value (kotlin/annotation/AnnotationTarget, CLASS)" at Kt1DescUtilsKt.toKtConstantValue()
  • KT-69576 Analysis API: FIR implementation of "isImplicitReferenceToCompanion" returns false for companion references in implicit invoke operator calls
  • KT-69568 Analysis API: FIR implementation of "isImplicitReferenceToCompanion" returns true for non-companion references in qualified calls
  • KT-55124 Design common ancestor for KtValueParameter and KtReceiverParameterSymbol
  • KT-69436 Analysis API Platform: Encapsulate LLFirDeclarationModificationService as an engine service
  • KT-63004 K2: Analysis API: Design API for querying declarations generated by compiler plugins (similar to indices)
  • KT-69452 AA FIR: wrong source PSI after compile-time evaluation
  • KT-69679 KaDelegatedConstructorCall should have substituted signature
  • KT-69696 KaSymbolByFirBuilder should filter call-site substitutions
  • KT-69598 AA: definitely not-null type at receiver position should be wrapped in parenthesis
  • KT-60484 Analysis API: add support for KtType pointers similar to KtSymbolPointer
  • KT-68884 Analysis API: Rename/deprecate/remove declarations as part of Stabilization
  • KT-69292 K2: Analysis API: A property's MUST_BE_INITIALIZED diagnostic is not updated after changing field usage in an accessor
  • KT-69453 AA FIR: miss to handle expected type of lambda with explicit label
  • KT-69371 Analysis API: expose only interfaces/abstract classes for the resolution API
  • KT-69533 Protect implementation parts of Analysis API with opt-in annotations
  • KT-68268 LLSealedInheritorsProvider: reduce scope to kotlin files

Analysis. Light Classes

  • KT-70710 Provide light classes for KMP modules in Android Lint
  • KT-70548 SLC: text of class object access expression is not the same as raw text
  • KT-70572 SLC: missing isInheritor implementation for type parameter
  • KT-70491 SLC: inconsistent source PSI of no-arg constructor for all default values
  • KT-70458 SLC: missed auxiliaryOriginalElement for delegated property
  • KT-70232 Support a companion object inside value classes
  • KT-70349 @delegate:` annotations are missed for light class fields
  • KT-69833 Support value classes
  • KT-69998 Drop redundant cache from ClassInnerStuffCache
  • KT-68328 Move KtLightClassBase to ULC

Apple Ecosystem

  • KT-66262 Deprecate and remove support for bitcode embedding from the Kotlin Gradle plugin
  • KT-69119 xcodeVersion task fails if Xcode isn't installed and apple-specific native targets aren't declared

Backend. Wasm

  • KT-70786 Improve DX of the variable view during debugging in Chrome/Firefox for Kotlin/Wasm
  • KT-68185 [WasmJs] Attach js exception object to JsException
  • KT-65799 K/Wasm: remove default exports from wasm exports
  • KT-61130 K/Wasm: Function signatures may clash with base class internal methods from a friend module
  • KT-70394 Investigate increased wasm binary size after switching stdlib compilation to K2
  • KT-69627 Remove create###Array functions from WASM stdlib
  • KT-68509 Fatal: error validating input in compileProductionExecutableKotlinWasmJsOptimize

Compiler

New Features

  • KT-69321 Swift export: enable auto-linkage of binary dependencies
  • KT-59798 Builder inference is not working when combined with let expression
  • KT-11526 Improve diagnostics for "X overrides nothing"
  • KT-21908 Support 'when' exhaustiveness checking for generic type parameter with sealed class upper bound
  • KT-49710 False positive NO_ELSE_IN_WHEN with nullable type as receiver
  • KT-69729 Support calling super interface Java methods from Kotlin interface
  • KT-69508 Improve "Public-API inline function cannot access non-public-API" check for the inline property accessors

Performance Improvements

  • KT-69718 K2: Check for jvm nullability annotations in fir2ir is slow

Fixes

  • KT-66328 K2: implement an error for KT-66324
  • KT-70584 K2: "IllegalStateException: flow for PostponedLambdaExitNode not initialized - traversing nodes in wrong order?"
  • KT-70808 K2: "node has already been visited" with anonymous object in dead code
  • KT-70850 Pull down typeArguments from ConeKotlinType to ConeClassLikeType
  • KT-64741 Avoid leaking ConeTypeVariable types in diagnostics from PCLA
  • KT-60447 Builder inference fails to infer generic type argument from local class
  • KT-69170 K2: "Unresolved reference" caused by generics and fun interfaces
  • KT-63502 Getting java.lang.ClassNotFoundException: javaslang.λ during compilation
  • KT-70893 K2: Bogus NO_COMPANION_OBJECT on resolve to private qualifier
  • KT-69985 K2: Classifier declarations from root package are resolved without imports in non-root packages
  • KT-70683 K2: Internal compiler error in IrFakeOverrideSymbolBase.getOwner
  • KT-63945 K2: Prevent possible diagnostic loss
  • KT-70901 False positive Public-API inline function cannot access non-public-API property accessor
  • KT-70395 K2: "Captured Type does not have a classifier" caused by out type and interface hierarchy
  • KT-70667 K2: "Type parameter * has inconsistent bounds" caused by wildcard and where-clause
  • KT-70133 K2: false negative UNINITIALIZED_VARIABLE when postponed lambda is created before initialization
  • KT-70306 K2: Lambdas are unserializable: inferred from Java param ? super I
  • KT-70625 K2: ClassCastException caused by function reference, star projection and invariant type parameter
  • KT-70835 K2: "TYPE_MISMATCH" caused by operator assignment
  • KT-70366 K2: "KotlinIllegalArgumentExceptionWithAttachments: Failed to find functional supertype for class "
  • KT-68834 Parentheses don't influence calls of any convention operators (except invoke operator) after safe navigation operator
  • KT-70358 K2: "java.lang.IllegalArgumentException: No type for StarProjection" when using a star projection on a function type
  • KT-69298 K2: "Initializer type mismatch" caused by elvis operator type inference for nullable typealias
  • KT-70461 K2: "Inline class types should have the same representation" caused by value class and smart check
  • KT-69829 Missed UNRESOLVED_LABEL for label in returns and loops
  • KT-61223 JDK 21: new addFirst/addLast and putFirst/putLast methods allow adding nullable value for non-null types
  • KT-66742 Supertypes with inaccessible type arguments are allowed
  • KT-62906 Type system: consider changing simple type & DNN type relation
  • KT-65805 Migrate builtins serializer to K2
  • KT-71004 FirSignatureEnhancement#enhance mutates attributes on the original function
  • KT-70813 Questionable behavior for calls on ILT receivers
  • KT-70208 'when' is not exhaustive for expect Boolean
  • KT-69210 Native: tune LLVM optimization pipeline
  • KT-70753 K2: Missing non-null assertion on the return value of try-catch block
  • KT-69756 TypeOfLowering: don't create constant object nodes before inlining
  • KT-70012 EXTENSION_SHADOWED_BY_MEMBER shouldn't be reported for actual declarations
  • KT-70194 K2 IDE: exception on a very red file
  • KT-70837 K2. "Expected FirResolvedTypeRef with ConeKotlinType but was FirImplicitTypeRefImplWithoutSource" on incorrect call with extension fun
  • KT-66751 Implement a general deprecation of types with inaccessible type arguments
  • KT-68748 K2: Remove irFactory from Fir2IrComponents
  • KT-68893 Invalid annotation in contract crashes with K2
  • KT-61659 K2: Implement the EXTENSION_SHADOWED_BY_MEMBER warning
  • KT-70709 Range for MUST_BE_INITIALIZED shouldn't include property annotations
  • KT-70756 K2. Compiler crash with FileAnalysisException on incorrect symbol in nesting lambda
  • KT-63294 Do not use duplicated compiler argument names across the codebase
  • KT-65349 Changes in smart casting in K2 w.r.t. propagation of information
  • KT-66612 K2: Correctly compute java overrides for member-extension properties
  • KT-70673 False positive NO_ELSE_IN_WHEN with nullable Boolean as subject
  • KT-70672 False positive NO_ELSE_IN_WHEN with nullable Enum as subject
  • KT-69207 Native: use lld when the compiler produces binaries for a Linux target
  • KT-67696 Native: compiler crashes when loading an LLVM bitcode file of unsupported version
  • KT-69767 K2: Investigate differences in tests without alias behavior for cyclic expansion
  • KT-70617 K2: ClassCastException caused by Java enum with overridden name property
  • KT-68796 Non-first invoke operator calls break chained calls of convention operators after safe navigation operator
  • KT-67772 K2: Metadata misses NoInfer annotation for unsafeCast result
  • KT-70304 [FIR2IR] Missing @NoInfer
  • KT-65085 K2: Get rid of special check for unresolved array literals on argument mapping phase
  • KT-65066 K1 crashes, K2 doesn't report type mismatch on array literal inside nested annotation call
  • KT-49235 Kotlin interface limited to 1000 super types
  • KT-69991 K2/JVM: Backend crash with functional types and KFunctions
  • KT-7461 Forbid using projection modifiers inside top-level Array in annotation's value parameter
  • KT-52315 Legacy keywords (header, impl) break enum definitions
  • KT-69499 Native: aggressive inline of runtime procedures causes compiler crash in debug builds
  • KT-69737 Native: incompatible target-cpu attributes between runtime and Kotlin code
  • KT-69911 Unexpected line numbers in default setter
  • KT-61529 K2: Unexpected FirClassLikeSymbol null with -no-jdk
  • KT-69475 K2: No "Name contains illegal characters" for package name with dots inside
  • KT-69484 Native: remove default values for isObjectType
  • KT-70352 K2: False-negative CONFLICTING_UPPER_BOUNDS on Nothing bound
  • KT-59781 K2: investigate implicit cast generation in fir2ir vs psi2ir
  • KT-70036 [FIR2IR] Fix param name in overridden setter
  • KT-68653 Switch latest stable language version in Kotlin project to 2.1
  • KT-68718 [JVM] Generic function is instantiated with wrong type argument
  • KT-70328 K2: @UnsafeVariance stored in the metadata despite the Source retention
  • KT-70313 K2: Don't add Any supertype to kotlin.Nothing compiled from sources
  • KT-61033 K2: implement a diagnostic corresponding to K1's MISSING_BUILT_IN_DECLARATION
  • KT-69982 K2: New errors when executing :kotlin-stdlib:jvmJar
  • KT-70169 K2: implement a deprecation error for Synchronized, Throws, JvmField on annotation parameters
  • KT-67651 K2: inconsistency in behavior for SAM constructor with flexible type
  • KT-63857 K2: Extra operator modifier in metadata
  • KT-70182 K2: Set up isOperator flag according to operator naming conventions during building synthetic overrides for Java methods
  • KT-20798 Implement a deprecation warning for reified modifier on type parameters of type alias
  • KT-68697 K2 IDE / Kotlin Debugger: NSEE “List is empty.” when method reference is used in some place in code
  • KT-68702 K2 IDE: AE “SyntheticAccessorLowering should not attempt to modify other files!” on evaluating of supermethods toString() and hashCode()
  • KT-69509 K2 IDE / Kotlin Debugger: exception in lowering ReplaceKFunctionInvokeWithFunctionInvoke when compiling code fragment
  • KT-66323 K2: Clarify contracts of ConeSubstitutorByMap
  • KT-69652 K2: False positive "Redundant visibility modifier" with explicitApi()
  • KT-65815 K2: False-positive NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY with inline function returning Nothing?
  • KT-60508 K2/stdlib: compilation of common code fails if built-in types are provided as platform sources
  • KT-70037 K2: Generate IR body for Any constructor despite that fact it's empty
  • KT-69599 K2: Investiage and fix lots of UNRESOLVED_REFERENCE during building stdlib native with K2
  • KT-68375 K2: FirPrimaryConstructorSuperTypeChecker fails on generated superclasses
  • KT-58309 Deal with test failures inside FirTypeEnhancementTestGenerated
  • KT-27112 Implement prohibition of exposing types via type parameters' bounds
  • KT-69831 Add long FastJarFS tests to the nightlyFirCompilerTest configuration
  • KT-69537 K2: Unintentional behavior caused by InferMoreImplicationsFromBooleanExpressions
  • KT-59814 K2: Explore why FirDataFlowAnalyzer strips away value parameters of non top-level-functions
  • KT-69920 K2: java.lang.IllegalArgumentException: FirNamedArgumentExpressionImpl.replaceConeTypeOrNull() during Space project compilation
  • KT-69069 K2: expect overloads are deprioritized in common code
  • KT-69739 K2: "KotlinIllegalArgumentExceptionWithAttachments: Unexpected FirPlaceholderProjectionImpl" caused by unresolved references
  • KT-69511 KJS / K2: False positive IMPLICIT_BOXING_IN_IDENTITY_EQUALS when comparing dynamic with primitive
  • KT-63944 Kotlin/Native: Cache flavor selection doesn't respect GC kind
  • KT-69500 Native: introduce an option to inline less "ALWAYS_INLINE" runtime procedures
  • KT-69717 K2: Don't call coneType/coneTypeOrNull extensions on FirResolvedTypeRef
  • KT-60440 K2/Java: investigate constructor own type parameters enhancement
  • KT-69871 K2 allows modifier keywords on package declaration
  • KT-61271 Frontend: "The label does not denote a loop." error message is used even if the label does denote a loop
  • KT-69768 K2: Investigate differences in tests without alias behavior with typealias to enum entry
  • KT-63846 K2: incorrect type argument inferred for smart cast value of a generic type
  • KT-69774 Don't report overload resolution ambiguity if extension receiver contains error type
  • KT-61316 K2: Consider throwing exception when replaceType is called on special FirExpressions with immutable types
  • KT-69399 Native: IllegalStateException: "Failed to build cache"
  • KT-69564 Make using -Xuse-k2 compiler flag an error
  • KT-69201 Discard expect candidate in overload conflict resolver if there is no actual
  • KT-69735 K2: Static fields are missing from the declaration list of corresponding IrClass for java class
  • KT-69783 K2: Make FirTypeProjection sealed
  • KT-68000 Investigate getting container functions in checkers
  • KT-69649 K2: Cleanup various utilities about toSymbol conversion
  • KT-69185 K2: Prepare a test runner for diagnostic tests with type aliases non-expanded automatically
  • KT-69390 UNRESOLVED_REFERENCE on call with lambda argument turns whole call red
  • KT-68794 K2 IDE / Kotlin Debugger: ISE “No real overrides for FUN FAKE_OVERRIDE name:privateFun visibility:private modality:FINAL” on calling private function from superclass in debugger
  • KT-69315 FirJavaGenericVarianceViolationTypeChecker: StackOverflowError
  • KT-49962 "Visibility inherited is not allowed in forVisibility" when analyzing broken file
  • KT-24212 Report "This class shouldn't be used in Kotlin" on calling constructor of Java class with Kotlin analog
  • KT-64195 K2: Consider make FirAnonymousInitializer. containingDeclarationSymbol not null
  • KT-64254 "Projections are not allowed on type arguments of functions and properties": Type-project type arguments of properties
  • KT-40533 Error message PROPERTY_WITH_NO_TYPE_NO_INITIALIZER for interface property is not fully correct
  • KT-20014 Improve diagnostics for lateinit property without initializer and type annotation
  • KT-51366 False positive error "Value class cannot extend classes" when extending generic interface with wrong number of type arguments
  • KT-69407 K2: Compiler crash (Shouldn't be here) due to unresolved reference in FirProjectionRelationChecker
  • KT-69294 K2: Report CONSTRUCTOR_OR_SUPERTYPE_ON_TYPEALIAS_WITH_TYPE_PROJECTION_ERROR instead of EXPANDED_TYPE_CANNOT_BE_INHERITED after switching to LV 2.1
  • KT-68277 K2: false positive UNREACHABLE_CODE for non-local return/break
  • KT-69544 K2: Mapped Java @Target annotation's vararg argument has swapped type and elementType
  • KT-68998 K2: Refactor postponed atoms
  • KT-69288 Native: Apple LLVM 16 fork can't read bitcode with memory attribute produced by upstream LLVM 16
  • KT-67808 K2: Inconsistent properties initialization analysis in init blocks in presence of smartcast on this
  • KT-68933 CompilationException: Back-end: Could not get inlined class
  • KT-69035 K2: Investigate potential removal of FirMangler
  • KT-64640 Prevent mutating SequenceCollection methods from JDK 21 be available on read-only collections
  • KT-65441 K1: Remove JDK 21 getFirst()/getLast() in (Mutable)List interfaces
  • KT-54792 Store program order of properties inside @kotlin.Metadata

Compose compiler

New features

  • 83c48a0 Decoy support for JS target is removed from Compose compiler

Fixes

  • b/325004814 [Compose] Fix infinite recursion in target analysis
  • b/357878245 Disallow open @Composable functions with default params to fix binary compatibility issues.
  • b/338597078 [Compose] Fix target warning message
  • b/351858979 Fix stability inferencing of interfaces on incremental compilation
  • b/346821372 [Compose] Fix code generation for group optimization
  • b/339311821 Give warning when stability configuration file is not found
  • b/346821372 Fixes group generation for if statements when nonSkippingGroupOptimization is enabled.

IDE. Gradle Integration

  • KT-48554 [Multiplatform Import] Ensure consistency between GradleImportProperties and PropertiesProvider

IR. Actualizer

  • KT-70894 IR crash. Unprocessed IrFunctionFakeOverrideSymbol when actualize to Java
  • KT-69632 K2: Expect actual mismatch on actualization with alias to expect class

IR. Inlining

New Features

  • KT-69527 Set the right visibility for synthetic accessors in SyntheticAccessorLowering

Fixes

  • KT-69802 Don't extract local classes from inline functions in double inlining mode
  • KT-67292 Handling assertions before the IR inliner
  • KT-69169 Expand assertion intrinsics in backend based on CLI parameters
  • KT-69168 Wrap assertion calls before IR inliner
  • KT-69167 Create intrinsics in stdlib for handling assertions in KLIB-based backends
  • KT-70763 IR inline: consider storing stub_for_inline as an inlined function for callable reference
  • KT-70423 KLIB: SyntheticAccessorLowering - generate static factory functions instead of synthetic constructors
  • KT-70693 IR: replace IrReturnableBlock.inlineFucntion with IrInlinedFunctionBlock.inlineFucntion
  • KT-67172 Native & JS: Introduce OuterThisInInlineFunctionsSpecialAccessorLowering
  • KT-69462 Support dumping IR after inlining in compiler tests
  • KT-69787 Handle clashes of synthetic accessors generated for top-level callables
  • KT-69174 Implement the basic Synthetic Accessors Lowering for KLIB-based backends
  • KT-69700 Inline stub_for_inlining use sites survive after the inliner
  • KT-67170 ArrayConstructorReferenceLowering is missing in Native
  • KT-69172 Implement double-inlining for Native

IR. Interpreter

  • KT-70388 K2 IDE / Kotlin Debugger: InterpreterError “Unsupported number of arguments for invocation as builtin function: INT_MAX_POWER_OF_TWO” during evaluation

IR. Tree

  • KT-70333 IR: remove ability to apply compiler plugins during KAPT stub generation phase
  • KT-70330 Automatically keep track of IrValueParameter.index
  • KT-65773 Auto generate IR implementation classes
  • KT-68495 Compile-time failure on bounded generic value used in a contains-check with range
  • KT-68151 Setup testing visibility of referenced declarations in IR
  • KT-68988 [Tests] Streamline the order of irFiles in IR- and Kotlin-like dumps
  • KT-68974 Validate scopes of IrValueParameters in IrValidator

JavaScript

New Features

  • KT-70283 KJS / ES6: Don't generate bind(this) calls for anonymous functions that capture this
  • KT-70254 K/JS: Generate arrows in ES6 mode instead of anonymous functions

Fixes

  • KT-31799 Allow non-identifier characters in Kotlin/JS (backquoted properties, @JsName)
  • KT-69928 KJS: keys() and values() of KtMap's JS view don't behave as expected
  • KT-68975 KJS: Investigate calling js(...) from inline functions
  • KT-70231 Delete the org.jetbrains.kotlin.cli.js.dce.K2JSDce class
  • KT-70393 Investigate failing JS test after switch stdlib compilation to K2
  • KT-55869 Coroutine is not intercepted, when the coroutine is started calling startCoroutineUninterceptedOrReturn using callable reference
  • KT-70221 Rename org.jetbrains.kotlin.cli.js.K2JsIrCompiler to K2JSCompiler
  • KT-70219 Delete the org.jetbrains.kotlin.cli.js.K2JSCompiler class
  • KT-66181 Reorganize JsCodeOutliningLowering and keep it before the IR inliner
  • KT-69587 [Tests] Fix multi-module deserialization in JS irText tests
  • KT-69892 Array.isArray() returns false for an instance returned by KtList.asReadonlyArrayView()
  • KT-64429 K2: Implement KlibJsIrTextTestCaseGenerated for K2
  • KT-69173 Implement double-inlining for JS
  • KT-69642 ES generator-based coroutines rely on eval
  • KT-67327 JS: Remove error tolerance

KMM Plugin

  • KT-71011 AS KMP plugin: ios application can't start for 2024.2.1

Klibs

  • KT-68322 Compiler (JS, Wasm): warn about incompatible Kotlin stdlib/compiler pair
  • KT-70146 [KLIB Resolve] Don't fail on nonexistent transitive dependency
  • KT-68195 move KlibMetadataProtoBuf to frondend-independent module
  • KT-68792 Bump KLIB ABI version in 2.1

Language Design

  • KT-65004 K1: Setter of var, which overrides protected val, is generates as public
  • KT-64972 Forbid overriding by private members in link-time for Kotlin/Native

Libraries

  • KT-56076 K2: build Kotlin standard library
  • KT-65526 Rewrite builtins as expect-actual
  • KT-68502 K2: Fix or suppress stdlib K2 warnings
  • KT-68731 K2: Handle some formally incompatible expect/actual classes in JVM stdlib
  • KT-70378 Implement custom serialization for Uuid
  • KT-70005 K/Wasm and K/Native: IntArray.sort - array element access out of bounds
  • KT-69817 Set up klib binary API validation for stdlib
  • KT-68396 Handle some formally incompatible top-level expects/actuals callables
  • KT-69524 kotlin.uuid.Uuid: checkHyphenAt - error message always specified index 8
  • KT-69327 [native] FloatingPointParser.initialParse works incorrectly for some inputs

Native

  • KT-49279 Kotlin/Native: update LLVM from 11.1.0 to 16.0.0
  • KT-61299 Native: patch LLVM to prevent it from using signal handlers incompatibly with JVM
  • KT-69637 Native: our LLVM shouldn't advise submitting bugs to the upstream
  • KT-64636 kotlin.incremental.native=true causes IrLinkageError

Native. Build Infrastructure

  • KT-69479 Native: remove custom python version building from the LLVM builder container image
  • KT-63214 [K/N] llvm build script fails with MacOSX14.0.sdk sysroot

Native. C Export

  • KT-69507 LLVM 11 clang with Xcode 16 headers: standard c++ headers

Native. C and ObjC Import

  • KT-71029 Investigate why stdarg.h declarations leak into testModuleA

Native. ObjC Export

  • KT-62997 IllegalStateException for hashCode(): KClass for Objective-C classes is not supported yet
  • KT-59497 KClass.simpleName returns null in ObjC-inherited class

Native. Platform Libraries

  • KT-69448 LLVM 16 clang with Xcode 16 headers: 'sys/cdefs.h' file not found

Native. Runtime

  • KT-67730 Native: fix runtime compilation warnings after update to LLVM 16

Native. Runtime. Memory

  • KT-68544 [Native] Implement heap dump tool
  • KT-70365 Kotlin/Native: make thread id be pointer size

Native. Swift Export

  • KT-70442 Swift Export: export class inheritance
  • KT-70063 Swift export generates invalid Swift code for class and function with the same name
  • KT-70069 Swift export: filter out extension properties
  • KT-70068 Swift export: nullable types are not marked as unsupported
  • KT-68864 Refactor internal details of swift-export-standalone
  • KT-69287 Swift Export: support leaking dependencies
  • KT-69633 Provide interface for multiple module translation
  • KT-69286 [Swift Export][TestInfra] Support translating multiple roots
  • KT-69376 Property with Any type does not force addition of import

Native. Testing

  • KT-70603 C++ with -fmodules: cyclic dependency in module 'std': std -> _wctype -> __wctype -> std in dev llvm toolchains
  • KT-69181 Native tests infrastructure: link Swift export tests statically
  • KT-71028 Run atomicfu compiler plugin K/N tests against K2
  • KT-65593 [K/N] Reorganize tests build configurations
  • KT-70538 [K/N] StdlibTest — initializationError
  • KT-70594 [K/N] Fix ObjC export tests in FirFrameworkTest
  • KT-70120 [K/N][Tests] Re-enable FirFrameworkTest in ONE_STAGE_MULTI_MODULE

Tools. CLI

  • KT-69541 K2: "IllegalArgumentException: Unexpected versionNeededToExtract" on using JAR packaged as ZIP64
  • KT-69434 K2: Kotlin compiler JarFS can't handle large dependencies (>2GB)
  • KT-8087 Make it possible to suppress warnings globally in compiler (via command-line option)
  • KT-70959 K2: Support legacy metadata jar format in K2 compiler
  • KT-70337 Obsolete code is not removed after refactoring - JvmEnvironmentConfigurator.registerModuleDependencies
  • KT-70322 Merge CLITool and CLICompiler classes

Tools. CLI. Native

  • KT-71262 KotlinNativeLink tasks fetching from network despite -Xoverride-konan-properties=dependenciesUrl= being set

Tools. Compiler Plugins

  • KT-69646 PowerAssert: result of array access operator is unaligned
  • KT-70112 Power Assert: multiline assertion support
  • KT-70504 [atomicfu-plugin] Incremental compilation fails for atomic extensions on JVM
  • KT-70351 K2 CodeGen API exception triggered by a compose compiler plugin lowering transformer for data class example
  • KT-70113 Power Assert: tab support
  • KT-69806 K2: SOE on nested plugin-like annotation in class annotated with itself
  • KT-69538 jvm-abi-gen: Remove copy$default if data class constructor is private and ConsistentCopyVisibility is used

Tools. Compiler plugins. Serialization

  • KT-70110 Prohibit @Serializable on companion object of another @Serializable class
  • KT-69388 Serialization: "You should use ConeClassLookupTagWithFixedSymbol" caused by @Serializable on local generic class

Tools. Daemon

  • KT-35381 Get rid of the native-platform usage in kotlin compiler

Tools. Fleet. ObjC Export

  • KT-70642 ObjCExport: translate collection type arguments as id
  • KT-70546 ObjCExport: method generic parameter is lost and translated as id
  • KT-70329 ObjCExport: translation and forward of super generic types
  • KT-70263 ObjCExport: generic extension support
  • KT-69685 ObjCExport: extension translated as not extension
  • KT-70318 ObjCExport: translate companion type
  • KT-69252 ObjCExport: Get rid of context receivers from ./native/objcexport-header-generator

Tools. Gradle

New Features

  • KT-68345 'composeCompiler#stabilityConfigurationFile' doesn't allow setting multiple stability configuration files
  • KT-65125 Provide basic support for Swift Export in Kotlin Gradle Plugin

Fixes

  • KT-69331 Run tests against Gradle 8.9 release
  • KT-69332 Compile against Gradle 8.9 API
  • KT-67174 Cleanup old Test DSL
  • KT-69719 Bump minimal supported Gradle version to 7.6.3
  • KT-71071 BuildFusStatisticsIT.testInvalidFusReportDir test failes on Windows
  • KT-53280 Gradle plugin leaks some compiler related extensions into API
  • KT-70251 Gradle: hide compiler symbols in KGP
  • KT-69255 Deprecate KotlinCompilationOutput#resourcesDirProvider
  • KT-61706 Gradle: remove kotlin-compiler-embeddable from build runtime dependencies
  • KT-69585 KGP / Composite Build: "Could not apply withXml() to generated POM" during publishing
  • KT-69721 Bump minimal supported Android Gradle plugin version to 7.3.1
  • KT-59769 Many "Unexpected exception happened" warnings during build without internet connection
  • KT-69329 Compatibility with Gradle 8.9 release

Tools. Gradle. Cocoapods

  • KT-63811 cinterop fails to build klib for iosArm64 target when iOS simulator SDK isn't installed
  • KT-70500 Remove useLibraries from CocoaPods plugin
  • KT-56947 Replace AFNetworking with a smaller library in tests

Tools. Gradle. JS

  • KT-70621 Move kotlin-test-js-runner out of Kotlin repository
  • KT-67442 KJS / Gradle: kotlinStorePackageLock fails due to OS-dependent lockfile with npm package manager

Tools. Gradle. Multiplatform

New Features

  • KT-70469 Add feature flag for Project Isolation and Kotlin Multiplatform

Fixes

  • KT-70700 Gradle 8.10: The value for task ':commonizeNativeDistribution' property 'kotlinNativeBundleBuildService' cannot be changed any further
  • KT-62911 Export Kotlin Multipaltform Project Coordinates as a secondary variant of apiMetadataElements
  • KT-71396 Gradle client side JVM explodes with OOM due to xcodebuild logs
  • KT-70650 GenerateProjectStructureMetadata is not compatible with Project Isolation
  • KT-69614 Deprecate with error ios/tvos/watchos presets
  • KT-64998 Granular Metadata Dependencies Transformation is not compatible with Project Isolation
  • KT-64996 Commonize Native Distribution task is not compatible with Project Isolation
  • KT-64999 Support Project Isolation with Kotlin Native tasks (XCode integration, Cocoapods etc)
  • KT-70688 Move ExperimentalSwiftExportDsl to another package
  • KT-70612 Report incompatibility warning when Project Isolation enabled and Included builds are used
  • KT-57280 Expose Kotlin Project Structure metadata via consumable configurations instead of accessing all gradle projects directly
  • KT-69899 KMP: Publish BuildType by default for android publications with multiple variants
  • KT-70060 KGP: handleHierarchicalStructureFlagsMigration doesn't support project isolation
  • KT-69323 Don't pass platform dependencies to metadata compilation
  • KT-58298 AndroidAndJavaConsumeMppLibIT maintenance: Convert to new infrastructure and add test for newer AGP versions
  • KT-69472 Remove IncompatibleAgpVersionTooHighWarning diagnostic
  • KT-68976 K2 IDE: Unresolved FileSystem.SYSTEM from OKIO in shared source sets

Tools. Gradle. Native

  • KT-55832 Support passing errors to Xcode when configuration cache is enabled
  • KT-71419 Light bundle KGP IT run against a stable K/N version
  • KT-70690 not possible to build iOS app with Swift Export and Xcode 16
  • KT-65838 Remove project usage from PlatformLibrariesGenerator
  • KT-70875 KSP1 native tasks fail on configuration phase
  • KT-67162 KGP: Kotlin/Native with Isolated Projects: kotlinNativeBundleBuildService cannot be changed any futher

Tools. JPS

  • KT-71042 JAVA_MODULE_DOES_NOT_READ_UNNAMED_MODULE when compiling IntelliJ

Tools. Kapt

  • KT-69860 K2 kapt: use compiler directly instead of Analysis API
  • KT-70600 K2 KAPT: inline reified function has a null signature
  • KT-70718 Kapt: "error: could not load module " on error type in data class component
  • KT-69861 Kapt: use IR to obtain line information instead of PSI

Tools. Scripts

  • KT-68545 Using labeled this access to implicit receivers fails in scripts

Tools. Wasm

  • KT-70100 wasmJs Target Fails to Compile on ARM64 Linux
  • KT-70297 Wasm: Incorrect kotlinJsTestRunner version set in Multi-Project Builds with mixed kotlin-stdlibs