Changelog
Analysis. API
New Features
KT-68603KotlinDirectInheritorsProvider: add an option to ignore non-kotlin resultsKT-69961resolveToCallCandidatesshould support propertiesKT-69960resolveToCallCandidatesshould support operators
Performance Improvements
KT-70757Performance problem in KaFirVisibilityChecker for KaFirPsiJavaClassSymbolKT-70529KaSymbol: reduce the number ofcachedusages
Fixes
KT-65618K2: resulted FirClass.psi != requested PsiClass from completionKT-70323FirLazyResolveContractViolationException:lazyResolveToPhase(TYPES)cannot be called from a transformer with a phase TYPESKT-69535Redesign 'containingSymbol'KT-70859Do not fail highlighting due to resolution problemsKT-67483K2 IDE: Serializable plugin causes infinite resolve recursion when there is a star import from a class with annotation callKT-63490Analysis API: Accessing the Analysis API should be prohibited during dumb modeKT-69416K2 IDE / Completion: “No classifier found” on simple value creatingKT-70663KaFirDestructuringDeclarationSymbol: Failed requirementKT-70662NPE: FirLazyBodiesCalculatorKt.calculateLazyBodyForPropertyKT-70661Invalid FirDeclarationOrigin ScriptTopLevelDestructuringDeclarationContainerKT-70624Declaration symbols from code fragments are treated as not localKT-70257CCE: class kotlin.UInt cannot be cast to class java.lang.NumberKT-69070Analysis API: Querying declared member scope for Java symbols results in exception in some use casesKT-70199K2: ConcurrentModificationException at FirCallCompleter$LambdaAnalyzerImpl.analyzeAndGetLambdaReturnArgumentsKT-70376K2 IDE / Kotlin Debugger: IAE “Only componentN functions should be cached this way, but got: toString” on evaluating toString() method for value classKT-70264AA: service registration via XML fails with AbstractMethodError in Lint CLIKT-69381Analysis API: Investigate the viability of currentKaSymbolcachesKT-69950Analysis API: IntroduceisSubtypeOf(ClassId)KT-68625K2: “lazyResolveToPhase(STATUS)cannot be called from a transformer with a phase STATUS.”KT-67009Analysis API: Add abbreviated type tests for type aliases from source modulesKT-69977KaFirFunctionalType#getAbbreviation is always nullKT-68341Analysis API: Expanded function types from libraries don't have an abbreviated typeKT-68857Analysis API: Refactor annotationsKT-70386Do not filter out overloads from different libraries in dangling filesKT-65552K2: CANNOT_CHECK_FOR_ERASED in KtTypeCodeFragmentKT-69360Lack of implicit receiver for the last statement under lambda in scriptsKT-69699Receiver type is not substituted in the case of conflict declarationsKT-70206anonymousSymbolAPI throws an exception for regular functionsKT-65803K2: Analysis API: KtFirTypeProvider#getSubstitutedSuperTypes throws an exception in the case of "Wrong number of type arguments"KT-68896Support VirtualFile binary dependency inputs to Analysis API modulesKT-69671TYPES phase contract violation through JavaSymbolProviderKT-69395K2 IDE: incorrect overload selection from binary dependencies in a shared native source setKT-68573ISE: "Unexpected constant value (kotlin/annotation/AnnotationTarget, CLASS)" at Kt1DescUtilsKt.toKtConstantValue()KT-69576Analysis API: FIR implementation of "isImplicitReferenceToCompanion" returns false for companion references in implicit invoke operator callsKT-69568Analysis API: FIR implementation of "isImplicitReferenceToCompanion" returns true for non-companion references in qualified callsKT-55124Design common ancestor for KtValueParameter and KtReceiverParameterSymbolKT-69436Analysis API Platform: EncapsulateLLFirDeclarationModificationServiceas an engine serviceKT-63004K2: Analysis API: Design API for querying declarations generated by compiler plugins (similar to indices)KT-69452AA FIR: wrong source PSI after compile-time evaluationKT-69679KaDelegatedConstructorCall should have substituted signatureKT-69696KaSymbolByFirBuilder should filter call-site substitutionsKT-69598AA: definitely not-null type at receiver position should be wrapped in parenthesisKT-60484Analysis API: add support for KtType pointers similar to KtSymbolPointerKT-68884Analysis API: Rename/deprecate/remove declarations as part of StabilizationKT-69292K2: Analysis API: A property'sMUST_BE_INITIALIZEDdiagnostic is not updated after changingfieldusage in an accessorKT-69453AA FIR: miss to handle expected type of lambda with explicit labelKT-69371Analysis API: expose only interfaces/abstract classes for the resolution APIKT-69533Protect implementation parts of Analysis API with opt-in annotationsKT-68268LLSealedInheritorsProvider: reduce scope to kotlin files
Analysis. Light Classes
KT-70710Provide light classes for KMP modules in Android LintKT-70548SLC: text of class object access expression is not the same as raw textKT-70572SLC: missingisInheritorimplementation for type parameterKT-70491SLC: inconsistent source PSI of no-arg constructor for all default valuesKT-70458SLC: missedauxiliaryOriginalElementfor delegated propertyKT-70232Support a companion object inside value classesKT-70349@delegate:` annotations are missed for light class fieldsKT-69833Support value classesKT-69998Drop redundant cache from ClassInnerStuffCacheKT-68328Move KtLightClassBase to ULC
Apple Ecosystem
KT-66262Deprecate and remove support for bitcode embedding from the Kotlin Gradle pluginKT-69119xcodeVersion task fails if Xcode isn't installed and apple-specific native targets aren't declared
Backend. Wasm
KT-70786Improve DX of the variable view during debugging in Chrome/Firefox for Kotlin/WasmKT-68185[WasmJs] Attach js exception object to JsExceptionKT-65799K/Wasm: remove default exports from wasm exportsKT-61130K/Wasm: Function signatures may clash with base class internal methods from a friend moduleKT-70394Investigate increased wasm binary size after switching stdlib compilation to K2KT-69627Removecreate###Arrayfunctions from WASM stdlibKT-68509Fatal: error validating input in compileProductionExecutableKotlinWasmJsOptimize
Compiler
New Features
KT-69321Swift export: enable auto-linkage of binary dependenciesKT-59798Builder inference is not working when combined withletexpressionKT-11526Improve diagnostics for "X overrides nothing"KT-21908Support 'when' exhaustiveness checking for generic type parameter with sealed class upper boundKT-49710False positive NO_ELSE_IN_WHEN with nullable type as receiverKT-69729Support calling super interface Java methods from Kotlin interfaceKT-69508Improve "Public-API inline function cannot access non-public-API" check for the inline property accessors
Performance Improvements
KT-69718K2: Check for jvm nullability annotations in fir2ir is slow
Fixes
KT-66328K2: implement an error for KT-66324KT-70584K2: "IllegalStateException: flow for PostponedLambdaExitNode not initialized - traversing nodes in wrong order?"KT-70808K2: "node has already been visited" with anonymous object in dead codeKT-70850Pull down typeArguments from ConeKotlinType to ConeClassLikeTypeKT-64741Avoid leaking ConeTypeVariable types in diagnostics from PCLAKT-60447Builder inference fails to infer generic type argument from local classKT-69170K2: "Unresolved reference" caused by generics and fun interfacesKT-63502Getting java.lang.ClassNotFoundException: javaslang.λ during compilationKT-70893K2: Bogus NO_COMPANION_OBJECT on resolve to private qualifierKT-69985K2: Classifier declarations from root package are resolved without imports in non-root packagesKT-70683K2: Internal compiler error in IrFakeOverrideSymbolBase.getOwnerKT-63945K2: Prevent possible diagnostic lossKT-70901False positive Public-API inline function cannot access non-public-API property accessorKT-70395K2: "Captured Type does not have a classifier" caused byouttype and interface hierarchyKT-70667K2: "Type parameter * has inconsistent bounds" caused by wildcard and where-clauseKT-70133K2: false negative UNINITIALIZED_VARIABLE when postponed lambda is created before initializationKT-70306K2: Lambdas are unserializable: inferred from Java param? super IKT-70625K2: ClassCastException caused by function reference, star projection and invariant type parameterKT-70835K2: "TYPE_MISMATCH" caused by operator assignmentKT-70366K2: "KotlinIllegalArgumentExceptionWithAttachments: Failed to find functional supertype for class "KT-68834Parentheses don't influence calls of any convention operators (except invoke operator) after safe navigation operatorKT-70358K2: "java.lang.IllegalArgumentException: No type for StarProjection" when using a star projection on a function typeKT-69298K2: "Initializer type mismatch" caused by elvis operator type inference for nullable typealiasKT-70461K2: "Inline class types should have the same representation" caused by value class and smart checkKT-69829Missed UNRESOLVED_LABEL for label in returns and loopsKT-61223JDK 21: new addFirst/addLast and putFirst/putLast methods allow adding nullable value for non-null typesKT-66742Supertypes with inaccessible type arguments are allowedKT-62906Type system: consider changing simple type & DNN type relationKT-65805Migrate builtins serializer to K2KT-71004FirSignatureEnhancement#enhance mutates attributes on the original functionKT-70813Questionable behavior for calls on ILT receiversKT-70208'when' is not exhaustive for expect BooleanKT-69210Native: tune LLVM optimization pipelineKT-70753K2: Missing non-null assertion on the return value of try-catch blockKT-69756TypeOfLowering: don't create constant object nodes before inliningKT-70012EXTENSION_SHADOWED_BY_MEMBER shouldn't be reported for actual declarationsKT-70194K2 IDE: exception on a very red fileKT-70837K2. "Expected FirResolvedTypeRef with ConeKotlinType but was FirImplicitTypeRefImplWithoutSource" on incorrect call with extension funKT-66751Implement a general deprecation of types with inaccessible type argumentsKT-68748K2: RemoveirFactoryfromFir2IrComponentsKT-68893Invalid annotation in contract crashes with K2KT-61659K2: Implement theEXTENSION_SHADOWED_BY_MEMBERwarningKT-70709Range for MUST_BE_INITIALIZED shouldn't include property annotationsKT-70756K2. Compiler crash with FileAnalysisException on incorrect symbol in nesting lambdaKT-63294Do not use duplicated compiler argument names across the codebaseKT-65349Changes in smart casting in K2 w.r.t. propagation of informationKT-66612K2: Correctly compute java overrides for member-extension propertiesKT-70673False positive NO_ELSE_IN_WHEN with nullable Boolean as subjectKT-70672False positive NO_ELSE_IN_WHEN with nullable Enum as subjectKT-69207Native: use lld when the compiler produces binaries for a Linux targetKT-67696Native: compiler crashes when loading an LLVM bitcode file of unsupported versionKT-69767K2: Investigate differences in tests without alias behavior for cyclic expansionKT-70617K2: ClassCastException caused by Java enum with overriddennamepropertyKT-68796Non-first invoke operator calls break chained calls of convention operators after safe navigation operatorKT-67772K2: Metadata misses NoInfer annotation for unsafeCast resultKT-70304[FIR2IR] Missing@NoInferKT-65085K2: Get rid of special check for unresolved array literals on argument mapping phaseKT-65066K1 crashes, K2 doesn't report type mismatch on array literal inside nested annotation callKT-49235Kotlin interface limited to 1000 super typesKT-69991K2/JVM: Backend crash with functional types and KFunctionsKT-7461Forbid using projection modifiers inside top-level Array in annotation's value parameterKT-52315Legacy keywords (header, impl) break enum definitionsKT-69499Native: aggressive inline of runtime procedures causes compiler crash in debug buildsKT-69737Native: incompatible target-cpu attributes between runtime and Kotlin codeKT-69911Unexpected line numbers in default setterKT-61529K2: Unexpected FirClassLikeSymbol null with -no-jdkKT-69475K2: No "Name contains illegal characters" for package name with dots insideKT-69484Native: remove default values forisObjectTypeKT-70352K2: False-negative CONFLICTING_UPPER_BOUNDS onNothingboundKT-59781K2: investigate implicit cast generation in fir2ir vs psi2irKT-70036[FIR2IR] Fix param name in overridden setterKT-68653Switch latest stable language version in Kotlin project to 2.1KT-68718[JVM] Generic function is instantiated with wrong type argumentKT-70328K2:@UnsafeVariancestored in the metadata despite the Source retentionKT-70313K2: Don't addAnysupertype tokotlin.Nothingcompiled from sourcesKT-61033K2: implement a diagnostic corresponding to K1's MISSING_BUILT_IN_DECLARATIONKT-69982K2: New errors when executing:kotlin-stdlib:jvmJarKT-70169K2: implement a deprecation error for Synchronized, Throws, JvmField on annotation parametersKT-67651K2: inconsistency in behavior for SAM constructor with flexible typeKT-63857K2: Extraoperatormodifier in metadataKT-70182K2: Set upisOperatorflag according to operator naming conventions during building synthetic overrides for Java methodsKT-20798Implement a deprecation warning for reified modifier on type parameters of type aliasKT-68697K2 IDE / Kotlin Debugger: NSEE “List is empty.” when method reference is used in some place in codeKT-68702K2 IDE: AE “SyntheticAccessorLowering should not attempt to modify other files!” on evaluating of supermethods toString() and hashCode()KT-69509K2 IDE / Kotlin Debugger: exception in lowering ReplaceKFunctionInvokeWithFunctionInvoke when compiling code fragmentKT-66323K2: Clarify contracts ofConeSubstitutorByMapKT-69652K2: False positive "Redundant visibility modifier" with explicitApi()KT-65815K2: False-positive NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY with inline function returning Nothing?KT-60508K2/stdlib: compilation of common code fails if built-in types are provided as platform sourcesKT-70037K2: Generate IR body forAnyconstructor despite that fact it's emptyKT-69599K2: Investiage and fix lots ofUNRESOLVED_REFERENCEduring building stdlib native with K2KT-68375K2: FirPrimaryConstructorSuperTypeChecker fails on generated superclassesKT-58309Deal with test failures inside FirTypeEnhancementTestGeneratedKT-27112Implement prohibition of exposing types via type parameters' boundsKT-69831Add long FastJarFS tests to thenightlyFirCompilerTestconfigurationKT-69537K2: Unintentional behavior caused by InferMoreImplicationsFromBooleanExpressionsKT-59814K2: Explore whyFirDataFlowAnalyzerstrips away value parameters of non top-level-functionsKT-69920K2: java.lang.IllegalArgumentException: FirNamedArgumentExpressionImpl.replaceConeTypeOrNull() during Space project compilationKT-69069K2: expect overloads are deprioritized in common codeKT-69739K2: "KotlinIllegalArgumentExceptionWithAttachments: Unexpected FirPlaceholderProjectionImpl" caused by unresolved referencesKT-69511KJS / K2: False positive IMPLICIT_BOXING_IN_IDENTITY_EQUALS when comparing dynamic with primitiveKT-63944Kotlin/Native: Cache flavor selection doesn't respect GC kindKT-69500Native: introduce an option to inline less "ALWAYS_INLINE" runtime proceduresKT-69717K2: Don't callconeType/coneTypeOrNullextensions onFirResolvedTypeRefKT-60440K2/Java: investigate constructor own type parameters enhancementKT-69871K2 allows modifier keywords onpackagedeclarationKT-61271Frontend: "The label does not denote a loop." error message is used even if the label does denote a loopKT-69768K2: Investigate differences in tests without alias behavior with typealias to enum entryKT-63846K2: incorrect type argument inferred for smart cast value of a generic typeKT-69774Don't report overload resolution ambiguity if extension receiver contains error typeKT-61316K2: Consider throwing exception when replaceType is called on special FirExpressions with immutable typesKT-69399Native: IllegalStateException: "Failed to build cache"KT-69564Make using -Xuse-k2 compiler flag an errorKT-69201Discard expect candidate in overload conflict resolver if there is no actualKT-69735K2: Static fields are missing from the declaration list of corresponding IrClass for java classKT-69783K2: Make FirTypeProjection sealedKT-68000Investigate getting container functions in checkersKT-69649K2: Cleanup various utilities abouttoSymbolconversionKT-69185K2: Prepare a test runner for diagnostic tests with type aliases non-expanded automaticallyKT-69390UNRESOLVED_REFERENCE on call with lambda argument turns whole call redKT-68794K2 IDE / Kotlin Debugger: ISE “No real overrides for FUN FAKE_OVERRIDE name:privateFun visibility:private modality:FINAL” on calling private function from superclass in debuggerKT-69315FirJavaGenericVarianceViolationTypeChecker: StackOverflowErrorKT-49962"Visibility inherited is not allowed in forVisibility" when analyzing broken fileKT-24212Report "This class shouldn't be used in Kotlin" on calling constructor of Java class with Kotlin analogKT-64195K2: Consider makeFirAnonymousInitializer. containingDeclarationSymbolnot nullKT-64254"Projections are not allowed on type arguments of functions and properties": Type-project type arguments of propertiesKT-40533Error message PROPERTY_WITH_NO_TYPE_NO_INITIALIZER for interface property is not fully correctKT-20014Improve diagnostics for lateinit property without initializer and type annotationKT-51366False positive error "Value class cannot extend classes" when extending generic interface with wrong number of type argumentsKT-69407K2: Compiler crash (Shouldn't be here) due to unresolved reference in FirProjectionRelationCheckerKT-69294K2: ReportCONSTRUCTOR_OR_SUPERTYPE_ON_TYPEALIAS_WITH_TYPE_PROJECTION_ERRORinstead ofEXPANDED_TYPE_CANNOT_BE_INHERITEDafter switching to LV 2.1KT-68277K2: false positive UNREACHABLE_CODE for non-localreturn/breakKT-69544K2: Mapped Java@Targetannotation's vararg argument has swapped type and elementTypeKT-68998K2: Refactor postponed atomsKT-69288Native: Apple LLVM 16 fork can't read bitcode with memory attribute produced by upstream LLVM 16KT-67808K2: Inconsistent properties initialization analysis in init blocks in presence of smartcast on thisKT-68933CompilationException: Back-end: Could not get inlined classKT-69035K2: Investigate potential removal of FirManglerKT-64640Prevent mutating SequenceCollection methods from JDK 21 be available on read-only collectionsKT-65441K1: Remove JDK 21 getFirst()/getLast() in (Mutable)List interfacesKT-54792Store program order of properties inside@kotlin.Metadata
Compose compiler
New features
83c48a0Decoy support for JS target is removed from Compose compiler
Fixes
b/325004814[Compose] Fix infinite recursion in target analysisb/357878245Disallow open@Composablefunctions with default params to fix binary compatibility issues.b/338597078[Compose] Fix target warning messageb/351858979Fix stability inferencing of interfaces on incremental compilationb/346821372[Compose] Fix code generation for group optimizationb/339311821Give warning when stability configuration file is not foundb/346821372Fixes group generation for if statements when nonSkippingGroupOptimization is enabled.
IDE. Gradle Integration
KT-48554[Multiplatform Import] Ensure consistency betweenGradleImportPropertiesandPropertiesProvider
IR. Actualizer
KT-70894IR crash. UnprocessedIrFunctionFakeOverrideSymbolwhen actualize to JavaKT-69632K2: Expect actual mismatch on actualization with alias to expect class
IR. Inlining
New Features
KT-69527Set the right visibility for synthetic accessors in SyntheticAccessorLowering
Fixes
KT-69802Don't extract local classes from inline functions in double inlining modeKT-67292Handling assertions before the IR inlinerKT-69169Expand assertion intrinsics in backend based on CLI parametersKT-69168Wrap assertion calls before IR inlinerKT-69167Create intrinsics in stdlib for handling assertions in KLIB-based backendsKT-70763IR inline: consider storing stub_for_inline as an inlined function for callable referenceKT-70423KLIB: SyntheticAccessorLowering - generate static factory functions instead of synthetic constructorsKT-70693IR: replace IrReturnableBlock.inlineFucntion with IrInlinedFunctionBlock.inlineFucntionKT-67172Native & JS: Introduce OuterThisInInlineFunctionsSpecialAccessorLoweringKT-69462Support dumping IR after inlining in compiler testsKT-69787Handle clashes of synthetic accessors generated for top-level callablesKT-69174Implement the basic Synthetic Accessors Lowering for KLIB-based backendsKT-69700Inlinestub_for_inlininguse sites survive after the inlinerKT-67170ArrayConstructorReferenceLowering is missing in NativeKT-69172Implement double-inlining for Native
IR. Interpreter
KT-70388K2 IDE / Kotlin Debugger: InterpreterError “Unsupported number of arguments for invocation as builtin function: INT_MAX_POWER_OF_TWO” during evaluation
IR. Tree
KT-70333IR: remove ability to apply compiler plugins during KAPT stub generation phaseKT-70330Automatically keep track of IrValueParameter.indexKT-65773Auto generate IR implementation classesKT-68495Compile-time failure on bounded generic value used in a contains-check with rangeKT-68151Setup testing visibility of referenced declarations in IRKT-68988[Tests] Streamline the order of irFiles in IR- and Kotlin-like dumpsKT-68974Validate scopes of IrValueParameters in IrValidator
JavaScript
New Features
KT-70283KJS / ES6: Don't generate bind(this) calls for anonymous functions that capturethisKT-70254K/JS: Generate arrows in ES6 mode instead of anonymous functions
Fixes
KT-31799Allow non-identifier characters in Kotlin/JS (backquoted properties,@JsName)KT-69928KJS: keys() and values() of KtMap's JS view don't behave as expectedKT-68975KJS: Investigate callingjs(...)from inline functionsKT-70231Delete the org.jetbrains.kotlin.cli.js.dce.K2JSDce classKT-70393Investigate failing JS test after switch stdlib compilation to K2KT-55869Coroutine is not intercepted, when the coroutine is started callingstartCoroutineUninterceptedOrReturnusing callable referenceKT-70221Rename org.jetbrains.kotlin.cli.js.K2JsIrCompiler to K2JSCompilerKT-70219Delete the org.jetbrains.kotlin.cli.js.K2JSCompiler classKT-66181Reorganize JsCodeOutliningLowering and keep it before the IR inlinerKT-69587[Tests] Fix multi-module deserialization in JS irText testsKT-69892Array.isArray() returns false for an instance returned by KtList.asReadonlyArrayView()KT-64429K2: Implement KlibJsIrTextTestCaseGenerated for K2KT-69173Implement double-inlining for JSKT-69642ES generator-based coroutines rely on evalKT-67327JS: Remove error tolerance
KMM Plugin
KT-71011AS KMP plugin: ios application can't start for 2024.2.1
Klibs
KT-68322Compiler (JS, Wasm): warn about incompatible Kotlin stdlib/compiler pairKT-70146[KLIB Resolve] Don't fail on nonexistent transitive dependencyKT-68195move KlibMetadataProtoBuf to frondend-independent moduleKT-68792Bump KLIB ABI version in 2.1
Language Design
KT-65004K1: Setter of var, which overrides protected val, is generates as publicKT-64972Forbid overriding by private members in link-time for Kotlin/Native
Libraries
KT-56076K2: build Kotlin standard libraryKT-65526Rewrite builtins as expect-actualKT-68502K2: Fix or suppress stdlib K2 warningsKT-68731K2: Handle some formally incompatible expect/actual classes in JVM stdlibKT-70378Implement custom serialization for UuidKT-70005K/Wasm and K/Native: IntArray.sort - array element access out of boundsKT-69817Set up klib binary API validation for stdlibKT-68396Handle some formally incompatible top-level expects/actuals callablesKT-69524kotlin.uuid.Uuid: checkHyphenAt - error message always specified index 8KT-69327[native] FloatingPointParser.initialParse works incorrectly for some inputs
Native
KT-49279Kotlin/Native: update LLVM from 11.1.0 to 16.0.0KT-61299Native: patch LLVM to prevent it from using signal handlers incompatibly with JVMKT-69637Native: our LLVM shouldn't advise submitting bugs to the upstreamKT-64636kotlin.incremental.native=true causes IrLinkageError
Native. Build Infrastructure
KT-69479Native: remove custom python version building from the LLVM builder container imageKT-63214[K/N] llvm build script fails with MacOSX14.0.sdk sysroot
Native. C Export
KT-69507LLVM 11 clang with Xcode 16 headers: standard c++ headers
Native. C and ObjC Import
KT-71029Investigate why stdarg.h declarations leak into testModuleA
Native. ObjC Export
KT-62997IllegalStateException for hashCode(): KClass for Objective-C classes is not supported yetKT-59497KClass.simpleName returns null in ObjC-inherited class
Native. Platform Libraries
KT-69448LLVM 16 clang with Xcode 16 headers: 'sys/cdefs.h' file not found
Native. Runtime
KT-67730Native: fix runtime compilation warnings after update to LLVM 16
Native. Runtime. Memory
Native. Swift Export
KT-70442Swift Export: export class inheritanceKT-70063Swift export generates invalid Swift code for class and function with the same nameKT-70069Swift export: filter out extension propertiesKT-70068Swift export: nullable types are not marked as unsupportedKT-68864Refactor internal details of swift-export-standaloneKT-69287Swift Export: support leaking dependenciesKT-69633Provide interface for multiple module translationKT-69286[Swift Export][TestInfra] Support translating multiple rootsKT-69376Property with Any type does not force addition of import
Native. Testing
KT-70603C++ with -fmodules: cyclic dependency in module 'std': std -> _wctype -> __wctype -> std in dev llvm toolchainsKT-69181Native tests infrastructure: link Swift export tests staticallyKT-71028Run atomicfu compiler plugin K/N tests against K2KT-65593[K/N] Reorganize tests build configurationsKT-70538[K/N] StdlibTest — initializationErrorKT-70594[K/N] Fix ObjC export tests in FirFrameworkTestKT-70120[K/N][Tests] Re-enable FirFrameworkTest in ONE_STAGE_MULTI_MODULE
Tools. CLI
KT-69541K2: "IllegalArgumentException: Unexpected versionNeededToExtract" on using JAR packaged as ZIP64KT-69434K2: Kotlin compiler JarFS can't handle large dependencies (>2GB)KT-8087Make it possible to suppress warnings globally in compiler (via command-line option)KT-70959K2: Support legacy metadata jar format in K2 compilerKT-70337Obsolete code is not removed after refactoring -JvmEnvironmentConfigurator.registerModuleDependenciesKT-70322Merge CLITool and CLICompiler classes
Tools. CLI. Native
KT-71262KotlinNativeLink tasks fetching from network despite -Xoverride-konan-properties=dependenciesUrl= being set
Tools. Compiler Plugins
KT-69646PowerAssert: result of array access operator is unalignedKT-70112Power Assert: multiline assertion supportKT-70504[atomicfu-plugin] Incremental compilation fails for atomic extensions on JVMKT-70351K2 CodeGen API exception triggered by a compose compiler plugin lowering transformer for data class exampleKT-70113Power Assert: tab supportKT-69806K2: SOE on nested plugin-like annotation in class annotated with itselfKT-69538jvm-abi-gen: Remove copy$default if data class constructor is private and ConsistentCopyVisibility is used
Tools. Compiler plugins. Serialization
KT-70110Prohibit@Serializableon companion object of another@SerializableclassKT-69388Serialization: "You should use ConeClassLookupTagWithFixedSymbol" caused by@Serializableon local generic class
Tools. Daemon
KT-35381Get rid of the native-platform usage in kotlin compiler
Tools. Fleet. ObjC Export
KT-70642ObjCExport: translate collection type arguments as idKT-70546ObjCExport: method generic parameter is lost and translated as idKT-70329ObjCExport: translation and forward of super generic typesKT-70263ObjCExport: generic extension supportKT-69685ObjCExport: extension translated as not extensionKT-70318ObjCExport: translate companion typeKT-69252ObjCExport: 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 filesKT-65125Provide basic support for Swift Export in Kotlin Gradle Plugin
Fixes
KT-69331Run tests against Gradle 8.9 releaseKT-69332Compile against Gradle 8.9 APIKT-67174Cleanup old Test DSLKT-69719Bump minimal supported Gradle version to 7.6.3KT-71071BuildFusStatisticsIT.testInvalidFusReportDir test failes on WindowsKT-53280Gradle plugin leaks some compiler related extensions into APIKT-70251Gradle: hide compiler symbols in KGPKT-69255Deprecate KotlinCompilationOutput#resourcesDirProviderKT-61706Gradle: remove kotlin-compiler-embeddable from build runtime dependenciesKT-69585KGP / Composite Build: "Could not apply withXml() to generated POM" during publishingKT-69721Bump minimal supported Android Gradle plugin version to 7.3.1KT-59769Many "Unexpected exception happened" warnings during build without internet connectionKT-69329Compatibility with Gradle 8.9 release
Tools. Gradle. Cocoapods
KT-63811cinterop fails to build klib for iosArm64 target when iOS simulator SDK isn't installedKT-70500Remove useLibraries from CocoaPods pluginKT-56947Replace AFNetworking with a smaller library in tests
Tools. Gradle. JS
KT-70621Move kotlin-test-js-runner out of Kotlin repositoryKT-67442KJS / Gradle:kotlinStorePackageLockfails due to OS-dependent lockfile with npm package manager
Tools. Gradle. Multiplatform
New Features
KT-70469Add feature flag for Project Isolation and Kotlin Multiplatform
Fixes
KT-70700Gradle 8.10: The value for task ':commonizeNativeDistribution' property 'kotlinNativeBundleBuildService' cannot be changed any furtherKT-62911Export Kotlin Multipaltform Project Coordinates as a secondary variant of apiMetadataElementsKT-71396Gradle client side JVM explodes with OOM due to xcodebuild logsKT-70650GenerateProjectStructureMetadata is not compatible with Project IsolationKT-69614Deprecate with error ios/tvos/watchos presetsKT-64998Granular Metadata Dependencies Transformation is not compatible with Project IsolationKT-64996Commonize Native Distribution task is not compatible with Project IsolationKT-64999Support Project Isolation with Kotlin Native tasks (XCode integration, Cocoapods etc)KT-70688Move ExperimentalSwiftExportDsl to another packageKT-70612Report incompatibility warning when Project Isolation enabled and Included builds are usedKT-57280Expose Kotlin Project Structure metadata via consumable configurations instead of accessing all gradle projects directlyKT-69899KMP: Publish BuildType by default for android publications with multiple variantsKT-70060KGP: handleHierarchicalStructureFlagsMigration doesn't support project isolationKT-69323Don't pass platform dependencies to metadata compilationKT-58298AndroidAndJavaConsumeMppLibIT maintenance: Convert to new infrastructure and add test for newer AGP versionsKT-69472Remove IncompatibleAgpVersionTooHighWarning diagnosticKT-68976K2 IDE: Unresolved FileSystem.SYSTEM from OKIO in shared source sets
Tools. Gradle. Native
KT-55832Support passing errors to Xcode when configuration cache is enabledKT-71419Light bundle KGP IT run against a stable K/N versionKT-70690not possible to build iOS app with Swift Export and Xcode 16KT-65838Remove project usage from PlatformLibrariesGeneratorKT-70875KSP1 native tasks fail on configuration phaseKT-67162KGP: Kotlin/Native with Isolated Projects: kotlinNativeBundleBuildService cannot be changed any futher
Tools. JPS
KT-71042JAVA_MODULE_DOES_NOT_READ_UNNAMED_MODULEwhen compiling IntelliJ
Tools. Kapt
KT-69860K2 kapt: use compiler directly instead of Analysis APIKT-70600K2 KAPT: inline reified function has a null signatureKT-70718Kapt: "error: could not load module " on error type in data class componentKT-69861Kapt: use IR to obtain line information instead of PSI
Tools. Scripts
KT-68545Using labeledthisaccess to implicit receivers fails in scripts