Changelog
Analysis. API
New Features
KT-65327Support reading klib contents in Analysis API
Performance Improvements
KT-65560K2: Anaysis API: ContextCollector triggers redundant resolution in the case of file elements
Fixes
KT-65571Support VirtualFile inputs to Analysis API modulesKT-65600Analysis Api: FirFile for KtCodeFragments are created and not updated on changesKT-64579K2 IDE: "Expected FirResolvedArgumentList for FirAnnotationCallImpl of FirValueParameterImpl(Source) but FirArgumentListImpl found"KT-65978Analysis API: Use soft references inFileStructureCacheKT-64051K2 IDE: Analysis API: Unresolved links to typealias in KDocKT-66276K2: Analysis API:TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEMfalse positive for script parameterKT-66232K2: Analysis API: cover ScriptWithCustomDefDiagnosticsTestBaseGenerated by LL FIR testsKT-60996K2: Stub Based Deserializer: Set versionRequirements to enable VERSION_REQUIREMENT_DEPRECATION diagnosticsKT-66306K2: Analysis API: drop ability to enable global phase resolve lockKT-64919K2 IDE: Implement KMP support for sealed class inheritorsKT-65563Analysis API: Missing session componentFirExpectActualMatchingContextFactoryinLLFirLibrarySessionKT-66173K2: No 'org.jetbrains.kotlin.fir.scopes.impl.FirDelegatedMembersFilter' in array owner: LLFirLibrarySessionKT-66238Gradle kotlin build scripts - a lot of unresolved symbols after latest changes in kotlin masterKT-65099K2: Recursive local storage cache check for Fir2IrDeclarationStorage::createAndCacheIrPropertySymbols()KT-65265Analysis API: Add library session invalidation testsKT-56288Analysis API: Add tests for session invalidation on the Analysis API sideKT-64000K2: make AnnotationArgumentsStateKeepers more accurateKT-63606K2: Analysis API: rewrite FirLazyAnnotationTransformer to avoid redundant transformationsKT-65191KtFirMultiplatformInfoProvider#getExpectForActual doesn't return expect function for slightly broken codeKT-62136Analysis API: Add concurrent tests forCleanableSoftValueCacheKT-61222K2: Add lifecycle management forKtResolveExtensionKT-65960Analysis API: Test infrastructure indexes binary libraries from decompiled files instead of stubs during IDE mode testsKT-65240K2: 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 moduleKT-65344K2: make FirScript statements (declarations) independentKT-65930AA: receiver type forInt?::foomisses nullabilityKT-65914AA: receiver type forthis::fooreturns return type of the target callableKT-65780K2: polish FileStructure implementation for FirFileKT-62840K2 Script: everything around destructuring declaration on top level of scripts are brokenKT-65683Analysis API: Dangling file session creation causes acomputeIfAbsentcontract violationKT-64884K2 IDE. FP [NAMED_PARAMETER_NOT_FOUND] for copy method of library data class when class has not parameter-propertiesKT-65763K2: value parameter from library data class copy have RAW_FIR phaseKT-65665Analysis API: supportKtDelegatedSuperTypeEntryinKtFirExpressionInfoProvider.isUsedAsExpressionKT-65655Analysis API:KtCodeCompilationExceptionshould not strongly reference FIR sessionsKT-65345K2: unify FirDesignation and LLFirResolveTarget
Analysis. Light Classes
KT-61734SLC: wildcard suppression not honoredKT-65112Symbol Light Classes don't support annotations on type parametersKT-65843K2: Light method returnskotlin.Unittype forTestResultreturn typeKT-65653SLC: wrong binary resolution to function with value classKT-65393SLC: missing deprecated-hidden propertyKT-64772SLC: presence of source PSI for compiler-generated declaration
Apple Ecosystem
KT-62373"Xcode higher than tested" diagnosticKT-64096Diagnostic when embedAndSign used for framework with cocoapods-dependencies
Backend. Native. Debug
KT-65553K2: Native: kt42208WithPassingLambdaToAnotherFunction test fails with K2
Backend. Wasm
New Features
KT-58088[PL] Support & enable partial linkage for WasmKT-66327Include information about particular Wasm target into KLib manifestKT-65009Generate TypeScript definitions for the@JsExportdeclarations in K/Wasm
Fixes
KT-65660[WasmJs] Support catching JS exceptionsKT-64890K/Wasm compiler crash with external class and KodeinKT-66104Wasm: compiler crash: NoSuchElementException: Sequence contains no element matching the predicateKT-66065[Wasm] Make specialisations for closured primitive valuesKT-65778Create the same TypeScript tests infrastructure for Kotlin/Wasm that we have now for Kotlin/JSKT-65411Kotlin/Wasm: Boolean boxed instances are not the sameKT-65713Kotlin/Wasm generates a wrapper that cannot run in DenoKT-65777Implement named export for Kotlin/WasmKT-65824Wasm: Allow unsigned primitives to be used inside functions annotated with@JsExportKT-63939Kotlin/Wasm Support lazy associated object initialisationKT-61888[Kotlin/wasm] in kotlin.test support for@AfterTestfor async tests
Compiler
New Features
KT-64350K2: deprecate using typealias as a callable qualifier in importsKT-65478JVM: Change inlined variable naming formatKT-26565Choose existing extensions over additional built-ins members from JDKKT-65859Calls refinement extension pointKT-45375Generate all Kotlin lambdas via invokedynamic + LambdaMetafactory by defaultKT-65681K2: Improve error message of UPPER_BOUND_VIOLATED when upper bound is a captured type or other non-denotable typeKT-65153K/N: extract liveness analysis to a separate phaseKT-59098Support -Xjdk-release=1.6/1.7 with -jvm-target 1.8KT-63670Implement platform specific declaration clash diagnostics across all backends
Performance Improvements
KT-66341K2: Don't build IdSignatures in FIR2IR with IR f/o builderKT-66172K2: Improve memory consumption ofKtPsiSourceElementKT-62798'in' range checks are not intrinsified in kotlin-stdlibKT-65579K2: performance regression in FP Space
Fixes
KT-66673K2/JS: FirJsInheritanceClassChecker doesn't expand type aliases to supertypesKT-66475K2/KMP/Wasm: report WRONG_JS_INTEROP_TYPE from a platform checkerKT-66474K2/KMP/JS: report EXTERNAL_TYPE_EXTENDS_NON_EXTERNAL_TYPE from a platform checkerKT-66473K2/Wasm: FirWasmExternalInheritanceChecker doesn't expand type aliasesKT-65062K2: build kotlinx.collections.immutable and pass to CIKT-65410K2: ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED for 'removeAt' in KJK hierarchyKT-65377K2: "Argument type mismatch" caused by approximated captured type argument of generic typeKT-65440K2: Mark all potential implementations of List.getFirst()/getLast() as deprecated independently of JDKKT-65184K2: disappeared TYPE_MISMATCH for java collectionsKT-57588K2/Native: False positive '"CONFLICTING_OVERLOADS", "PARAMETER_NAME_CHANGED_ON_OVERRIDE" on overriding objc methodsKT-65882K2: "KotlinNothingValueException" caused by unsafe cast and Nothing::classKT-65438K2: Introduce WEAKLY_HIDDEN concept to built-in-JDK content mappingKT-65959K2: Incorrect warnings about inline function impactKT-64994K2:@Composablelambda type is not resolved from other modulesKT-66048K2: property becomes nullable in KJK hierarchy if base declaration has implicit return typeKT-66148K2. Sources of receivers updated twice because of PCLAKT-65789K1/K2: Resolve change in constructor/top-level function ambiguityKT-60971Incorrect "cannot inline bytecode built with JVM target ..." on property setter if only getter is inlineKT-61514K2: Build fake overrides using IR during Fir2IRKT-65584K2: "Duplicate parameter name in a function type"KT-50008JSpecify@Nullableannotation on type-parameter bound prevents type-variable usages from being platform typesKT-66046K2: false negative CANNOT_WEAKEN_ACCESS_PRIVILEGE on propertyKT-56988CFG, smart casts: red in K1 -> green in K2 for invalid codeKT-58191K2: capturing closures successors that are already resolved (thanks to backward edges) must be taken into account for allowing smart castsKT-65464K2: False positive UNRESOLVED_REFERENCE on extension property call defined in KJK hierarchyKT-62118FIR: "HashMap.entry" has invalid enhanced typeKT-64840K2: Bare type are not allowed for TV based values during PCLAKT-65415K2: Stdlib K2 build error: IrConstructorSymbolImpl is already boundKT-66449Make DiagnosticSuppressor a project-level extensionKT-66411FIR: Real source on fake block around assignment expression in the "when" branch affects resolve in K2 Analysis API and IDEKT-65982K2 Scripts cannot disambiguate declarations imported from default and explicit importsKT-65677K2: Unable to resolve parent class from companion objectKT-66441Remove symbol table from IR fake override builder in Fir2IrKT-58203K2: false-negative incompatible types error on is-check with unrelated typeKT-65722K2: Property reference refers to non-existent functionsKT-65878K2: "ClassCastException" when passing nun-suspend lambda to SAM constructor with named argumentKT-65787K2: "KotlinIllegalArgumentExceptionWithAttachments: Expected FirResolvedTypeRef with ConeKotlinType" caused by passing lambda expression with multiple labels to functionKT-65926K2: add tests for all fixed-in-k2 / not-reproducible-in-k2 unresolved issuesKT-65022K2: Compiler crashes when array literal is used in delegate expressionKT-62836K2: Expected FirResolvedTypeRef with ConeKotlinType but was FirImplicitTypeRefImplWithoutSourceKT-64727K1: Closing bracket of object inside crossinline lambda or inside lambda in inline function is not hit on step-overKT-64726K1: Cannot stop on closing bracket of crossinline lambda inside of another crossinline lambdaKT-64725K1: Cannot stop on closing bracket of lambda of inline-only functionKT-66272Could not load module with a combination of type parametersKT-66243Could not load module in a builder inference with lambda with typed parameterKT-66229Could not load module in a builder inference with Map.EntryKT-61448K2: Disappeared DEPRECATION in testWithModifiedMockJdkKT-60106K2: Introduced REIFIED_TYPE_FORBIDDEN_SUBSTITUTIONKT-66120IrFakeOverrideBuilder: wrong return type in intersection with 3 classesKT-60777K2: missing INLINE_FROM_HIGHER_PLATFORMKT-66196Convert INFERRED_TYPE_VARIABLE_INTO_EMPTY_INTERSECTION_ERROR to warningKT-66067K2: different overrides are created in a complex hierarchy with raw types and upper-bounded type parametersKT-65821K2: [NONE_APPLICABLE] None of the following functions is applicable: [constructor(message: String?): Throwable, constructor(cause: Throwable?): Throwable, constructor(): Throwable, ...]KT-66268K2: Expected FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImplKT-60797K2: implement JAVA_MODULE_DOES_NOT_EXPORT_PACKAGEKT-28159Smartcasts don't work with Nothing? values (Nothing? considered a null constant => an unstable value)KT-28262Smartcasts for reference equality don't work if explicit true check is usedKT-66000K2: inherited inline getter has not been inlinedKT-66158K2: not nullable return type for upper-bounded kotlin type parameter in KJK hierarchyKT-65636PowerAssert: Negative contains operator not aligned correctly in K2KT-64271K2: Wrong overriddenSymbols for toString of data classKT-62779K2: Difference in fake override generationKT-61941K2: FIR2IR incorrectly generates f/o structure for complex java/kotlin hierarchies with remapped jvm declarationsKT-60283K2: fake override for java static method is not generatedKT-65095K2: no bridge generated for getOrDefault when inheriting from Java Map implementationKT-57301K2:getOrDefaultand bridges are not generated for certain Map subclassesKT-58814Too eager subtype inference in when expressionKT-65408K1: "There are still 2 unbound symbols after generation of IR module" caused by data object'scopyfunction usageKT-65844False Positive "This class can only be used as an annotation or as an argument to@OptIn" when passing as an arrayKT-58697K2: Tests: Assert no dump files exist when dump directive isn't presentKT-63258NPE with function reference from within lambda during initKT-60597K1: IllegalArgumentException: fromIndex(0) > toIndex(-1) when wrapping receiver with backticksKT-33108USELESS_CAST false positive for cast inside lambdaKT-58458K1: "java.lang.NullPointerException" with 'var equals' or 'val equals' as argument in whenKT-58447K1: "AssertionError: Recursion detected on input" with@ParameterNameand extensionKT-41013OVERLOAD_RESOLUTION_AMBIGUITY for functions takes lambda: can not resolve it, but only named lambda parameterKT-65588K2: typealias of primitive type in vararg causes ABI incompatibilityKT-23873Indexed access operator can cause false USELESS_CAST warningKT-31191Contract not smartcasting for extension functions in if-statement with multiple conditionsKT-63826K2: expect for expect crashes the compilerKT-25668False-positive error on restricted suspending function call with callable referenceKT-18055SMARTCAST_IMPOSSIBLE on mutable data class variable with a read-only propertyKT-66186K1 diagnostics miss some reporting messagesKT-65101Generics behaving different when parenthesizedKT-63444TYPE_MISMATCH caused by Inner class with nullable type and star projectionKT-58751Definitely non-nullable type gets lost with star projectionKT-56624"Unresolved reference" with import alias and enum constructor callKT-53886NoSuchMethodError exception in Kotlin/Native compilerKT-20617Qualified this@propertydoes not work in extension properties with body expressionKT-10879OVERLOAD_RESOLUTION_AMBIGUITY for synthetic property accessor with smartcasted receiverKT-65649K2: IR has incorrect origins for some inplace updating operatorsKT-63525K2: "IllegalStateException: Fake override should have at least one overridden descriptor" caused by unreachable codeKT-65333K2: UNRESOLVED_REFERENCE for java inner class in intersection scopeKT-63712Make it possible to add new stdlib API with SinceKotlin(2.0)KT-63741K2: fix visibility inference with overridden + inherited memberKT-64488K2: False positive DEPRECATED_ACCESS_TO_ENTRY_PROPERTY_FROM_ENUM with context receiversKT-57585K2/MPP: false-negative errors on expect/actual modifiers mismatchKT-66077IrFakeOverrideBuilder: NPE from IrJavaIncompatibilityRulesOverridabilityCondition.doesJavaOverrideHaveIncompatibleValueParameterKindsKT-66020K2: ISE "IrPropertySymbolImpl is unbound. Signature: null" on a property with getter with@JvmNameKT-62135K2, KLIB: Classes are still sorted before serializing them to metadataKT-66005K2: "Should not be here: class org.jetbrains.kotlin.fir.expressions.impl.FirResolvedReifiedParameterReferenceImpl" on incorrect comparison of reified type parameterKT-65840[K2] Initializer type mismatch: expected 'Type', actual 'Type'KT-59882K2: Disappeared CANNOT_INFER_PARAMETER_TYPEKT-65002K2: Incorrect suspend conversion if argument is an aliased functional typeKT-65984K2 scripting: failure on processing SUPPRESS annotation in the last script statementKT-65680K2: Class redeclaration leads to BackendException during IR fake override builderKT-66028K2: Convert FirExpectActualDeclarationChecker to platform checkerKT-65592K2: IrFakeOverrideBuilder: ISE "should not be called" on diamond hierarchy with explicit dependency on annotations.jarKT-65983K2 gradle scripting: "'val' cannot be reassigned" errorsKT-64502K2: Internal error on calling function before declarationKT-60452K2 Scripting: implement overriding of the script paramsKT-65975K2: Implicit receivers resolution order in K2 scriptingKT-60249K2: No unit coercion generated for loops bodyKT-65801IrFakeOverrideBuilder - visibility is lost for setter in KJK hierarchyKT-65937K2: order of enum entries changedKT-65933K2: Type missmatch in arrays in annotationsKT-65343JVM IR: Source parameter is lost when copying with DeepCopyIrTreeWithSymbolsKT-62788K2: difference in annotation inheritance in overriddingsKT-65669K2: ClassCastException class FirDeclarationStatusImpl cannot be cast to class FirResolvedDeclarationStatusKT-65493IrFakeOverrideBuilder: difference in return type for intersection with raw typeKT-65207IrFakeOverrideBuilder - nullable return type for intersection overrideKT-65972Fix problems related to Unknown visibility in [FP] intellijKT-65246K2: Overiding java method that takes vararg parameter causes WRONG_NULLABILITY_FOR_JAVA_OVERRIDE warningKT-59883K2: Disappeared INVALID_IF_AS_EXPRESSIONKT-61823K2: Render list of declarations in diagnostic messages with linebreak as separatorKT-65302IrFakeOverrideBuilder - missing@EnhancedNullabilityKT-65241K2: [LT] Compiler crash on assignment expression with incorrect lvalueKT-60006K2: Disappeared EXPRESSION_EXPECTEDKT-65817K2: Check if callable reference vararg adaption can be affected by primitive type aliasesKT-65920K2: no field for delegation is createdKT-65487K2: Different fake overrides and false positive NOTHING_TO_OVERRIDE for intersection/override with Collection.removeKT-62931K2: extra class files for@OptionalExpectationmarked annotationsKT-59400K2: Missing CANNOT_INFER_VISIBILITYKT-65460Don't compare order of functions in IR dumpKT-64276[K/N][K2] K2 behaviorial difference with inconsistent inheritance of ObjCNameKT-65572[K/N][K2] INCOMPATIBLE_OBJC_NAME_OVERRIDE error message changed from K1KT-63879K2: Redundant flagdeclaresDefaultValuefor parameter of function inherited from delegateKT-65790K2: Move check for private-to-this visibility into checkerKT-65551K2: Property redeclaration on native compilation leads to NotImplementedErrorKT-65770K2: Diagnostic rendering ofvararg Fooparameter producesvararg Array<Foo>KT-65555K2: must override 'spliterator' because it inherits multiple implementations for itKT-65337K2: False positive UNRESOLVED_REFERENCE when lambda labeled by illegal label and operator-invokedKT-65448K2: fake overrides are not generated for 'containsAll', 'removeAll', 'retainAll' if inherited from raw typeKT-65298K2: not nullable return type and parameter for raw typesKT-65706K2: IrFakeOverrideBuilder: ISE "Fake override should have at least one overridden descriptor" on J-K-J-K hierarchy with interface delegationKT-61798K2 incorrectly calculates modality of property accessorsKT-65604K2: INAPPLICABLE_JVM_NAME: effective modalityKT-65637Prepare documentation for PCLA implementationKT-49283Support contribution type info from a nested builder inference callKT-64077K2: Builder inference ignores constraints from nested builder inferenceKT-49160Couldn't infer a type argument through several builder inference calls broken by a local classKT-65057K2: Wrong type inferred in code with heavy use of genericsKT-64309Generate a variable mapping for continuation parameter in suspend methods just from the startKT-61088K2: return types of non-last-expression calls to@PolymorphicSignaturemethods inside try-expressions don't resolve to void when requiredKT-65262K2: Exception in DFA for combination of try-finally + PCLA + DIKT-58169K2: make equals bounded smart casts work the same as in K1KT-64102K2: Missing (disappeared in this case) DELEGATE_USES_EXTENSION_PROPERTY_TYPE_PARAMETER_ERRORKT-63988K2: Reflection cannot find type of local class of local classKT-63901K2: Different naming of inner class in metadataKT-63655K2: incorrect short class name in metadata for anonymous object inside a local classKT-63737Wasm: revise external declaration FE checker for WASI modeKT-59782K2: Forbid local delegated properties with private accessors in public inline functionsKT-64222K2: "return type is not a subtype of the return type of the overridden member"KT-63448K2: CONFLICTING_INHERITED_JVM_DECLARATIONS with@JvmFieldKT-59748K2: 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-65617K/N project import fails if ~/.konan dir is empty
IR. Actualizer
KT-60847K2: Fake overrides are incorrect after actualizationKT-63756K2: "AssertionError: No such value argument slot in IrConstructorCallImpl" caused by actual typealias for annotation with default parameter
IR. Inlining
KT-66017K2 / Native: "NoSuchElementException: Sequence contains no element matching the predicate" on building native release binariesKT-64807Refactor InlineFunctionResolverKT-64806Move FunctionInlining to separate module
IR. Tree
KT-66152IrFakeOverrideBuilder: AssertionError "different length of type parameter lists"KT-65971K2: Investigate diagnostic test failures with IrFakeOverrideBuilderKT-61360Fix essential problems in IrFakeOverrideBuilder
JavaScript
KT-8373JS: support ES6 as compilation targetKT-63907KJS: default parameters in interfaces are lost in implementationsKT-64708KJS: exported interfaces missing __doNotUseOrImplementIt when extending from external typesKT-62806KJS: Type mismatch on inferred return type with NothingKT-64421K2: Implement IrJsTypeScriptExportTestGenerated for K2KT-61526KJS: Compiled files clash with the new per-file granularityKT-63359K2: support new ways to declare TestResult in JS TestGenerator loweringKT-65216K2 JS: False positive JS_NAME_CLASH diagnostic on generic interface
Klibs
KT-33411Kotlin/Native crashes if several libraries have declarations with the same FQ nameKT-44626Umbrella issue: different kinds of klib IR linker error messagesKT-64440K2: Port KotlinKlibSerializerTest to K2KT-64452K2: Port FilePathsInKlibTest to K2KT-65723K2: Signature clash diagnostic fails for parametrized function with Unsupported pair of descriptorsKT-65442[klibs] header klibs: keep internal declarations and declarations inside inlines
Language Design
KT-65965KMP: Parameter properties in constructor of external classKT-64187K2: False positive ABSTRACT_NOT_IMPLEMENTED caused by the fact that common code sees platform code of its dependenciesKT-65881K2: MissingITERATOR_MISSINGinforloop on objectKT-65964KMP: Private constructor in external classesKT-61340K2: Allowed smart cast in common which should be prohibited in platformKT-51827Inconsistent behavior with smartcast and protected members
Libraries
KT-54879Add callsInPlace contract for more functions in stdlibKT-65532Stabilize experimental API for 2.0KT-66102Constructor-like function for creating AutoCloseable instancesKT-55777Unresolved kotlin.AutoCloseable in JVMKT-65590Make CharSequence.isBlank idiomatic and improve its performanceKT-63219Change root package and coordinates of kotlinx-metadata-jvm to kotlin.*KT-65518Memory leak in buildMap and in Wasm/Js/Native (Linked)HashMapKT-65525JS: Wrong return value of HashMap.keys.remove
Multiplatform Wizard
KT-66188Update 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-65863Native: implement a flag to emit compiler errors on ObjCExport name collisions
Native. Swift Export
KT-65673Expose parts of Kotlin/Native runtime to Swift exportKT-65668Support for Unsigned TypesKT-65335Swift Export: Remove KotlinSirOrigin hierarchy in favour of direct AA usageKT-65672Swift Export: import C bridges as Clang module
Native. Testing
KT-64393Use Compiler Core test infrastructure for testing serialization diagnostics on NativeKT-65117ImplementIrBackendFacades for Kotlin/Native backend
Reflection
KT-65156Calls tocallBythat use default arguments fail withKotlineReflectionInternalErrorwhen the argument size is a multiple of 32 in a constructor that containsvalue classas a parameter
Tools. CLI
KT-65094K2: Revise PerformanceManager reportingKT-64989Mark the whole diagnostic position range instead of only start positionKT-64608K2: Wrong end position of compiler diagnostics
Tools. CLI. Native
KT-64517Drop deprecated KonanTargets
Tools. Compiler Plugin API
KT-59555Expose resource closing extension point inCompilerPluginRegistrar
Tools. Compiler Plugins
KT-65690jvm-abi-gen: Remove internal declarations from ABIKT-64590jvm-abi-gen: Effectively private classes are not being removed from ABIKT-63507K2 / All-open plugin: "'open' has no effect on a final class" warningKT-66208PowerAssert: some built-in operators are not aligned correctly for some valuesKT-65810PowerAssert: Infix transformation doesn't capture full contextKT-65640PowerAssert: Infix function not aligned correctlyKT-61993K2: Synthetic file classes are generated with start offset of 0, causing errors during compilationKT-63617Add kotlin-power-assert to Kotlin repository
Tools. Fleet. ObjC Export
KT-65384ObjCExport: class super name special caseKT-66380ObjCExport: support interface implementationKT-65670ObjCExport: Naming: Support additional module based prefixKT-64953ObjCExport: Analysis-Api: enumKT-65348ObjCExport: Char as function return typeKT-65738ObjCExport: Analysis-Api: Generate base declarationsKT-65204ObjCExport: Analysis Api: Support nested classesKT-65225ObjCExport: implement KtCallableSymbol.isArray
Tools. Gradle
New Features
KT-62921Add API to allow getting the version of the kotlinc compiler
Performance Improvements
KT-64353Improve reuse of Build Tools Api's classloader
Fixes
KT-63619Add Kotlin power-assert compiler plugin to feature usage statistics gatheringKT-64203Throw exception when old build report properties are usedKT-66429Move WASM stability warning to KGP Tooling Diagnostics and report it once per buildKT-63419Deprecate 'kotlinOptions' DSLKT-65952PowerAssert: Update Gradle extension to be more idiomaticKT-65951PowerAssert: Add Gradle integration tests to compiler pluginKT-66373[Wasm, KGP] Npm is not configured for JS usagе for wasmWasi projectKT-66314Build reports in JSON: property 'kotlin.build.report.json.directory' without value causes NPEKT-64380Add project diagnostics for deprecated propertiesKT-65986GradleDeprecatedOption.removeAfterdoes not actually remove arguments from the compilerOptions/kotlinOptions DSLsKT-65768Don't pass -Xfragment-sources for non-mpp compilationsKT-64378Compatibility with Gradle 8.6 releaseKT-65989Compile against Gradle API 8.6KT-65819Build Gradle Plugins against Gradle 8.5 APIKT-65701Limit Gradle daemon max memory in integration testsKT-65568Deprecate the ability to configure compiler options in KotlinCompilationKT-64355Add plugin variant for gradle 8.5KT-62640Compatibility with Gradle 8.5 releaseKT-64504Remove ownModuleName from AbstractKotlinCompileKT-65708Flaky tests because of ivy repos in Integration TestsKT-56904Enable warnings-as-error for Kotlin Gradle plugins compilation
Tools. Gradle. JS
KT-65870KJS / Gradle: kotlinUpgradePackageLock fails making Yarn unusable
Tools. Gradle. Multiplatform
New Features
KT-66047KMP: Isolate dependencies graph between main and test source setsKT-65196Add high-level DSL to configure compiler options in the multiplatform project
Fixes
KT-61078K2: Compilation fails in FirSerializer trying to serialize nested classKT-66372KMP: JVM dependency can be downgraded by metadata dependencyKT-66514Don't get output file from Cinterop task for IDE Import if host os doesn't support itKT-66431KMP: External Target Compilation friendArtifactResolver throws ClassCastExceptionKT-64995KonanPropertiesBuildService is not compatible with Project IsolationKT-63753K2: File "does not belong to any module" when it is generated byregisterJavaGeneratingTaskin AGPKT-65426K2: Debug compilation fails because code from main source set included in two K2 fragmentsKT-62508Merge Android Source Sets into one K2 FragmentKT-65187Remove deprecated platform plugins idsKT-63206Deprecate eager CInteropProcess.outputFile in favor to lazy outputFileProvider
Tools. Gradle. Native
KT-65624K/N warning: "The Kotlin/Native distribution used in this build does not provide the standard library." is displayed during configuration phaseKT-65823Add downloading k/n dependencies to KotlinNativeProviderKT-65985Race condition during simultaneous execution of several native tasksKT-64903Add maven repo with dev versions into IT
Tools. Incremental Compile
KT-65943Incorrect scopeFqName recorded in LookupTrackerKT-62101IC: Execution failed for ClasspathEntrySnapshotTransform: when using tools.jar as dependency
Tools. Kapt
KT-65399K2 QG: Kapt3 with K2 produces incorrect codeKT-44706KAPT:@JvmRecordcauses "Record is an API that is part of a preview feature"KT-64391Some K2 Kapt integration tests are being executed with K1KT-65404KAPT should print a warning if stub generation is triggered for an interface with method bodies but without -Xjvm-default=all or -Xjvm-default=all-compatibilityKT-65453Kapt4: error "annotation@ParameterNameis missing a default value for the element 'name'" for a composable lambda fun without parameters
Tools. Scripts
KT-65865K2: Compile scripts in a separate sessionKT-65967Scripts in common source roots should be forbidden for now
Tools. Wasm
KT-64553K/Wasm: enable binaryen by default in production buildsKT-66159K/Wasm: applyBinaryen somehow affects skiko.mjsKT-66228K/Wasm 2.0.0-Beta4 distribution doesn't contain all filesKT-65889wasmJsBrowserDistribution doesn't copy wasm binaries to dist folderKT-65686K/Wasm: Binaryen and d8 have to be downloaded via the same mechanism as Node.js and YarnKT-58291Wasm: --tests argument is ignored when running wasmBrowserTest