1.9.0
Analysis API
New Features
KT-57930 Analysis API: provide an API for extending Kotlin resolutionKT-57636 K2: Add the return type of K2 reference shortener AA ShortenCommand::invokeShortening() e.g., ShorteningResultInfo to allow callers to access the shortening result PSI
Fixes
KT-58249 Analysis API: Disable error logging for FE10 implementation of resolveCall when resolve is not successfulKT-55626 Impossible to restore symbol by psi from script fileKT-57314 LL FIR: Combine LLFirProvider$SymbolProviders in session dependencies (optimization)KT-55527 K2 IDE: Rewrite KtScopeContext class to allow to handle each scope separatelyKT-55329 LL FIR: Unexpected ACTUAL_WITHOUT_EXPECT error on constructor and function declarationKT-50732 LL API: fix compiler based testsKT-57850 K2: contract violation due to SymbolLightAccessorMethod.propertyAccessorSymbolKT-56543 LL FIR: rework lazy transformers so transformers modify only declarations they suppose toKT-56721 K2: FirExtensionDeclarationsSymbolProvider: java.lang.IllegalStateException: Recursive updateKT-50253 Analysis API: Solve issues with ProcessCancelledExceptionKT-56800 K2 IDE: optimize deprecation calculation for symbolsKT-55006 Analysis API does not transform Java type refs for callable symbol return typesKT-57256 AA FIR: Reduce lazy resolve phase for deprecation statusKT-57619 K2: CFG for class initializer is not correctly built in reversed resolve modeKT-58141 K2: AA FIR: impossible to restore symbol for declaration with annotation with argument inside typeKT-57462 Symbol Light Classes: SymbolLightFieldForProperty should retrieve annotations not from KtPropertySymbol, but from the corresponding backing fieldKT-54864 Analysis API: add function to get expect KtSymbol list by actual KtSymbolKT-56763 Analysis API: .KtSourceModuleImpl is missing in the map. on symbol restore when symbol cannot be seen from the use-site moduleKT-56617 Analysis API: optimize KtFirSymbolProviderByJavaPsi.getNamedClassSymbolKT-54430 K2: .getAllOverriddenSymbols() returns invalid results
Backend. Native. Debug
KT-55440 Kotlin/Native debugger: inline function parameters are not visible during debugging
Backend. Wasm
KT-58293 Wasm: ReferenceError: e is not defined in kotlin.test.jsThrowKT-58931 Wasm tests are failing to start on Kotlin 1.9.0-BetaKT-58188 Restore binary compatibility of PlatformDiagnosticSuppressor.shouldReportUnusedParameterKT-57136 K/Wasm: Restrict non-external types in JS interopKT-57060 Clarify the lack of support for dynamic in Kotlin/WasmKT-56955 K/Wasm: Support restricted version of K/JS js(code)KT-57276 Wasm: “Body not found for function” error when compiling konform library with Kotlin/Wasm supportKT-56976 K/Wasm bug with calling override of external function with default parameters
Compiler
New Features
KT-55333 Allow secondary constructors in value classes with bodiesKT-54944 @Volatile support in nativeKT-54746 Deprecate with ERROR JvmDefault annotation and old -Xjvm-default modesKT-47902 Do not propagate method deprecation through overridesKT-29378 K2: rework warnings/errors for equality/identity operators on incompatible typesKT-57477 False-positive overload resolution ambiguity in case of lambda without argumentsKT-57010 Kotlin/Native: make it possible to compile bitcode in a separate compiler invocationKT-55691 K2: Avoid inferring Nothing? in presence of other constraints (beside type parameter bounds)KT-46288 Unexpected behavior of extension function on lambda with suspend receiverKT-24779 Inconsistent smart cast behavior for bound data flow values
Performance Improvements
KT-23397 Optimize out field for property delegate when it's safe (JVM)KT-56906 FIR: Use cached instance of FirImplicitTypeRefImpl in FIR buildersKT-56276 LanguageVersion.getVersionString() allocates 5k objects on project opening
Fixes
KT-57784 “NullPointerException: Parameter specified as non-null is null:” with enum, companion object, ‘entries’ and mapKT-55217 K2: support callable reference conversions on top-level expressionsKT-57232 K2: build Space JVM (master)KT-59079 “AE: SyntheticAccessorLowering should not attempt to modify other files!” with callable reference to constructor with value class parameterKT-58837 Partial linkage fails to report any compiler message on Windows when launched through Gradle pluginKT-57602 K2: Rework member scope of types having projection arguments for covariant parametersKT-55171 Put new contracts syntax under a feature flagKT-58719 K2: false-positive INVISIBLE_REFERENCE error in case of importing an internal abstract classKT-56030 [K2/N] Support Objective-C overloading by param names onlyKT-57510 K2: Data class equals/hashCode/toString methods are not written to Klib metadataKT-56331 K2: compiler backend crash on usage of expected function with default argumentsKT-53846 K2 / Context receivers: ClassCastException on secondary constructor of class with context receiverKT-58621 K2: Private class shadows public function defined in the same packageKT-59102 K2: constant evaluator does not provide Long type on shlKT-59066 [K2] delegation leads to “IllegalStateException: Expected some types”KT-56074 K2: build Space JVM (snapshot 2022.3)KT-58787 KAPT: “NullPointerException: null cannot be cast to non-null type” with delegateKT-57022 K2 IllegalStateException in signature computationKT-56792 K2: build kotlinpoetKT-57373 K2: FIR properties synthesized when implementing interface by delegation don't have accessorsKT-56583 K1: Implement opt-in for integer cinterop conversionsKT-59030 [PL] Workaround for broken @Deprecated annotations in c-interop KLIBsKT-58618 K2: Local property delegates cannot infer generic return typeKT-36770 Prohibit unsafe calls with expected @NotNull T and given Kotlin generic parameter with nullable boundKT-56739 K2: build Space iOSKT-57131 K2: stdlib test compilation fails on ListTest.kt in FirJvmMangleComputerKT-58137 K2: ISE “Usage of default value argument for this annotation is not yet possible” when instantiating Kotlin annotation with default parameter from another moduleKT-58897 K2: False positive unresolved reference with same-named enum class and its entryKT-40903 Forbid actual member in expect classKT-30905 Expect var property with default public setter matches with actual var property with private setterKT-56172 K2: Fix reporting of PRIVATE_CLASS_MEMBER_FROM_INLINE errorKT-56171 Implement deprecation warning for missing PRIVATE_CLASS_MEMBER_FROM_INLINE errorKT-27261 Contracts for infix functions don't work (for receivers and parameters)KT-56927 Enum with secondary constructor can't be compiled with K2 using JS/Native backendKT-53568 Partial linkage: absent class as type parameter bound causes failure of compileProductionExecutableKotlinJsKT-53608 Partial linkage: Kotlin/JS fails with IllegalStateException: “Validation failed in file” when overridden declaration was visible, but now privateKT-53663 Partial linkage: usage of property which becomes abstract: no IrLinkageError, but AssertionError in Native backend insteadKT-56013 K2. a set of errors about local properties are missingKT-53939 Partial linkage: with turning object into class linkNative and jsTest tasks failKT-53938 Partial linkage: with turning interface into class and using as second parent Native build failsKT-53941 Partial linkage: with turning class into object accessing member via parameterless constructor does not failKT-53970 Partial linkage: on turning nested class into inner JS tasks are successful, Native build failsKT-53971 Partial linkage: turning inner class into nested: without usage in executable Native is successful, JavaScript failsKT-53972 Partial linkage: turning inner class into nested: with usage in executable Native fails with NPE in backendKT-54045 Partial linkage: turning class into type alias + calculating implicit function type: build fails with UninitializedPropertyAccessException: “lateinit property parent has not been initialized”KT-54046 Partial linkage: turning type alias into class + using it as type: build fails with AssertionError: “Expected exactly one delegating constructor call but none encountered”KT-53887 Partial linkage: turning from enum to regular class + reference to enum contant causes compileProductionExecutableKotlinJs fail with IllegalStateExceptionKT-54047 Partial linkage: reference to removed enum const causes JS fail with “IllegalStateException: Validation failed in file”KT-54048 Partial linkage: reference to removed enum const in runtime causes Native fail with IllegalStateException at IrBindablePublicSymbolBase.getOwner()KT-53995 Partial linkage: on turning class to abstract and direct constructor call Naive fails, JavaScript is successfulKT-43527 @ExtensionFunctionType is allowed on function types with no parameters and leads to backend exceptionKT-55316 K2. IllegalStateException on incorrect import directive nameKT-57570 Remove source code excerpts from platform type nullability assertion exceptionsKT-56073 K2: build ExposedKT-47932 Report errors on cycles in annotation parameter typesKT-38871 Kotlin Gradle DSL, MPP: UNUSED_VARIABLE when configuring a sourceset with delegated propertyKT-46344 No error for a super class constructor call on a function interface in supertypes listKT-56609 K2: False positive NULL_FOR_NONNULL_TYPE with -Xjsr305=strict and @Nullable annotation Java parameterKT-56656 K1/K2: inconsistent NOTHING_TO_OVERRIDE with complex nullable annotationsKT-58332 K2: local fun with suspend type is not marked as suspend in IRKT-57991 K2: Modifier ‘suspend’ is not applicable to ‘anonymous function’KT-54294 K2: “Not all type variables found” in builder inference with type parameters inferred through a union of two branchesKT-58564 [PL] Annotations with unlinked parameters are not removedKT-52597 Provide Alpha Support for Multiplatform in the K2 platformKT-58523 K2: reference is resolved to imported type-alias instead of identically named top-level propertyKT-57098 Native: avoid object initialization while accessing const valKT-57973 32-th default value in inline classes override function is not usedKT-57714 “IllegalStateException: <B::!>” using reified genericsKT-57810 toString of object erroneously considered as constant function in string concatenationKT-58076 K2: Incorrect inference of type of labeled receiverKT-57929 K2: Arguments of annotations are not calculated in a lot of strange locationsKT-54874 K2. No compilation error with incorrect Comparator invocationKT-55388 Consider enabling ProhibitUsingNullableTypeParameterAgainstNotNullAnnotatedKT-53041 NPE in Kotlin 1.7.0 when using RxJava Maybe.doOnEvent with anonymous parametersKT-54829 Cleanup local types approximation logicKT-58577 K2: private Kotlin property prevents use of Java set-method from Java-Kotlin-Java hierarchy in another moduleKT-58587 MUST_BE_INITIALIZED must take into account effectivelly finalKT-58524 K2: false-positive overload resolution ambiguity error on invoking a generic class's member function with id-shaped function-typed parameter on intersection-typed receiverKT-53929 Enum.entries: consider changing scope behavior in K1KT-58520 K2: FIR2IR: ISE during const evaluation of operator times with exposedKT-57905 K1: resolution to base class‘s Java field instead of derived class’s Kotlin property is not deprecated in case of different typesKT-56662 K1: false negative INVISIBLE_SETTER for a var with internal setter accessed from a derived classKT-57770 K2: Support generation of serializer if base class for serializable class declared in different moduleKT-58375 Kapt: “wrong number of type arguments. required 1” when more than 22 type argumentsKT-48870 [FIR] Different behavior for explicit receiver resolution inside delegated constructorsKT-58013 K2: “Not enough information to infer type variable T” when using assert non-null (!!) and delegationKT-58365 K2: Fix stub types leakage in builder inference caused by implicit receiver type update with partially resolved calls (IGNORE_LEAKED_INTERNAL_TYPES for stub types)KT-58214 Continuation parameter only exists in lowered suspend functions, but function origin is LOCAL_FUNCTION_FOR_LAMBDAKT-58030 K2/MPP/JVM: compiler backend crash on super-call to indirectly inherited Java methodKT-58135 K2: Priority of extension property is lower than ordinary propertyKT-57181 [K1/N, K2/N] Expect and Actual funs have different IdSignature.CommonSignature, if Expect has default argumentKT-58219 K2/MPP/metadata: false-positive invisible reference error in Native-shared source setKT-58145 K2/MPP/metadata: compiler FIR crash on inheritance of a generic class with property by actual-class from Native-shared source setKT-56023 Constant operations (e.g. division) are not constant in K2 (JS, Native)KT-57354 In suspend function default arguments are sometimes not deleted in IRKT-55242 K2/MPP: basic build/link functionalityKT-57979 K2: Unresolved reference error when assigning to Java synthetic property with a different nullability getterKT-57543 K2 reports DELEGATE_SPECIAL_FUNCTION_NONE_APPLICABLEKT-58142 K2: val parameter with more specific type is lower priorityKT-48546 Missed TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM error at plus-assignKT-57854 RECEIVER_TYPE_MISMATCH on synthetic property from mutually recursive Java generics with disabled ProperTypeInferenceConstraintsProcessingKT-54518 False negative NON_PUBLIC_CALL_FROM_PUBLIC_INLINE when calling internal method of super classKT-58025 K2: Argument type mismatch when using Springs HandlerMethodArgumentResolverKT-58259 Unexpected unresolved function call with obvious invoke-convention desugaringKT-57135 K2: Fir should take into account an annotation's allowed targets as well as the use-site target when deciding whether it applies to a property, a field, or a constructor parameterKT-57069 K2: Method kind in metadata is DECLARATION when DELEGATION is used in K1KT-57958 K2: Initializer type mismatch when using extension property on type with star projectionKT-58149 K2: New inference error with buildListKT-58008 K2: “Cannot find cached type parameter by FIR symbol: T” on suspend function with generic and nested classKT-57835 K2: compiler crash on lambda with dynamic receiverKT-57601 K2: Builtin function extensionToString can't be accessedKT-57655 K2: ImplicitIntegerCoercion is not working for named argumentsKT-58143 K2: overload resolution ambiguity inside dynamic lambdaKT-58132 K2: Implicit int constant to long converion crashes FirSerializerKT-57378 Partial linkage: Run codegen box tests for Native & JS with enabled PLKT-58207 K2: Handle result of completion of synthetic call with callable reference argumentKT-56549 K2: Reference to Java sealed class fails to compileKT-57994 K2: Type inference failed on function referenceKT-58099 interop0 test fails with error “type kotlin.String? is not supported here: doesn't correspond to any C type”KT-57671 Synthetic $EntriesMappings declaration is public and generated even for enums from current module on ICKT-56517 K2: Reference to Java record fails to compile: “unresolved reference”, “Overload resolution ambiguity between candidates”KT-58163 FIR: deserialized default property setter and getter must have FirResolvePhase.ANALYZED_DEPENDENCIES phaseKT-55646 K2: Report definitely non-nullable as reified errorKT-58043 k2: Expect call is not removed from IR with nullability-based overloadKT-56442 K2: Make sure K2 has the same behavior for defaults with overrides as K1 hasKT-55904 Fix tests for volatile annotation on K2KT-57928 K2: Arguments of annotations on constructor value parameter are not calculatedKT-57814 K2: Argument type mismatch with delegating propertyKT-56490 Implement deprecation for an anonymous type exposed from inline functions with type argumentKT-57781 K2: Generated serializer is invisible in a non-JVM test source setKT-57807 K2: Symbol already bound exception for arrayOf function from IrBuiltInsOverFirKT-57962 K2: No set method providing array access on dynamicKT-57353 K2: unresolved reference when using fully qualified object declaration name as an expression, when a declaration package is from another klib and has at least two name segmentsKT-57899 K2: compiler FIR2IR crash on anonymous object with inheritance by delegation to value of smart-casted type parameterKT-57988 K2: compiler exception on get operator on dynamic thisKT-57960 K2: incorrect type inference in lambda with dynamic receiverKT-57923 K2: Optional expectation annotation crashes const evaluatorKT-56511 K1: false negative SMARTCAST_IMPOSSIBLE when alien constructor property is accessed from a private classKT-58033 K2 reports Constructor must be private or protected in sealed class in actual sealed class if its constructor has own actual declarationKT-58061 K2: false-positive unsupported feature error on callable references to Java methods from annotation interfacesKT-55079 Refactor DiagnosticReporterByTrackingStrategy and fix some “diagnostic into black hole” problemsKT-57889 K2: false-positive lack of information for inline function‘s type parameter in case of builder-style inference from caller function’s return expressionKT-57961 K2: Unresolved reference using dynamic lambda parameterKT-57911 K2: Contracts are not inherited by substitution overridesKT-57880 K2: false-positive argument type mismatch due to lambda receiver shadowing labeled outer lambda receiver when assigning lambda to variableKT-57986 K2: NPE on building SpaceKT-57873 K2: compiler FIR serialization crash on builder-style inference from lambda's return typeKT-57941 K2: Assertion error on loading serializable class with non-serializable property compiled with K1 compilerKT-57947 K2: Incorrect resolution results when property type for invokeExtension is not inferredKT-58002 K2: compiler FIR serialization crash on platform type with type-targeted Java annotation with Java enum as argumentKT-57263 K2/MPP/JVM: compiler codegen crash on expect-property as default argument for expect-function's parameterKT-56942 K2: False-negative NO_ELSE_IN_WHEN if subject is flexible typeKT-56687 Unexpected behaviour with enum entries when using outdated stdlibKT-56398 K2/MPP: compiler backend crash on inheritance from expected interfaceKT-57806 K2: string interpolation as annotation parameter causes errorKT-57611 K2: Annotation arguments are not evaluatedKT-56190 [K2/N] Const initializers are not serialized to klibKT-57843 K2: Missing diagnostic when calling constructor through typealias whose expansion has a deprecationKT-57350 FIR: deprecation diagnostic is not reported on a super class callKT-57532 K2: IrActualizer doesn't handle properties overloaded by extension receiver correctlyKT-57776 K2: Suppressing “INVISIBLE_REFERENCE” leads to AssertionError: Unexpected IR element found during code generationKT-57769 [K2] Load properties in proper order for classes compiled with kotlinx.serialization and LV < 2.0KT-57879 K2: compiler FIR serialization crash on passing Java constants as arguments to type-targeted annotationsKT-57893 K1/K2 inconsistency on smart casts of internally visible properties in friend modulesKT-57876 K2: stack overflow in compiler FIR deserialization on nested type-target annotation class used in enclosing classKT-57839 K2: Compiler crash on lambda returning anonymous object with implemented lambdaKT-57822 K2: Can't refer to external interface from class literalKT-57809 K2: No value passed for parameter of external classKT-56383 Build intellij master with LV 1.9KT-57735 K2: MPP: K2 reports hides member of supertype and needs ‘override’ modifier for the function with @PlatformDependent annotation when there is an empty linux target in projectKT-55056 Builder inference causes incorrect type inference result in related callKT-57689 K2: Unresolved reference to nested typealias in KLIBKT-57665 K2: incorrect resolution of dynamic typeKT-57381 K2/MPP/Native: impossible to override Any::equals with non-external functionKT-57654 K2: Lambda with receiver deserialized as lambda without receiver during metadata compilationKT-57662 K2: The error message is poorly formatted and not precise in case of NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS error and @Suppress is usedKT-57763 FirExtensionRegistrar extension point brokenKT-57312 K2: IR interpreter fails on string interpolation with const val from a klib involvedKT-57768 Don't decompile code to search for annotation argumentsKT-55628 Diagnostics for kotlin.concurrent.Volatile annotation applicabilityKT-55860 K2. [CONFLICTING_INHERITED_MEMBERS] for inheritor of a class with overloaded generic functionKT-53491 K2: Implement “Operator ‘==’ cannot be applied to ‘Long’ and ‘Int’” errorKT-55804 K2: UNSAFE_CALL Non-nullable generic marked as nullable even if non-null assertedKT-57682 K2: Incorrect composing of signatures for calls on dynamic typesKT-55405 K2: false-negative INVISIBLE_REFERENCE in import directivesKT-54781 K2: no error on unresolved import statement with more than one packageKT-57635 K2/MPP: Expect constructors are not considered as expect during metadata deserializationKT-57376 K2/MPP: false-positive K/JS diagnostic in absence of K/JS target when sharing a source set between K/JVM and K/NativeKT-55902 K2: Support ImplicitIntegerCoercion annotationKT-56577 Migrate Native KLIB ABI compatibility tests to K2KT-56603 [K2/N] Segfault invoking fun from binary compatible klibKT-57457 K2: the error message is not quite informative in case of EXPOSED_PROPERTY_TYPE_IN_CONSTRUCTOR_ERRORKT-57568 K2: K2, Native reports overload resolution ambiguityKT-57446 K2: Adapter function reference is not generated inside when expressionKT-54894 K2: False positive RETURN_TYPE_MISMATCH on function which returns a functional type with @UnsafeVariance argumentKT-57001 K2 compilation fails due to nullabillity subtyping not working properlyKT-57271 Delay forbidding inference to an empty intersection to version 2.0KT-57209 K2: type parameters are available in companion object scopeKT-50550 False positive NO_ELSE_IN_WHEN with annotated when branch conditionKT-57431 K2 MPP JS: Compiler crash on transitive common dependenciesKT-57456 K2 reports uninitializied variable in enum class when variable is used in lambda and defined in companion objectKT-57583 K2/MPP/JS&Native: FIR2IR compiler crash on reference to Any method inherited by expect-classifierKT-56336 [K2/N] Multiplatform test fails with unexpected “actual declaration has no corresponding expected declaration” compiler errorKT-57556 K2: Rename error ‘This API is not available after FIR’KT-23447 Integer.toChar compiles to missing methodKT-46465 Deprecate and make open Number.toChar()KT-49017 Forbid usages of super or super if in fact it accesses an abstract memberKT-56119 BinaryVersion.isCompatible binary compatibility is brokenKT-57369 K2/MPP: supertypes established in actual-classifiers from other source sets are not visibleKT-55469 [K2/N] equals(Double,Double) and equals(Boolean,Boolean) are not foundKT-57250 K2: the metadata is serialized for an expect class even if the actual class is present when compiling to klibKT-56660 K2/MPP: compiler backend crash on invoking a K/Common constructor in K/JS codeKT-55055 K1: Builder inference violates upper boundKT-57316 Initialize Enum.entries eagerly: avoid using invokedynamicsKT-57491 Kotlin synthetic parameter looks ordinaryKT-56846 K2: incorrect line & symbol numbers in exception reportingKT-56368 K2/MPP: compiler backend crash on missing actual declarationKT-57104 K2: false-positive conflicting inherited JVM declarations error despite use of @JvmName in another moduleKT-56747 [K2/N] Return type for lambda: (Any) -> Any which returns Unit is different for K1 and K2 and return statement is missing with K2KT-57211 K2: incorrect “error: an annotation argument must be a compile-time constant” on unsigned array in annotation argumentKT-57302 K2 fails with IllegalStateException on reading inherited property of Java enumKT-57424 K2 IDE: “By now the annotations argument mapping should have been resolved” exceptionKT-57241 K2 MPP: Actualization doesn't work for actual enum that has primary constructor with argumentsKT-57210 K2 MPP: Support of arguments with dynamic typeKT-57182 K2 MPP: Actualization doesn't work for nested objectsKT-56344 K2: Implement correct errors reporting of IrActualizerKT-54405 K2 compiler allows val redeclarationKT-54531 [K2] Uncaught Runtime exception is thrown instead of user friendly error messages with details in case -no-jdk option set to trueKT-56926 K2: incorrect line number generated for class constructor or method with default parameter when comment beforeKT-56913 K2: Incorrect line numbers in overriden field getters and settersKT-56982 K2: Incorrect line number start in when expressionKT-56720 K2: false positive MANY_IMPL_MEMBER_NOT_IMPLEMENTED in case of delegation in diamond inheritanceKT-57175 K2: false-positive INVALID_TYPE_OF_ANNOTATION_MEMBER on type aliasesKT-25694 Fix reporting of uninitialized parameter in default values of parametersKT-57198 K2: false-positive type mismatch error on inherited raw-typed class with type parameters in upper bounds of other type parametersKT-15470 Inconsistency: use-site ‘set’ target is a compilation error, use-site ‘get’ target is okKT-57179 FIR: preserve prefix increment behavior like in K1 by calling getter twiceKT-57405 K2. Function call ambiguity error when nullable String is passed to function with Spring @Nullable annotation in signatureKT-57284 K2: compiler codegen crash at property initialization in constructor after smartcast of dispatch receiver to indirectly derived typeKT-57221 K2: compiler FIR2IR crash on function's unavailable cached type parameterKT-57036 Unresolved reference: with inferred type of class constructor with extension parameterKT-56177 K2: FIR should not generate annotation on both property and parameterKT-54990 NI: Type mismatch when encountering bounded type parameter and projectionsKT-57065 K2: overload resolution ambiguity between type-aliased constructor and identically named functionKT-49653 Deprecate and remove Enum.declaringClass synthetic propertyKT-57190 K2: false-positive unsafe call error on safe call on type-aliased nullable receiver in SAM-conversionKT-57166 K2: false-positive val reassignment error when synthetic property with implicitly typed overridden getter is called from implicitly typed member that is declared earlierKT-55828 [K2/N]: Fix test fails in OPT mode : Internal compiler error: no implementation found ... when building itable/vtableKT-56169 False negative deprecation warning about future inference error with builder inferenceKT-56657 K1/K2: inconsistent behavior in nullability mismatch (Guava hash set/map)KT-57105 K2: compiler codegen crash at property initialization in constructor after smartcastKT-56379 K2: build tests for the Kotlin standard libraryKT-56079 K2: build YouTrack 2022.3KT-57092 K2: false-positive multiple inherited implementations errorKT-56696 K2: Allow to access uninitialized member properties in non-inPlace lambdas in class initializationKT-56354 K2/MPP: unresolved references to library entitiesKT-57095 K2: false-positive lack of type arguments error on raw cast of Base<*> to Derived: Base<T?>KT-56630 FIR: ClassCastException on compilation hierarchy with a raw typeKT-57171 K2: Implement bytecode testsKT-57214 K2: compiler FIR crash on annotation usage before annotation class declarationKT-57204 K2: callable reference to mutable property of inherited by delegation superinterface isn't properly resolvedKT-57195 K2: false-positive VAR_TYPE_MISMATCH_ON_OVERRIDE on changing property's platform type to non-nullable type when overridingKT-56814 K2. PsiElement is null inside IrClass. As a result ClassBuilder defineClass gets null as originKT-54758 Deprecate ClassBuilderInterceptorExtension.interceptClassBuilderFactory and provide another method without dependency on K1KT-57253 K2: clean up callable reference logic in FIR2IRKT-56225 K2. “BackendException: Backend Internal error: Exception during IR lowering” error on incorrect constructor in inline classKT-56769 K2. Annotation applicability is ignored during compilation when there's use-site @targetKT-56616 K2: cannot infer Java array type properlyKT-57247 K2: false-positive INVALID_TYPE_OF_ANNOTATION_MEMBER on type-aliased vararg propertyKT-57206 K2: false-positive val reassignment error on synthetic property from generic class with overridden getter but not setterKT-56519 K2: Compiler crash on a function reference on companion receiver that inherits from outer classKT-56506 K1/K2 inconsistency: VAL_REASSIGNMENT on synthetic setter with different nullabilityKT-56877 K2: false-positive UNRESOLVED_LABEL for labeled this-expression in contract descriptionKT-56863 K2: false-positive property initialization analysis errors after smartcastKT-56864 K2: Unexpected behavior with default parameter inheritance and function referenceKT-56665 K2: false positive RECURSIVE_TYPEALIAS_EXPANSIONKT-53966 K2 does not support SAM conversions with condition into Java/Kotlin functional interfacesKT-56659 FIR: Increment operator on object leads to exception from resolveKT-56771 FIR: Increment operator on qualified expressions leads to exception from resolveKT-56759 K2: False-positive UNRESOLVED_REFERENCE on labeled desctructuring declaration in LT modeKT-56548 K2: false positive overload resolution ambiguity for Java record constructorKT-56476 K2: false positive NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY at inline fun use-siteKT-56138 K2: Illegal conversion of lambda with parameters to ExtensionFunction expected typeKT-56448 K2: False-positive unsafe call due to incorrect inference of smartcasted typeKT-55966 K2: Not enough information to infer type variable K if smartcast is usedKT-57168 K2: compiler FIR2IR crash on synthetic property from generic class with overridden getter but not setterKT-56876 K2: false-positive UNRESOLVED_REFERENCE for name of nested class in contract descriptionKT-57194 K2: overload resolution doesn't prioritize Double over FloatKT-57067 Warning about expect/aсtual in the same module doesn't take into account absence of ‘actual’ modifierKT-56954 K2: function literals can be passed as arguments to parameters with kotlin.reflect function typesKT-55423 K2: Implement CONTRACT_NOT_ALLOWEDKT-56923 K2: no line number in bytecode when ASTORE exception in catchKT-56829 K2: compiler FIR2IR crash on passing to function a callable reference to nested class's constructor with default argumentsKT-57029 Per-file caches fail on local inline function in an inline functionKT-57085 K2: @Suppress is sensitive to its argument's caseKT-57103 K1: AssertionError: Mismatching type arguments: 0 vs 1 + 0 when calling inline function with callable reference to generic synthetic propertyKT-57033 Make KtClassLiteralExpression stub basedKT-57035 Make KtCollectionLiteralExpression stub basedKT-40857 Invalid parameterized types for extension function on parameterized receiver when javaParameters=trueKT-56154 Compiler backend crash on reference to Java synthetic property from generic classKT-56692 StackOverflow in PrivateInlineFunctionsReturningAnonymousObjectsCheckerKT-55879 Modularized tests: fir.bench.language.version is used as API version, not language versionKT-51821 ClassCastException on anonymous fun interface implementation when unrelated vararg is usedKT-56820 K2: compiler FIR crash on Java field access after smartcastKT-56579 [K2/N] IR actualizer crashed with K2 on expect annotation marked with @OptionalExpectation, without actual.KT-56750 K2: “IllegalArgumentException: No argument for parameter VALUE_PARAMETER” when calling typealias method referenceKT-55614 K2: consider serializing static enum members (values/valueOf/entries) to match K1 behaviorKT-30507 Unsound smartcast if null assignment inside index place and plusAssign/minusAssign is usedKT-56646 K2: “IllegalStateException: No single implementation found for: FUN FAKE_OVERRIDE” when compiling a functional interfaceKT-56334 K2: can't call expected function with default argumentsKT-56514 K2 should report ACTUAL_TYPE_ALIAS_NOT_TO_CLASSKT-56522 K2 should report ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTSKT-56910 Exception during IR lowering: Cannot determine lineNumber of element FUN name:cancelProgressKT-56542 K2: false positive TOO_MANY_ARGUMENTS in VarHandle.set callKT-56861 FIR: test FirPluginBlackBoxCodegenTestGenerated.testClassWithAllPropertiesConstructor is failing with runtime errorKT-56234 K2: “ISE: Expected value generated with NEW” with inline property setter and noinline parameterKT-56722 K2: cannot resolve component call after smart castKT-56875 K2: isOperator flag is incorrectly set for java methodsKT-56714 K2: wrong argument mapping in DSLKT-56723 K2: lambda accidentally returns Unit? instead of UnitKT-55877 K2: Secondary constructor without call to parent: no frontend error, ISE: “Null argument in ExpressionCodegen for parameter VALUE_PARAMETER”KT-56386 K2: Make possible to access Java field which is shadowed by Kotlin invisible property`KT-56862 Compatibility problem with using Kotlin in Intellij 223 or higher because of missing particular trove4j dependencyKT-55088 JS, Native compilation fail with internal error on SomeEnum.entries reference when SomeEnum is from klib compiled with disabled EnumEntries language featureKT-40904 No warning when declare actual in the same target (module) as expectKT-56707 K2: Unexpected TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM where only getter type specified explicitlyKT-56508 Context receivers: Internal compiler error when compiling code containing a class with a secondary constructorKT-56706 K2: False-positive ARGUMENT_TYPE_MISMATCH for generic nested types from libraryKT-56505 K2: Missing NO_EXPLICIT_VISIBILITY_IN_API_MODE errors on various declarationsKT-56682 K2: False-negative UNINITIALIZED_VARIABLE on access to delegated propertyKT-56678 K2: False-negative UNINITIALIZED_VARIABLE if corresponding variable has initializerKT-56612 K2: false positive NO_TYPE_ARGUMENTS_ON_RHS on raw cast with type alias based argumentKT-56445 K2: False-positive unresolved reference to callable reference to function with default argumentKT-55024 K2: overload resolution ambiguity/unresolved reference if variable is smart-casted to an invisible internal classKT-55722 K2: Incorrect OVERLOAD_RESOLUTION_AMBIGUITY with smart cast on dispatch receiver (simple)KT-56563 Inference within if stops working when changing expected type from Any to a different typeKT-55936 K2: Support proper resolution of callable references as last statements in lambdaKT-45989 FIR: wrong callable reference type inferredKT-55169 K2: False-negative NO_ELSE_IN_WHENKT-55932 K2. No compiler error when elvis operator returns not matched typeKT-53987 K2: False negative “TYPE_MISMATCH” with if statement returnKT-41038 NI: TYPE_MISMATCH when passing constructor of nested classKT-42449 Can not resolve property for value of type Any even after casting type to a type with star projectionKT-52934 StackOverflow from PseudocodeTraverserKt.collectDataFromSubgraph with if inside finallyKT-52860 StackOverflowError when casting involving recursive generics and star projectionKT-52424 ClassCastException: Wrong smartcast to Nothing? with if-else in nullable lambda parameterKT-52262 TYPE_MISMATCH: Nonnull smartcasting fails with non-exhaustive whenKT-52502 Forbid extension calls on inline functional parametersKT-51045 SETTER_PROJECTED_OUT: Star projected nullable property can't be set to nullKT-40480 [FIR] Support hasStableParameterName from metadataKT-50134 NI: Type inference regression in java streams groupingByKT-50160 False positive “USELESS_CAST” caused by indexed access operatorKT-42715 Unable to use implicit lambda param it for overloaded methodsKT-49045 False positive USELESS_CAST in generic type with nullable type parameterKT-49024 AssertionError: Variance conflict: type parameter variance ‘out’ and projection kind ‘in’ cannot be combinedKT-48975 Type mismatch: inferred type is X but Nothing! was expected with the AssertJ latest versionKT-47870 INVISIBLE_MEMBER: Kotlin class can't access protected annotation defined in Java parent classKT-47495 ReenteringLazyValueComputationException on invalid codeKT-47490 Missed diagnostic for incorrect callable reference in finallyKT-47484 “Recursion detected in a lazy value under LockBasedStorageManager” on invalid codeKT-46301 Combining branches with sealed interfaces in when breaks type inferenceKT-44392 False negative: redundant nullability/not null check on cast with as operatorKT-43936 Recursion detected on input: ANNOTATION_ENTRY with annotation on star-imported nested classKT-43846 No smart cast when returning function closures with captured smart-cast variableKT-43603 False positive USELESS_CAST leads to TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM on “when” with smart cast and extension propertyKT-43553 JVM / IR: “AssertionError: Unbound symbols not allowed” caused by annotation class with TYPE targetKT-42169 False negative CAST_NEVER_SUCCEEDS for incompatible types with generic parameter and star projectionKT-42136 NI: False positive [USELESS_CAST] when list serves to create a mutable listKT-41721 SAM conversion fails on varargs with type approximated to NothingKT-38288 Unresolved reference for type parameter upper bound of nested class when outer class extends it with star projected type argumentKT-37490 NULL_FOR_NONNULL_TYPE: “Null can not be a value of a non-null type Nothing” when null is passed to nullable argument of type projected methodKT-37365 NPE from ReflectionReferencesGenerator.generateCallableReference with inner class function reference and wrong parenthesisKT-36958 NI: missed unresolved on parenthesized callable reference passing through call (back-ends throw an exception)KT-30756 No smartcast if elvis operator as a smartcast source in while or do-while is used as the last statementKT-24737 Report an error on invalid this-expression with angle brackets on left-hand side of a callable referenceKT-21463 Compiler doesn't take into accout a type parameter upper bound if a corresponding type argument is in projectionKT-6822 Smart cast doesn't work inside local returned expression in lambdaKT-55840 Inconsistency between members of enums in bytecode between FE 1.0 + JVM IR and FIR + JVM IRKT-47815 JVM: “Recursion detected in a lazy value under LockBasedStorageManager” when trying to inherit interface from a class with non-trivial functionKT-17817 No error reported on invalid LHS for class literalKT-47373 Missed diagnostics on/after non-null assertion (!!) on generic class class use with class literalKT-51143 Wrong Unit-requiring at if/when branch with stub typesKT-53671 False-positive diagnostic reported on OptIn annotation import from root packageKT-53494 Mistaken type inference in compound ‘if’ expression with nullability check and covariant typeKT-28668 “AssertionError: Unrelated types in SAM conversion for index variable” if lambda argument of ‘[...]’ in LHS of augmented assignment is used as an implementation for different SAM interfacesKT-55931 Inference for callable reference inside synthetic calls for if/when/try/etc stops working when brought into lambda for a callKT-20223 Inline access check ignores operator calls to invoke()KT-54478 @NoInfer causes CONFLICTING_OVERLOADSKT-56472 K2: Add stack of all FIR elements to CheckerContextKT-41126 [FIR] Inconsistency of a compiler behaviour at init block for an enum entry with and without a qualifier nameKT-54931 Annotations defined in nested classes cannot be instantiated directlyKT-52338 “IncompatibleClassChangeError: Expected non-static field” with Kotlin class with same-named companion object property as base Java class fieldKT-24901 No smart cast for when with early returnKT-53086 “Cannot access ‘’ before superclass constructor has been called” with inner class secondary constructorKT-55137 Callable references with conversion are incorrectly allowed to be promoted to KFunctionKT-30497 EXACTLY_ONCE contract doesn't work in a function with vararg parameterKT-47074 Front-end Internal error: Failed to analyze declaration State / java.lang.IllegalStateException: Should not be called! when try to add ParcelizeKT-24503 Return-as-expression is allowed as this/super constructor parameterKT-55379 False positive NO_ELSE_IN_WHEN with smartcast to BooleanKT-47750 False positive NO_ELSE_IN_WHEN in presence of smartcast to sealed interfaceKT-53819 False positive UNINITIALIZED_VARIABLE with secondary constructor and custom property getter in local classKT-56457 JVM: Enum.entries are not annotated with @NotNullKT-56072 K2. “IllegalStateException: Fir2IrSimpleFunctionSymbol for is already bound” when trying to access java synthetic property of inherited classKT-50082 Kotlin non-overriding property of subclass doesn't shadow same-named Java field from base classKT-55822 False positive ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED with raw types and mixed overridden membersKT-55666 K2: label on local function is rejected: “Target label does not denote a function”KT-56283 False-positive INVISIBLE_MEMBER on overridden member of more specific type after smart castKT-51969 [FIR] Compilation for expect value class fails with “Fir2IrSimpleFunctionSymbol for [declaration] is already bound”KT-56329 K2: compiler backend crash on two expected functions with similar signaturesKT-56361 K2/MPP: receiver isn't available in lambda literals with receiverKT-55295 K2/MPP: JS build functionalityKT-55909 [K2/N] IndexOutOfBoundsException for a reference to a function defined in companion object superclassKT-55664 K2: eliminate ClassId.isSame call from FirClass.isSubclassOfKT-56353 K2. False negative “Unresolved reference” in default value of secondary constructor's parameterKT-56381 K2: Function type kind not extracted from lambda literal in generic callKT-55747 K2. “Convention for ‘mod’ is forbidden. Use ‘rem’” error is missingKT-56104 Unnecessary inner classes attributes in class files for subclassesKT-55570 K2: ACTUAL_WITHOUT_EXPECT error is not reported on a simple actual classKT-56176 [K2/N] “IllegalStateException: actual type is kotlin.Int, expected kotlin.Long” when expected type uses typealiasKT-56229 K2: IllegalStateException (already bound) for triangle-like dependencies scheme with MPP scenarioKT-56199 K2 + MPP + kotlinx.serialization: java.lang.VerifyError: Bad type on operand stack in aaloadKT-56212 K2: Exception when compiling extension function declaration with illegally chained type parameter receiverKT-55503 K2: “Argument type mismatch” caused by using the wrong “this”KT-56050 K2: inconsistency regarding visibility of synthetic properties with protected getter and public setterKT-49663 FIR: Support @kotlin.jvm.PurelyImplements for java collectionsKT-55468 [K2/N] Crash with debuginfo caused by changed tree using IMPLICIT_COERCION_TO_UNITKT-56269 [K2/N] Don't test “Tailrec is not allowed on open members” in K2KT-54647 K2: Function call with Lambda on LHS of assignment leads to KotlinExceptionWithAttachments: FirDeclaration was not found for class org.jetbrains.kotlin.psi.KtFunctionLiteralKT-54648 K2: Function call on left side of erroneous assignment isn't resolvedKT-55699 K2. False Negative “Type parameter T is not an expression”KT-56132 Restore ‘JvmBackendContext’ constructor signature for compatibilityKT-55973 K2: Exception from UnusedChecker on an unused destructuringKT-56275 K2 IDE: Missed error for enum super typeKT-54775 K2. “IllegalStateException: Expected FirResolvedTypeRef with ConeKotlinType but was FirImplicitTypeRefImpl ” exception on incorrect codeKT-55528 K2: CFA for property initialization analysis is not run for class initialization graphsKT-54410 K2: Deprecation warning instead of “this declaration is only available since Kotlin X” when language version in project are below required to use language featureKT-55186 K2: No compilation error on calling exception without constructorKT-36776 Treat special constructions (if, when, try) as a usual calls when there is expected typeKT-50947 False negative: FE 1.0 doesn't report type variance conflict error on an inner typeKT-39041 Collection literals should not be allowed inside annotation classesKT-54694 Consider enabling BooleanElvisBoundSmartCasts in K1 or K2KT-54587 K2. CCE on compilation when some operator fun is needed and it is implemented as an extension function for another classKT-52774 Resolve unqualified enum constants based on expected type
Docs & Examples
KT-53643 Update coding style conventions to include rangeUntil operatorKT-57902 Create migration tutorial from kotlin-js to kotlin-multiplatform gradle pluginKT-58381 [Docs][Libraries] Document Path.createParentDirectories
IDE
Performance Improvements
KTIJ-23501 Make main run configuration detection lighterKT-56613 Reduce memory consumption of light classes
Fixes
KTIJ-25855 Infinite “Analyzing...” on .kt files from native source-setKTIJ-25448 When project JDK is less than one defines in jvmToolchain block run with Idea fails with has been compiled by a more recent version of the Java RuntimeKTIJ-25673 Temporarily switch off adding jvmToolchain to new/converted Kotlin projectsKTIJ-25719 K/Wasm: Fix import of wasm projects with Kotlin 1.9.0KTIJ-24136 Files with actual declarations are not highlighted in kotlinx.coroutines projectKTIJ-24390 Kotlin assignment plugin: Imports are not recognized in build logic .kt files for Gradle buildKTIJ-24695 Default Kotlin project can not be synced on Mac M1KTIJ-25302 Wrong variant of serialization plugins is passed to JPS build if the project was imported from GradleKTIJ-25416 “Add import” works incorrectly without formatting the code for root packageKT-57849 K2: contract violation due to implicit java type with annotationKTIJ-24666 Store annotation arguments in clsKTIJ-24667 Store constant expressions in clsKTIJ-24665 Store contracts in clsKTIJ-24543 An option to configure kotlin with JavaScript is available at Tools -> Kotlin menuKT-57857 LC: FakeFileForLightClass: Read access is allowed from inside read-actionKTIJ-25172 Store flexible types in clsKT-57578 SLC: incorrect upper bound wildcardsKT-57917 Analysis API: decompiled value parameters are not resolvedKT-56046 K2 IDE: Avoid redundant resolve from annotationsKT-57569 SLC: incorrect visibility for lateinit var with private setterKT-57547 SLC: non-last vararg value parameter type mismatchKTIJ-25034 K2 IDE: unresolved import treated as unusedKT-57548 SLC: incorrect inheritance list for ComparatorKT-56843 Light classes: certain kinds of constant values in property initializers aren't supportedKTIJ-24676 Enum.entries is red if it's called on enum class from JDK or module without stdlib in dependenciesKT-56868 SLC: IncorrectOperationException on enum annotation arguments that are not valid Java identifiersKTIJ-25048 K2: IDE K2: “Unexpected scope FirNameAwareCompositeScope”KTIJ-24895 K2 IDE: “Invalid FirDeclarationOrigin Synthetic” exception for synthetic “WHEN_CALL” function during highlightingKT-56833 Light classes: Accessors to lateinit properties don't have @NotNull annotationsKTIJ-24768 IDE K2: “IllegalArgumentException Failed requirement at FirJvmTypeMapper”KT-56845 Light classes: Overridden property accessors don't have @Override annotationKT-56441 K2 IDE: reference from Java to ObjectName.INSTANCE of private object is red in IDE, but compiled successfullyKT-56891 Symbol Classes: DefaultImpls classes contain methods without default implementationKTIJ-24742 K2 IDE: InvalidFirElementTypeExceptionKTIJ-24067 K2 IDE: references from .java source to top-level Kotlin members from dependencies are unresolvedKT-56842 Light Classes: Primitive-backed context receiver parameters shouldn't be marked with @NotNullKT-56835 Light classes: Underlying fields for delegated properties should be marked as final and @NotNullKT-56840 Light Classes: Inline classes backed by Java primitives shouldn't be marked with @NotNullKT-56728 K2 IDE. False positive not applicable to for kotlin annotation with target annotating Java elementKTIJ-24610 K2: Exception from import optimizer: “Unexpected qualifier ‘10’ of type 'KtConstantExpression`”KTIJ-24476 Make application services to be classes instead of objectsKTIJ-24574 K2 IDE: “No fir element was found for” from inspectionsKT-55815 SLC: Keep annotations on type when converting to PsiTypeKT-55669 K2 IDE: INRE from light classesKTIJ-24530 K2 IDE: status resolution fails with CCEKTIJ-23937 K2: No ‘JavaSymbolProvider’ in array owner: Source session for module KTIJ-24087 K2: Type parameter bounds found not analyzed during call inferenceKTIJ-24344 K2 IDE: Object reference incorrectly resolves to ‘invoke’ operator functionKTIJ-24107 K2 IDE: Unresolved call for qualified companion invoke()KTIJ-24385 K2 IDE: KtCallExpression(KtCallExpression) should always resolve to a KtCallInfo
IDE. Code Style, Formatting
KTIJ-24928 Organize imports puts imports in one line if Formatter option is used
IDE. Completion
KTIJ-25108 K2 IDE: Code completion in Java context for Kotlin top level members: “Slow operations are prohibited on EDT” through KtAnalysisScopeProviderImpl.canBeAnalysed()KTIJ-24989 K2 IDE: completion should show information about expanded types for type alias parametersKTIJ-24992 K2 IDE: completion shows return type with incorrect nullability when type is stub typeKTIJ-24948 K2 IDE: “ERROR: class org.jetbrains.kotlin.fir.types.jvm.FirJavaTypeRef cannot be cast to class org.jetbrains.kotlin.fir.types.FirResolvedTypeRef” during completion of inner classes' constructorsKTIJ-24256 K2 IDE: Angle brackets are missing in completion of function with type parametersKTIJ-24083 K2, Completion: Exception on adding a type parameter receiver to a functionKTIJ-23963 K2 IDE: Completion in Kotlin suggests overriding a Java field; fails with “Unknown member to override”KTIJ-22359 K2 IDE: no completion for Java synthetic properties from super classKTIJ-23880 Completion doesn't work for Java synthetic property reference
IDE. Decompiler, Indexing, Stubs
KTIJ-25152 Kotlin Bytecode tool window: ISE Symbol with IrSimpleFunctionSymbolImpl is unbound on actual callable with argument in mpp project with IRKTIJ-24475 Migrate kotlin index extension implementation from object to classesKTIJ-24335 Kotlin Bytecode tool window: NoSuchElementException caused by duplicate Boolean type descriptor in JvmSharedVariablesManager.getProviderKTIJ-24206 Kotlin Bytecode tool window: “Unhandled intrinsic in ExpressionCodegen” when compiling a source file with an expect functionKTIJ-15764 IR by default in Kotlin bytecode tool window
IDE. Gradle Integration
KT-59034 MPP build failed with “Factory type is not known for plugin variants” in kt-231-*KT-56671 KGP import: K/N distribution libraries should'n be resolved for IDE by KGP with package namesKTIJ-24573 KGP-based import: commonized cinterop libraries don't include source set targets, unsupported by hostKTIJ-25757 KJS: 1.9.0-Beta fails to run when running in Android StudioKTIJ-24701 KGP import: JVM+Android shared source sets don't receive a correct default stdlib dependencyKTIJ-24745 IDE sync of kotlin(“js”) projects with js(BOTH) set fails with exception because of the new MPP IDE importKTIJ-24567 Enable KGP dependency resolution by defaultKTIJ-24729 KotlinMPPGradleProjectResolverKt must not be requested from main classloader on project importKTIJ-11978 IDE does not recognize the sources JAR of a published to mavenLocal MPP library
IDE. Inspections and Intentions
KTIJ-24684 K2 IDE: ‘Redundant qualifier name’ false positive in type specification in extension functionKTIJ-24662 K2 IDE: False positive “Redundant qualifier name” inspection for nested class from base interfaceKTIJ-25232 K2 IDE: “Redundant qualifier name” inspection false positive with object referenced via propertyKTIJ-25447 Make Enum.entries and RangeUntil inspections don't check for opt-in when APIs become stableKTIJ-23588 K2 IDE. False positive unused import directive for extension function of an objectKTIJ-25112 K2 IDE: False positive “Actual value of parameter ‘b’ is always ‘null’”KTIJ-24485 Explicit API mode: false positive “redundant ‘public’ modifier”KTIJ-24453 Unsuccessfull resolve error from OperatorToFunctionIntention on recursive property declaration
IDE. JS
KT-58427 Kotlin Gradle Plugin ignores language version value for Kotlin/JS sources
IDE. Libraries
KTIJ-25096 K2 IDE: Library sessions are garbage collected between performance test runs with enabled library cachesKTIJ-24413 Cannot navigate to enum of the Kotlin library via entries call
IDE. Misc
KT-58763 K2 IDE: NoSuchMethodError: KtPsiFactory$Companion.contextualKTIJ-25304 Move IDE Extension Points from compiler.xml to the IDE repositoryKTIJ-24893 K2 IDE: Serializable plugin causes infinite resolve recursion
IDE. Multiplatform
KTIJ-25859 MPP: Library wizard with android target uses deprecated androidTest source setKTIJ-25479 Compiler options is not imported correctly for js source setsKTIJ-24011 MPP: Native tests are missing run gutters
IDE. Navigation
KTIJ-23073 K2 IDE: Navigation doesn't work from library sources to another library sourcesKTIJ-24819 K2 IDE: support compiler reference indexKTIJ-24697 K2 IDE: handling PresistenceMap in LLFirSessionsCache takes a lot of timeKTIJ-24373 K2 IDE: Qualified generic type is not fully resolved
IDE. Run Configurations
KTIJ-25046 K2 IDE. Junit5 test method with internal modifier can't be launched using gutter
IDE. Wizards
KTIJ-25932 Turn off the adding new targets in Kotlin Multiplatform WizardKTIJ-26022 Project module not selected in a second page of “New Project” window in KMP wizardKTIJ-24834 Set default for “kotlin.mpp.experimental” flag for K/JS features to true
JavaScript
New Features
KT-12784 JS: generate ES2015 compatible modulesKT-48154 KJS / IR: Inline members support for external typesKT-51582 FIR: support basic compile-time evaluation for JS backend
Fixes
KT-43490 KJS / IR: “Cannot set property message of Error which has only a getter” caused by class that is child of ThrowableKT-57690 K2/MPP: compileProductionLibraryKotlinJs fails with Module has a reference to symbol kotlin/arrayOf|3204918726020768747[0]. Neither the module itself nor its dependencies contain such declarationKT-56911 K2/MPP: Compile K/JS fails for @Serializable annotation with class IrDeclarationOrigin$GeneratedByPlugin cannot be cast to class IrDeclarationOriginImplKT-56950 Support KLIB IC with K2KT-58570 KJS: ES6 classes + PL throw java.lang.NullPointerExceptionKT-58835 K2/JS: Fix incremental compilation klib testsKT-58794 KJS / K2: Assertion failed with Space buildKT-51706 Partial linkage: in case of absent symbol referred from declaration Native compiler is successful, JavaScript failsKT-54452 Kotlin/JS libraries with “joined” legacy+IR content: publish IR sources for themKT-53180 Kotlin/JS: generated TypeScript constructor can have “TS1016: A required parameter cannot follow an optional parameter” error with certain properties orderKT-39650 KJS IR: provide a way to enable ES2015 class generationKT-57990 KJS/IR. Invalid super call for final parent methods (ES classes)KT-58246 KJS: ES15 classses — duplicated code in class constructorKT-57479 KJS: Add an annotation for a function parameter which checks that a passed argument has an external typeKT-58201 Unknown statement type when building with ES modulesKT-30810 values and valueOf are miscompiled for external enum classesKT-57024 Ugly TypeScript definitions for declarations with both @JsExport and @SerializableKT-56237 KJS + IC: Adding or removing interface default implementation doesn‘t invalidate children and doesn’t update JS codeKT-54638 K2/JS: Fir2ir - implement and use JS-specific manglerKT-54028 Native / JS: Using private object implementing a sealed interface causes a linker errorKT-57423 KJS: Add an annotation for external interfaces which allows to be inherited only by other external interfaces, classes or objectsKT-57711 K2: Native & JS fail to compile a KLIB that uses const val from a dependency KLIBKT-57078 JS IC: Unbound symbol left in SymbolTable in JsIr[ES6]InvalidationTestGenerated.testBreakKlibBinaryCompatibilityWithVariance testsKT-57254 Deprecate external enum declarationsKT-57002 KJS: “JsParserException: missing name after . operator” when a js(...) block contains an interpolated constantKT-56961 JS IR: serializedIrFileFingerprints in klib manifest has a wrong formatKT-56282 KJS: Invalidate incremental cache in case of compiler internal errors
KMM Plugin
KT-55402 “Framework not found SQLCipher”: after selection of “Regular framework” as “iOS framework distribution” and installing SqlCihper through CocoaPodsKT-55988 KN debugger in KMM plugin for Android Studio can't recognize the source code
Language Design
New Features
KT-48872 Provide modern and performant replacement for Enum.values()KT-15613 Introduce special syntax for the until operatorKT-4107 Design and implement a solution for toString, equals and hashCode on objects (data object)
Fixes
KT-28850 Prohibit protected visibility in final expected classesKT-39362 Expect fun interface must have actual fun interface counterpartKT-48994 Prohibit type unsound java fields assignmentsKT-58791 Prolongate PROGRESSION_CHANGE_RESOLVE diagnostics to 2.xKT-53778 Release stdlib API about “rangeUntil” operator in 1.9KT-53653 Export Enum.entries to Objective-C and SwiftKT-55177 Deprecate declaration of expect and actual counterparts of same class in one moduleKT-49110 Prohibit access to members of companion of enum class from initializers of entries of this enumKT-47986 Forbid implicit inferring a type variable into an upper bound in the builder inference contextKT-57395 Delay ForbidInferringPostponedTypeVariableIntoDeclaredUpperBound feature to LV 2.0KT-55082 Bump KLib version for Enum.entriesKT-49264 Deprecate infix function calls of functions named “suspend” with dangling function literal
Libraries
New Features
KT-58046 Stabilize remaining kotlin.time API: time sources, time marks, measureTimeKT-58074 Stabilization of Atomics API in K/NKT-55268 Mutiplatform @Volatile annotationKT-51908 Provide common function for getting regex capture group by nameKT-53263 Path.createParentDirectoriesKT-7637 Add toString() to standard delegates classes (NotNullVar, LazyVal, BlockingLazyVal, ...)KT-40728 Add AssertionError constructor with cause: Throwable parameter to common stdlibKT-57298 Avoid FileAlreadyExistsException from Path.createParentDirectories in case of parent is symlink
Performance Improvements
KT-54739 build method in collection builders (Set, Map, List) should return a single instance for empty collectionsKT-42589 Provide common listOf(value) overload to avoid allocation of the varargKT-55091 Stdlib: Sequence.toSet() and Sequence.toList() may create the collection twiceKT-57617 Optimize ReversedListReadOnly iteratorKT-57607 KJS: Bad performance for ArrayList.addAll
Fixes
KT-58841 Serialization: NPE when obtaining a serializer of a sealed base class with a self-referencing propertyKT-57728 Explicitly specify level of stability of programmatically-accessible interoperability APIKT-58985 Update KClass.isData KDocKT-57762 Introduce HexFormat for formatting and parsing hexadecimalsKT-55612 Stabilize experimental API for 1.9KT-58548 Stabilize standard library API for Enum.entriesKT-56400 Disable compilation of atomicfu-runtime with legacy JS backendKT-58276 Deprecate redundant public declarations in kotlin.native.concurrentKT-35973 Extract org.w3c declarations from stdlib-jsKT-58073 JS/Legacy compiler blocks compilation of kotlinx.atomicfu with K2KT-57317 Repack EnumEntries from stdlib into the compilerKT-54702 Native: mark Worker and related APIs as obsoleteKT-55610 Deprecate kotlin.jvm.Volatile annotation in platforms except JVMKT-57404 Native: Support AnnotationTarget.TYPE_PARAMETERKT-57318 Change EnumEntries stdlib implementation to be eagerKT-57137 Native: Consider removing ArrayAsListKT-56661 Missing EnumEntries-related bytecode in kotlin-stdlib-1.9.255-SNAPSHOT.jarKT-51579 PlatformImplementations loading is not compatible with graalvm native-image --no-fallback
Native
KT-54098 Decommission and remove ‘enableEndorsedLibs’ flag from Gradle setupKT-52594 Provide Alpha support for Native in the K2 platformKT-56071 K2/MPP: Native build functionalityKT-56218 [K2/N] Receiver annotations for properties are not serializedKT-56326 [K2/N] RemoveRedundantCallsToStaticInitializersPhase removes important static initializerKT-27002 lateinit intrinsics frontend checkers aren't applied on Native
Native. Build Infrastructure
KT-58160 Native: performance build configuration fails with NoSuchMethodError: ‘boolean kotlinx.coroutines.CompletableDeferredKt.completeWith(kotlinx.coroutines.CompletableDeferred, java.lang.Object)’
Native. C and ObjC Import
KT-54610 Kotlin Native can't call objc_direct functionsKT-57918 [K2/N] Support typealiases in FirClassSymbol<*>.selfOrAnySuperClass()KT-58651 Native c-interop tool generates broken @Deprecated annotationsKT-57541 Compilation fails without explicit cast on cinterop codeKT-54805 KMP ios memory leak when using CA LayerKT-57490 [K/N] Duplicate package names for cinterop klibs with objc protocols fails to link
Native. ObjC Export
KT-58839 K/N: Exception during HiddenFromObjC marked class extension function compilingKT-56464 K/N: Allow HiddenFromObjC for classesKT-57507 K2: Set of Objc exported declarations is different between K1 and K2
Native. Runtime
KT-58441 Kotlin/Native: @ObjCAction @ObjCOutlet generate bridges without switching stateKT-57091 Align Native and Java file/class initialization behavior
Native. Runtime. Memory
KT-56233 [Kotlin/Native] Crash when enum values are accessed in multiple threadsKT-58130 Implement preview of custom allocator for Kotlin/NativeKT-56402 Native: if a Kotlin peer for an Obj-C object is created on the main thread, then Kotlin runtime should run objc_release for it on the main thread
Native. Stdlib
KT-57344 Try to remove strange .equals overload on primitive typesKT-57592 Native: Remove the default parameter value for AtomicLong constructor
Native. Testing
KT-57349 Enable more K2 MPP codegen/box tests for Kotlin/NativeKT-57026 K2: Fix Native test infrastructure for MPP
Reflection
KT-54833 Reflection: Incorrect behaviour for Field.kotlinProperty function in companion objectsKT-56650 ArrayStoreException from InlineClassAwareCaller.call with an array of inline classKT-56093 Metaspace leak in a Gradle plugin built with Kotlin 1.8.0KT-55937 Optimize implementation of kotlinFunction/kotlinProperty
Specification
KT-58932 Specify the priority between candidates with type and value receivers when doing callable reference inferenceKT-54254 Specify that an annotation type cannot have itself as a nested elementKT-53427 Specify @SubclassOptInRequiredKT-53323 Add Enum.entries to Kotlin specification, KEEP-283KT-54255 Specify extension receivers are effectively noinlineKT-53646 Incorporate rangeUntil (..<) operator into specification
Tools. CLI
KT-57495 Add JVM target bytecode version 20KT-57154 Incorrect version of JDK is provided through CoreJrtFsKT-56209 Add CLI support for HMPP in K2KT-58351 Confusing error message when using removed -Xjvm-default mode valueKT-57535 K2: Kotlin command line compiler doesn't see class files on the class path in 2.0KT-57644 K2: Prohibit passing HMPP module structure with CLI arguments to metadata compilerKT-56351 Reduce memory usage spent on compiler settings
Tools. Commonizer
KT-57796 NoSuchFileException in :module-B:commonizeCInterop with Kotlin 1.8.20KT-56207 Investigate failing tests in ClassifierCommonizationFromSourcesTest
Tools. Compiler Plugins
Fixes
KT-57821 K2: Compiler calls declaration generation plugins twice for classes in the common source setKT-57406 FIR Compiler plugins: Assignment plugin incorrectly recognizes qualified names of annotationsKT-57626 K2: SERIALIZER_NOT_FOUND for serializable class from another moduleKT-57400 FIR Compiler Plugins: annotated predicate does not work with Java classesKT-57140 K2: Implement backwards compatibility for FirFunctionTypeKindExtensionKT-56685 K2: ArrayIndexOfBound during session creation if compiler plugins are enabledKT-55375 Remove “legacy” mode of jvm-abi-gen pluginKT-53470 FIR: pass MemberGenerationContext to all methods of FirDeclarationGenerationExtensionKT-51092 Lombok @Value causes IllegalAccessErrorKT-55885 K2 plugin API: Backend-only declarations are not visible from other modulesKT-55584 K2: Improve registration of session components from compiler pluginsKT-55843 FIR Plugin API: metaAnnotated predicate returns meta-annotation itself as wellKT-53874 Optimize checking for plugin applicability and redesign DeclarationPredicates
Tools. Compiler plugins. Serialization
Fixes
KT-58954 Serialization: NPE at run time when accessing a delegating property of a deserialized objectKT-56537 Serialization: Presence of (transient) delegated field in the serialized class breaks deserializationKT-58918 Serialization: NPE at run time obtaining a serializer for a sealed class with a generic self-referencing propertyKT-59113 Serialization: NPE at run time when accessing a delegating property of a deserialized objectKT-57647 Serialization: “IllegalAccessError: Update to static final field” caused by serializable value classKT-57704 K2/serialization: false-positive SERIALIZER_NOT_FOUND when compiling against 1.7.20 binary with enum classKT-57083 K2/serialization: can't resolve serializers for classes from other modulesKT-56480 K2: false-positive warning about incompatible serializer type when using type aliasesKT-56594 K2/serialization reports SERIALIZER_NOT_FOUND over aliased String or primitive typesKT-56553 Support ‘serialization plugin intrinsics’ feature in K2KT-56244 kotlinx.serialization compiler intrinsic does not work with encodeToString function in 1.8.0
Tools. Daemon
KT-50846 Remove “new” Kotlin daemon from codebase
Tools. Gradle
New Features
KT-56971 Expose jvmTargetValidationMode property in KotlinCompile Gradle taskKT-57159 Add project level compiler options for Kotlin/JVM plugin
Performance Improvements
KT-57052 Gradle: Stop using exceptions for flow controlKT-57757 Reduce classpath snapshotter memory consumptionKT-56052 Implement an in-memory wrapper for PersistentHashMap to avoid applying changes to IC caches before successful compilation
Fixes
KT-55624 Update KGP integration tests that use removed in Gradle 8 getClassifier methodKT-59589 Gradle: ‘java.lang.NoClassDefFoundError: com/gradle/scan/plugin/BuildScanExtension’ on 1.9.0-RC when applying Enterprise Plugin from initscriptKT-59063 Explicit API mode broken in Kotlin 1.9.0-BetaKT-57653 Explicit API mode is not enabled when free compiler arguments are specified in Gradle projectKT-59256 [1.9.0-Beta] ServiceLoader does not pick up classes defined in the same projectKT-58662 Gradle 8.1 + Configuration Cache: custom values data is missing from build reportKT-58280 org.jetbrains.kotlin.jvm Gradle plugin contributes build directories to the test compile classpathKT-59191 Actual compilation failure exception might be hidden in the case of a Kotlin daemon crashKT-56211 Improve Kotlin build reportsKT-57767 Gradle: “ZipException: invalid entry size” with 1.8.20KT-57736 K2: Introduce an easy way to try K2 compiler in Gradle user projectsKT-59056 FreeCompilerArgs options added using ‘subprojects’ extension override module-level freeCompilerArgs optionsKT-55740 Gradle 8: Listener registration using Gradle.addBuildListener() has been deprecatedKT-37652 Support explicit mode for Android projectsKT-58251 Build Statistics. Kotlin-specific tags are missing in build scans if projects use Gradle 8+KT-57224 Add an indicator into build metrics report to show whether K1 or K2 compiler was used to compile the codeKT-58571 ExplicitApi mode should not apply for test compilationsKT-42718 Test and AndroidTest sources should be excluded from explicit API requirements for librariesKT-58916 [1.9.0-Beta] PLUGIN_CLASSPATH_CONFIGURATION_NAME and NATIVE_COMPILER_PLUGIN_CLASSPATH_CONFIGURATION_NAME should stay public or offer an alternative APIKT-58869 K2, Gradle: Improve message “100% (2/2) tasks have compiled with Kotlin 2”KT-52811 Kotlin Serialization metadata issue due to incompatibility between Gradle Kotlin embedded version and Kotlin Gradle Plugin versionKT-57330 Provide collection of usage statistics for the DokkaKT-57393 jvm-target value set through ‘android.kotlinOptions’ is ignored and overwritten with the default 1.8 valueKT-58745 KaptGenerateStubs task should also be configured with the same compiler plugin optionsKT-58682 Explicit api mode does not apply in MPP projectsKT-52976 Remove deprecated Gradle conventions usagesKT-58530 Compiler plugin unbundling changes should be backward compatible with Kotlin pluginKT-36904 Adding folders to sourceSets.resources.srcDir() in Gradle script does not workKT-58313 An exception in console if no task is executed and file build reports are enabledKT-58619 Move all pm20 interfaces into Gradle plugin codebaseKT-58320 Kotlin daemon OOM help message is missing on OOM in Kotlin Daemon itselfKT-53923 Add ‘progressive’ compiler argument to Gradle compiler optionsKT-53924 Add ‘optIn’ compiler arguments to Gradle compiler optionsKT-53748 Remove KotlinCompile setClasspath/getClasspath methodsKT-56454 Bump minimal support AGP version to 4.2.2KT-57397 Add infrastructure to use the build-tools-api to run compilation from GradleKT-56946 Switch incremental Gradle tests for K2 to use language version 2.0KT-57782 Disable daemon fallback strategy for Gradle integration tests by defaultKT-57142 Split org.jetbrains.kotlin.gradle.tasks/Tasks.kt into several source filesKT-54447 Remove usage of deprecated internal Gradle field in Kotlin Gradle Plugin, replace with equivalent in public APIKT-49785 Avoid creating task output backups until really neededKT-56047 False positive message about full recompilation is displayed while restoring from build cache and then making a syntax errorKT-56421 Gradle: plugin should not use BasePluginExtension deprecated propertiesKT-55241 Gradle: the VariantImplementationFactories build service state is not persistent making impossible to access factories with configuration cache lazilyKT-56357 Gradle: “DefaultTaskCollection#configureEach(Action) on task set cannot be executed in the current context” because of VariantImplementationFactoriesKT-56352 Make build scan reports more readableKT-55972 Gradle: Add an assertion to all integration tests if warningMode is not FAIL, but the build doesn't produce any warnings
Tools. Gradle. Cocoapods
KT-38749 Support reusing generated C-interop between dependant podsKT-54161 Support adding extra code to generated Podfile from the Kotlin gradle pluginKT-56162 Provide granular Gradle warnings suppression for CocoaPodsIT
Tools. Gradle. JS
New Features
KT-48791 KJS: Support for Power(ppc64le) and Z(s390x)KT-32209 org.jetbrains.kotlin.js does not respect Gradle's archivesBaseNameKT-52646 KJS / Gradle: make “KotlinCompilationNpmResolver already closed” a warningKT-52647 KJS / Gradle: Make “Projects must be configuring” a warningKT-56158 KJS: Support implementation dependencies
Fixes
KT-59604 Unresolved reference: useKarma in convention pluginKT-57604 JS, Space: Circular dependency between tasksKT-59116 K/JS npm dependcies are not resolved properly on Kotlin 1.9KT-54731 KJS / Gradle: “There are multiple versions of “kotlin” used in nodejs build: 1.6.21, 1.7.20.” with kotlin-dsl in buildSrcKT-58970 browserTest gradle task fails if karma is used and gradle configuration cache is enabledKT-59004 Kotlin JS 1.9.0-Beta, yarn.lock is unstable in multi module projectKT-56458 KJS / Gradle: Unnecessary and confusing “There are multiple versions of “kotlin” used in nodejs build” generated from YarnImportedPackagesVersionResolverKT-57985 K/JS: packageJson Gradle configurations don't inherit unique attributes from JsTarget DSLKT-57817 JS: executables for couple of JS targets builds in the same directoryKT-58199 K/JS: Remove useCoverage methodKT-57116 KJS / Gradle: commonWebpackConfig not applied if called after binaries.executable()KT-58522 K/JS: Upgrade NPM dependency versionsKT-57629 K/JS: Change default destination of JS production distributionKT-57480 K/JS: Use IR compiler by default without explicit choosing of js compilerKT-58345 K/JS: Webpack task skipped with ES modules because files have mjs extensionKT-58071 KJS / Gradle: jsNodeTest task is not incrementalKT-43809 KJS: browserProductionExecutableDistributeResources tasks deletes distributions directoryKT-56690 Kotlin2JsCompiler friendDependencies cannot be configured through friendPathsKT-57920 K/JS: Make imported NPM package not considering dev dependenciesKT-56025 KJS / Gradle: Gradle 8.0 jsBrowserProductionWebpack uses the output of another project's jsProductionExecutableCompileSyncKT-57630 K/JS: webpack updating twice on one change of kt sourcesKT-47351 KJS / IR: :jsTestPackageJson is unable to find nested included builds under composite buildKT-44754 K/JS: browserRun --continuous keeps rebuilding without any changesKT-49774 KJS / Gradle: Errors during NPM dependencies resolution in parallel build lead to unfriendly error messages like “Projects must be closed”KT-57387 Remove support of webpack 4KT-57386 Kotlin/JS upgrade npm dependenciesKT-56705 KJS / Gradle: Module name starting with ‘@’ isn't properly set when FUS is disabledKT-46428 KJS / IR: Composing build failed “Failed to create MD5 hash for package.json”KT-53687 Don't trigger npm and yarn related tasks if it not relevant for assembleKT-49915 KJS / Gradle: Gradle build cache miss because of absolute path in KotlinJsIrLink.filteredArgumentsMapKT-56192 KJS: In browser testing no original sources in stacktraceKT-42395 Kotlin/JS: Gradle DSL: PackageJson.customField() does not accept nullKT-43305 Support Node.JS downloading for UbuntuKT-48631 KJS: Unconditionally uses linux/x86 binariesKT-38015 NodeJS installation does not extract symlinks correctly (npm and npx)
Tools. Gradle. Multiplatform
New Features
KT-34662 Provide an option for Android targets to compile & run commonTest tests as unit tests only, instrumented tests only, or bothKT-55881 Add possibility to enable/disable sources publication similar to Java Gradle Plugin API
Fixes
KT-59446 MPP: transformCommonMainDependenciesMetadata failing for api java dependency in shared jvm source set with Future was not completed yetKT-55751 MPP / Gradle: Consumable configurations must have unique attributesKT-57688 MPP: compileDebugKotlinAndroid task fails with llegalArgumentException: ‘moduleName’ is null!KT-56210 Pass module structure to CLI of K2 if K2 enabledKT-57531 KotlinNativeLink: StackOverflowError when consuming library with dependency cycles (from constraints)KT-58281 Kotlin Gradle Plugin: Enable Kotlin/Android SourceSetLayout v2 by defaultKT-57903 Prepare for migration to the pluggable android target pluginKT-49933 Support Gradle Configuration caching with HMPPKTIJ-25644 KGP import: ‘KotlinRunConfiguration’ won't be able to infer correct runtime classpathKT-58661 KGP: KotlinJvmTarget: Implement ‘run’ carrier taskKT-59055 KotlinJvmRun not respecting jvmToolchain settingKT-57959 Module-name value can't be changed for the android target of a multiplatform projectKT-55506 TCS: Gradle Sync: kotlin-stdlib-common is not filtered from JVM + Android source setsKTIJ-25732 Flaky: KotlinMultiplatformSmokeTests .testJvmAndNativeKTIJ-25039 New import can add unresolved dependency as emptyKT-57652 Don't expose sourcesElements for project2project dependenciesKT-58601 Finalise “ExternalKotlinTargetApi” shape for initial 1.9 releaseKT-58710 External Target Api: Add API to control SourceSetTreeKT-58488 Add a diagnostic message to KGP in case of val androidTest by getting usageKT-57482 cleanNativeDistributionCommonization is not compatible with configuration cache with gradle 8.0KT-58062 Commonizer configuration cache not compatible with Gradle 8.1KT-58086 Warn about using MPP libraries published in the legacy modeKTIJ-24254 KotlinProjectArtifactDependencyResolver returning too earlyKT-56439 TCS: Gradle Sync: IdeBinaryResolver: Add componentFilter API for compilations/configurationsKT-57023 Cryptic Gradle task descriptions for compile tasksKT-58470 Warning about using MPP libraries published in the legacy mode is not reported if the dependency is declared in an intermediate source setKT-58466 K2 Gradle: non *.kt files are passed to -Xfragment-sourcesKT-58319 kotlin.git: ProjectMetadataProviderImpl “Unexpected source set ‘commonMain’”KT-51940 HMPP resolves configurations during configurationKT-58261 Link kotlin native binary framework tasks fails when configuration cache is enabledKT-41506 UnknownDomainObjectException: “KotlinSourceSet with name not found” when creating custom compilations after applying withJava to an MPP JVM targetKT-58209 Do not use the term ‘Module’ in KotlinTargetHierarchyKT-56153 When the dependency is unresolved, import fails and don't import anything instead of degrading gracefullyKT-56571 New import broke apiVersion for commonMain, commonTest and jvmAndAndroidMain modulesKTIJ-24552 TCS: KotlinMppGradleProjectResolverExtension: Add ‘afterProjectResolved’ APIKTIJ-24368 Multiplatform;Composite Builds: prepareKotlinIdeaImport not executed on included buildsKTIJ-24377 Multiplatform;Composite Builds: Unresolved symbols from a root project of included buildKT-56712 Multiplatform;Composite Builds: Classpath isolation: .MppDependencyProjectStructureMetadataExtractorFactory cannot be cast to class *MppDependencyProjectStructureMetadataExtractorFactoryKT-56461 MPP: resolvableMetadataConfiguration: Ensure consistent resolution across all compile dependenciesKT-56841 MPP: Module-to-module dependencies don't work inside included build in included buildKT-42748 Project that transitively depends on composite build of multimodule multiplatform library cannot resolve dependencies properlyKT-52356 MPP / Gradle: Missing common classes on KMM project integrated via Gradle included build into an Android applicationKT-51293 Unresolved references with hierarchical project structure when building KotlinMetadata from native-common source setKTIJ-24771 Multiplatform: Composite builds do not resolve in IDEA when rootProject.name != buildIdentifier.nameKT-56700 V2 MPP Source Set layout warnings should include link to docsKT-55926 TCS: Gradle Sync: Import Extras on KotlinSourceSet and KotlinTargetKTIJ-24364 KotlinProjectArtifactDependencyResolver: Extend API to include information about ‘requesting source set’KTIJ-24365 KotlinMPPGradleProjectResolver: Create extension points for other plugins (Android)KT-55730 MPP / Gradle: compileKotlinMetadata fails to resolve symbols in additional source sets
Tools. Gradle. Native
KT-58838 KGP/Multiplatform: 1.9.0-Beta with custom cinterops: IllegalStateException: Could not create domain object ‘jni’ (DefaultCInteropSettings)KT-57823 KotlinNativeCompileOptions.moduleName value is ignored and replaced with the default one if to set up using compilationsKT-57815 KotlinNativeCompileOptions.moduleName isn't accessible if to configure using compilerOptions.configure {}KT-57944 K2: K2, MPP, Native: K2 reports “Source does not belong to any module” for native sourcesKT-53108 Expose Kotlin/Native compiler options as Gradle DSLKT-58063 Kotlin/Native tasks configuration cache are not compatible with Gradle 8.1KT-38317 Kotlin/Native: NSURLConnection HTTPS requests fail in iOS tests due to --standalone simctl flagKT-56280 Gradle: freeCompilerArgs are no longer propagated from compilations to Native binaries
Tools. Incremental Compile
KT-58289 IC fails to detect a change to class annotationsKT-58986 New IC: ISE “The following LookupSymbols are not yet converted to ProgramSymbols: LookupSymbol(name=$$delegatedProperties, ...)”KT-56197 If use classpathSnapshot, the invoke place of subclass's super function who has default parameters will not recompiled if it is incremental buildKT-56886 K2: Changes to Java sources used in Kotlin project do not trigger a rebuild if a previous build was successful
Tools. JPS
KTIJ-25384 JPS plugin: serialization plugin is not applied to modulesKT-56438 Add minimal statistic report for JPS buildKT-58314 kotlin-build-statistics is missing for kotlin-jps-pluginKT-55696 JPS IC K2 - fix new failing tests with Java interopKT-57102 SCE: DefaultErrorMessages$Extension: DefaultErrorMessagesWasm not a subtype after adding WASM error messages
Tools. Kapt
KT-54468 KAPT Gradle plugin causes eager task creationKT-59521 Kapt maven plugin require version of annotation processorKT-58301 K2: Compile Kotlin task failure for the generated by Kapt sources : 'Source NameOfTheGenerated.kt does not belong to any moduleKT-57598 K2: Support a fallback mode executing Kapt with K1 even when the compiler is run with languageVersion=2.0KT-58226 KAPT: “org.jetbrains.kotlin.psi2ir.generators.ErrorExpressionException: null: KtNameReferenceExpression” with enum with secondary constructor
Tools. Maven
KTIJ-25445 Maven. JVM target is imported as 1.6 when no target specified in pom.xml
Tools. Parcelize
KT-59112 K2: “IllegalStateException: Function has no body with @Parcelize” on nested sealed class hierarchies
Tools. Scripts
KT-58366 The obsolete kotlin-script-util jar is still published and contains broken JSR-223 implementation
Tools. Wasm
KT-56585 Change wasmBrowserRun Browser Executable to System DefaultKT-56159 Running (karma) tests doesn't work in a project generated by wizard “Browser Application for Kotlin/Wasm”KT-57203 Update Kotlin/Wasm to support Gradle 8
1.9.0-RC
Backend. Wasm
KT-58188 Restore binary compatibility of PlatformDiagnosticSuppressor.shouldReportUnusedParameterKT-58293 Wasm: ReferenceError: e is not defined in kotlin.test.jsThrowKT-58931 Wasm tests are failing to start on Kotlin 1.9.0-Beta
Compiler
Fixes
KT-58621 K2: Private class shadows public function defined in the same packageKT-59102 K2: constant evaluator does not provide Long type on shlKT-59079 “AE: SyntheticAccessorLowering should not attempt to modify other files!” with callable reference to constructor with value class parameterKT-58787 KAPT: “NullPointerException: null cannot be cast to non-null type” with delegateKT-58837 Partial linkage fails to report any compiler message on Windows when launched through Gradle pluginKT-59030 [PL] Workaround for broken @Deprecated annotations in c-interop KLIBsKT-58618 K2: Local property delegates cannot infer generic return typeKT-58897 K2: False positive unresolved reference with same-named enum class and its entryKT-56927 Enum with secondary constructor can't be compiled with K2 using JS/Native backendKT-57570 Remove source code excerpts from platform type nullability assertion exceptionsKT-52774 Resolve unqualified enum constants based on expected type
IDE. Gradle Integration
KT-59034 MPP build failed with “Factory type is not known for plugin variants” in kt-231-*
JavaScript
KT-58570 KJS: ES6 classes + PL throw java.lang.NullPointerExceptionKT-58835 K2/JS: Fix incremental compilation klib testsKT-58794 KJS / K2: Assertion failed with Space build
Libraries
KT-58985 Update KClass.isData KDocKT-58276 Deprecate redundant public declarations in kotlin.native.concurrent
Native. ObjC Export
KT-58839 K/N: Exception during HiddenFromObjC marked class extension function compiling
Tools. Compiler plugins. Serialization
KT-58918 Serialization: NPE at run time obtaining a serializer for a sealed class with a generic self-referencing propertyKT-58954 Serialization: NPE at run time when accessing a delegating property of a deserialized objectKT-59113 Serialization: NPE at run time when accessing a delegating property of a deserialized objectKT-57647 Serialization: “IllegalAccessError: Update to static final field” caused by serializable value class
Tools. Gradle
KT-59256 [1.9.0-Beta] ServiceLoader does not pick up classes defined in the same projectKT-58662 Gradle 8.1 + Configuration Cache: custom values data is missing from build reportKT-59063 Explicit API mode broken in Kotlin 1.9.0-BetaKT-59191 Actual compilation failure exception might be hidden in the case of a Kotlin daemon crashKT-59056 FreeCompilerArgs options added using ‘subprojects’ extension override module-level freeCompilerArgs optionsKT-55740 Gradle 8: Listener registration using Gradle.addBuildListener() has been deprecatedKT-58251 Build Statistics. Kotlin-specific tags are missing in build scans if projects use Gradle 8+KT-58916 [1.9.0-Beta] PLUGIN_CLASSPATH_CONFIGURATION_NAME and NATIVE_COMPILER_PLUGIN_CLASSPATH_CONFIGURATION_NAME should stay public or offer an alternative APIKT-58869 K2, Gradle: Improve message “100% (2/2) tasks have compiled with Kotlin 2”
Tools. Gradle. JS
KT-59116 K/JS npm dependcies are not resolved properly on Kotlin 1.9KT-58970 browserTest gradle task fails if karma is used and gradle configuration cache is enabledKT-59004 Kotlin JS 1.9.0-Beta, yarn.lock is unstable in multi module project
Tools. Gradle. Multiplatform
KT-57903 Prepare for migration to the pluggable android target pluginKT-58661 KGP: KotlinJvmTarget: Implement ‘run’ carrier taskKT-59055 KotlinJvmRun not respecting jvmToolchain setting
Tools. Gradle. Native
KT-57823 KotlinNativeCompileOptions.moduleName value is ignored and replaced with the default one if to set up using compilationsKT-58838 KGP/Multiplatform: 1.9.0-Beta with custom cinterops: IllegalStateException: Could not create domain object ‘jni’ (DefaultCInteropSettings)
Tools. Incremental Compile
KT-58986 New IC: ISE “The following LookupSymbols are not yet converted to ProgramSymbols: LookupSymbol(name=$$delegatedProperties, ...)”
Tools. Parcelize
KT-59112 K2: “IllegalStateException: Function has no body with @Parcelize” on nested sealed class hierarchies
1.9.0-Beta
Analysis API
New Features
KT-57930 Analysis API: provide an API for extending Kotlin resolutionKT-57636 K2: Add the return type of K2 reference shortener AA ShortenCommand::invokeShortening() e.g., ShorteningResultInfo to allow callers to access the shortening result PSI
Fixes
KT-55626 Impossible to restore symbol by psi from script fileKT-57314 LL FIR: Combine LLFirProvider$SymbolProviders in session dependencies (optimization)KT-55527 K2 IDE: Rewrite KtScopeContext class to allow to handle each scope separatelyKT-55329 LL FIR: Unexpected ACTUAL_WITHOUT_EXPECT error on constructor and function declarationKT-50732 LL API: fix compiler based testsKT-57850 K2: contract violation due to SymbolLightAccessorMethod.propertyAccessorSymbolKT-56543 LL FIR: rework lazy transformers so transformers modify only declarations they suppose toKT-56721 K2: FirExtensionDeclarationsSymbolProvider: java.lang.IllegalStateException: Recursive updateKT-50253 Analysis API: Solve issues with ProcessCancelledExceptionKT-56800 K2 IDE: optimize deprecation calculation for symbolsKT-55006 Analysis API does not transform Java type refs for callable symbol return typesKT-57256 AA FIR: Reduce lazy resolve phase for deprecation statusKT-58141 K2: AA FIR: impossible to restore symbol for declaration with annotation with argument inside typeKT-57462 Symbol Light Classes: SymbolLightFieldForProperty should retrieve annotations not from KtPropertySymbol, but from the corresponding backing fieldKT-58249 Analysis API: Disable error logging for FE10 implementation of resolveCall when resolve is not successfulKT-54864 Analysis API: add function to get expect KtSymbol list by actual KtSymbolKT-56763 Analysis API: .KtSourceModuleImpl is missing in the map. on symbol restore when symbol cannot be seen from the use-site moduleKT-56617 Analysis API: optimize KtFirSymbolProviderByJavaPsi.getNamedClassSymbolKT-54430 K2: .getAllOverriddenSymbols() returns invalid results
Backend. Native. Debug
KT-55440 Kotlin/Native debugger: inline function parameters are not visible during debugging
Backend. Wasm
KT-57136 K/Wasm: Restrict non-external types in JS interopKT-57060 Clarify the lack of support for dynamic in Kotlin/WasmKT-56955 K/Wasm: Support restricted version of K/JS js(code)KT-57276 Wasm: “Body not found for function” error when compiling konform library with Kotlin/Wasm supportKT-56976 K/Wasm bug with calling override of external function with default parametersKT-56584 K/Wasm: Can't link symbol class
Compiler
New Features
KT-49276 Warn about potential overload resolution change if Range/Progression starts implementing CollectionKT-55333 Allow secondary constructors in value classes with bodiesKT-54944 @Volatile support in nativeKT-54746 Deprecate with ERROR JvmDefault annotation and old -Xjvm-default modesKT-29378 K2: rework warnings/errors for equality/identity operators on incompatible typesKT-57010 Kotlin/Native: make it possible to compile bitcode in a separate compiler invocationKT-55691 K2: Avoid inferring Nothing? in presence of other constraints (beside type parameter bounds)KT-46288 Unexpected behavior of extension function on lambda with suspend receiverKT-24779 Inconsistent smart cast behavior for bound data flow values
Performance Improvements
KT-56906 FIR: Use cached instance of FirImplicitTypeRefImpl in FIR buildersKT-56276 LanguageVersion.getVersionString() allocates 5k objects on project opening
Fixes
KT-56609 K2: False positive NULL_FOR_NONNULL_TYPE with -Xjsr305=strict and @Nullable annotation Java parameterKT-56656 K1/K2: inconsistent NOTHING_TO_OVERRIDE with complex nullable annotationsKT-58332 K2: local fun with suspend type is not marked as suspend in IRKT-57991 K2: Modifier ‘suspend’ is not applicable to ‘anonymous function’KT-4113 No smartcast for nullable lambda property (functional type) with implicit/operator invoke callKT-54294 K2: “Not all type variables found” in builder inference with type parameters inferred through a union of two branchesKT-52597 Provide Alpha Support for Multiplatform in the K2 platformKT-58523 K2: reference is resolved to imported type-alias instead of identically named top-level propertyKT-57098 Native: avoid object initialization while accessing const valKT-57973 32-th default value in inline classes override function is not usedKT-57714 “IllegalStateException: <B::!>” using reified genericsKT-57810 toString of object erroneously considered as constant function in string concatenationKT-58076 K2: Incorrect inference of type of labeled receiverKT-57929 K2: Arguments of annotations are not calculated in a lot of strange locationsKT-55388 Consider enabling ProhibitUsingNullableTypeParameterAgainstNotNullAnnotatedKT-53041 NPE in Kotlin 1.7.0 when using RxJava Maybe.doOnEvent with anonymous parametersKT-54829 Cleanup local types approximation logicKT-38871 Kotlin Gradle DSL, MPP: UNUSED_VARIABLE when configuring a sourceset with delegated propertyKT-58587 MUST_BE_INITIALIZED must take into account effectivelly finalKT-58524 K2: false-positive overload resolution ambiguity error on invoking a generic class's member function with id-shaped function-typed parameter on intersection-typed receiverKT-53929 Enum.entries: consider changing scope behavior in K1KT-58520 K2: FIR2IR: ISE during const evaluation of operator times with exposedKT-56662 K1: false negative INVISIBLE_SETTER for a var with internal setter accessed from a derived classKT-57770 K2: Support generation of serializer if base class for serializable class declared in different moduleKT-58375 Kapt: “wrong number of type arguments. required 1” when more than 22 type argumentsKT-56077 K2: build atomicfuKT-56074 K2: build Space JVM (snapshot 2022.3)KT-48870 [FIR] Different behavior for explicit receiver resolution inside delegated constructorsKT-53865 Partial linkage: overriding function with parameter losing vararg: Native is successful, JS fails in runtimeKT-53568 Partial linkage: absent class as type parameter bound causes failure of compileProductionExecutableKotlinJsKT-53608 Partial linkage: Kotlin/JS fails with IllegalStateException: “Validation failed in file” when overridden declaration was visible, but now privateKT-53663 Partial linkage: usage of property which becomes abstract: no IrLinkageError, but AssertionError in Native backend insteadKT-53938 Partial linkage: with turning interface into class and using as second parent Native build failsKT-53939 Partial linkage: with turning object into class linkNative and jsTest tasks failKT-53941 Partial linkage: with turning class into object accessing member via parameterless constructor does not failKT-53970 Partial linkage: on turning nested class into inner JS tasks are successful, Native build failsKT-53972 Partial linkage: turning inner class into nested: with usage in executable Native fails with NPE in backendKT-53971 Partial linkage: turning inner class into nested: without usage in executable Native is successful, JavaScript failsKT-53995 Partial linkage: on turning class to abstract and direct constructor call Naive fails, JavaScript is successfulKT-58013 K2: “Not enough information to infer type variable T” when using assert non-null (!!) and delegationKT-54045 Partial linkage: turning class into type alias + calculating implicit function type: build fails with UninitializedPropertyAccessException: “lateinit property parent has not been initialized”KT-54046 Partial linkage: turning type alias into class + using it as type: build fails with AssertionError: “Expected exactly one delegating constructor call but none encountered”KT-53887 Partial linkage: turning from enum to regular class + reference to enum contant causes compileProductionExecutableKotlinJs fail with IllegalStateExceptionKT-54047 Partial linkage: reference to removed enum const causes JS fail with “IllegalStateException: Validation failed in file”KT-54048 Partial linkage: reference to removed enum const in runtime causes Native fail with IllegalStateException at IrBindablePublicSymbolBase.getOwner()KT-57784 “NullPointerException: Parameter specified as non-null is null:” with enum, companion object, ‘entries’ and mapKT-58365 K2: Fix stub types leakage in builder inference caused by implicit receiver type update with partially resolved calls (IGNORE_LEAKED_INTERNAL_TYPES for stub types)KT-58214 Continuation parameter only exists in lowered suspend functions, but function origin is LOCAL_FUNCTION_FOR_LAMBDAKT-58135 K2: Priority of extension property is lower than ordinary propertyKT-57181 [K1/N, K2/N] Expect and Actual funs have different IdSignature.CommonSignature, if Expect has default argumentKT-56023 Constant operations (e.g. division) are not constant in K2 (JS, Native)KT-57354 In suspend function default arguments are sometimes not deleted in IRKT-55242 K2/MPP: basic build/link functionalityKT-57979 K2: Unresolved reference error when assigning to Java synthetic property with a different nullability getterKT-58142 K2: val parameter with more specific type is lower priorityKT-54518 False negative NON_PUBLIC_CALL_FROM_PUBLIC_INLINE when calling internal method of super classKT-58025 K2: Argument type mismatch when using Springs HandlerMethodArgumentResolverKT-57373 K2: FIR properties synthesized when implementing interface by delegation don't have accessorsKT-58259 Unexpected unresolved function call with obvious invoke-convention desugaringKT-57135 K2: Fir should take into account an annotation's allowed targets as well as the use-site target when deciding whether it applies to a property, a field, or a constructor parameterKT-57958 K2: Initializer type mismatch when using extension property on type with star projectionKT-58149 K2: New inference error with buildListKT-58008 K2: “Cannot find cached type parameter by FIR symbol: T” on suspend function with generic and nested classKT-57835 K2: compiler crash on lambda with dynamic receiverKT-56500 The type parameter TYPE_PARAMETER name:E index:0 variance: superTypes:[kotlin.Any?] reified:false is not defined in the referenced function FUN LOCAL_FUNCTION_FOR_LAMBDAKT-58143 K2: overload resolution ambiguity inside dynamic lambdaKT-58132 K2: Implicit int constant to long converion crashes FirSerializerKT-57378 Partial linkage: Run codegen box tests for Native & JS with enabled PLKT-58207 K2: Handle result of completion of synthetic call with callable reference argumentKT-56549 K2: Reference to Java sealed class fails to compileKT-57994 K2: Type inference failed on function referenceKT-58099 interop0 test fails with error “type kotlin.String? is not supported here: doesn't correspond to any C type”KT-57671 Synthetic $EntriesMappings declaration is public and generated even for enums from current module on ICKT-56517 K2: Reference to Java record fails to compile: “unresolved reference”, “Overload resolution ambiguity between candidates”KT-58163 FIR: deserialized default property setter and getter must have FirResolvePhase.ANALYZED_DEPENDENCIES phaseKT-55646 K2: Report definitely non-nullable as reified errorKT-56442 K2: Make sure K2 has the same behavior for defaults with overrides as K1 hasKT-55904 Fix tests for volatile annotation on K2KT-57928 K2: Arguments of annotations on constructor value parameter are not calculatedKT-57814 K2: Argument type mismatch with delegating propertyKT-56490 Implement deprecation for an anonymous type exposed from inline functions with type argumentKT-57962 K2: No set method providing array access on dynamicKT-57353 K2: unresolved reference when using fully qualified object declaration name as an expression, when a declaration package is from another klib and has at least two name segmentsKT-57988 K2: compiler exception on get operator on dynamic thisKT-57960 K2: incorrect type inference in lambda with dynamic receiverKT-56511 K1: false negative SMARTCAST_IMPOSSIBLE when alien constructor property is accessed from a private classKT-55079 Refactor DiagnosticReporterByTrackingStrategy and fix some “diagnostic into black hole” problemsKT-57961 K2: Unresolved reference using dynamic lambda parameterKT-57880 K2: false-positive argument type mismatch due to lambda receiver shadowing labeled outer lambda receiver when assigning lambda to variableKT-57947 K2: Incorrect resolution results when property type for invokeExtension is not inferredKT-56687 Unexpected behaviour with enum entries when using outdated stdlibKT-57806 K2: string interpolation as annotation parameter causes errorKT-57611 K2: Annotation arguments are not evaluatedKT-56190 [K2/N] Const initializers are not serialized to klibKT-57843 K2: Missing diagnostic when calling constructor through typealias whose expansion has a deprecationKT-57350 FIR: deprecation diagnostic is not reported on a super class callKT-57769 [K2] Load properties in proper order for classes compiled with kotlinx.serialization and LV < 2.0KT-56258 VerifyError: Bad local variable type when using -XdebugKT-57839 K2: Compiler crash on lambda returning anonymous object with implemented lambdaKT-57822 K2: Can't refer to external interface from class literalKT-57809 K2: No value passed for parameter of external classKT-56383 Build intellij master with LV 1.9KT-55056 Builder inference causes incorrect type inference result in related callKT-30905 Expect var property with default public setter matches with actual var property with private setterKT-56030 [K2/N] Support Objective-C overloading by param names onlyKT-57665 K2: incorrect resolution of dynamic typeKT-57763 FirExtensionRegistrar extension point brokenKT-40903 Forbid actual member in expect classKT-56965 K/N: linkDebugFrameworkIosArm64 tasks failing with UnsupportedOperationException: VAR name:disposables type:com.badoo.reaktive.disposable.CompositeDisposable [val]KT-57768 Don't decompile code to search for annotation argumentsKT-55628 Diagnostics for kotlin.concurrent.Volatile annotation applicabilityKT-56815 compileKotlin task is stuck with while(true) and suspend functionKT-55860 K2. [CONFLICTING_INHERITED_MEMBERS] for inheritor of a class with overloaded generic functionKT-55316 K2. IllegalStateException on incorrect import directive nameKT-55804 K2: UNSAFE_CALL Non-nullable generic marked as nullable even if non-null assertedKT-55405 K2: false-negative INVISIBLE_REFERENCE in import directivesKT-54781 K2: no error on unresolved import statement with more than one packageKT-55902 K2: Support ImplicitIntegerCoercion annotationKT-56577 Migrate Native KLIB ABI compatibility tests to K2KT-56603 [K2/N] Segfault invoking fun from binary compatible klibKT-54894 K2: False positive RETURN_TYPE_MISMATCH on function which returns a functional type with @UnsafeVariance argumentKT-57602 K2: Rework member scope of types having projection arguments for covariant parametersKT-50550 False positive NO_ELSE_IN_WHEN with annotated when branch conditionKT-57431 K2 MPP JS: Compiler crash on transitive common dependenciesKT-57510 K2: Data class equals/hashCode/toString methods are not written to Klib metadataKT-56336 [K2/N] Multiplatform test fails with unexpected “actual declaration has no corresponding expected declaration” compiler errorKT-57556 K2: Rename error ‘This API is not available after FIR’KT-56583 K1: Implement opt-in for integer cinterop conversionsKT-23447 Integer.toChar compiles to missing methodKT-46465 Deprecate and make open Number.toChar()KT-56119 BinaryVersion.isCompatible binary compatibility is brokenKT-56527 K2: “AssertionError: Assertion failed” during compilation in SequentialFilePositionFinderKT-55469 [K2/N] equals(Double,Double) and equals(Boolean,Boolean) are not foundKT-55055 K1: Builder inference violates upper boundKT-57316 Initialize Enum.entries eagerly: avoid using invokedynamicsKT-57491 Kotlin synthetic parameter looks ordinaryKT-56747 [K2/N] Return type for lambda: (Any) -> Any which returns Unit is different for K1 and K2 and return statement is missing with K2KT-57211 K2: incorrect “error: an annotation argument must be a compile-time constant” on unsigned array in annotation argumentKT-57424 K2 IDE: “By now the annotations argument mapping should have been resolved” exceptionKT-56171 Implement deprecation warning for missing PRIVATE_CLASS_MEMBER_FROM_INLINE errorKT-57241 K2 MPP: Actualization doesn't work for actual enum that has primary constructor with argumentsKT-57210 K2 MPP: Support of arguments with dynamic typeKT-57182 K2 MPP: Actualization doesn't work for nested objectsKT-56344 K2: Implement correct errors reporting of IrActualizerKT-54405 K2 compiler allows val redeclarationKT-54531 [K2] Uncaught Runtime exception is thrown instead of user friendly error messages with details in case -no-jdk option set to trueKT-57131 K2: stdlib test compilation fails on ListTest.kt in FirJvmMangleComputerKT-56913 K2: Incorrect line numbers in overriden field getters and settersKT-56982 K2: Incorrect line number start in when expressionKT-56720 K2: false positive MANY_IMPL_MEMBER_NOT_IMPLEMENTED in case of delegation in diamond inheritanceKT-57198 K2: false-positive type mismatch error on inherited raw-typed class with type parameters in upper bounds of other type parametersKT-15470 Inconsistency: use-site ‘set’ target is a compilation error, use-site ‘get’ target is okKT-57405 K2. Function call ambiguity error when nullable String is passed to function with Spring @Nullable annotation in signatureKT-57242 Equals behaviour for value classes implementing interfaces is different between 1.8.10 and 1.8.20-RCKT-57261 “IllegalArgumentException was thrown at: MemoizedInlineClassReplacements.getSpecializedEqualsMethod” when comparing non-inline class instance with an inline class instanceKT-27261 Contracts for infix functions don't work (for receivers and parameters)KT-57036 Unresolved reference: with inferred type of class constructor with extension parameterKT-56177 K2: FIR should not generate annotation on both property and parameterKT-54990 NI: Type mismatch when encountering bounded type parameter and projectionsKT-57107 Handling of Windows line endings CRLF broken in latest snapshot with K2KT-57117 K2: Compiler reports invalid columns in diagnostics in case of crlf line endingsKT-55828 [K2/N]: Fix test fails in OPT mode : Internal compiler error: no implementation found ... when building itable/vtableKT-56169 False negative deprecation warning about future inference error with builder inferenceKT-56657 K1/K2: inconsistent behavior in nullability mismatch (Guava hash set/map)KT-56379 K2: build tests for the Kotlin standard libraryKT-56079 K2: build YouTrack 2022.3KT-56696 K2: Allow to access uninitialized member properties in non-inPlace lambdas in class initializationKT-56630 FIR: ClassCastException on compilation hierarchy with a raw typeKT-57171 K2: Implement bytecode testsKT-56814 K2. PsiElement is null inside IrClass. As a result ClassBuilder defineClass gets null as originKT-54758 Deprecate ClassBuilderInterceptorExtension.interceptClassBuilderFactory and provide another method without dependency on K1KT-57253 K2: clean up callable reference logic in FIR2IRKT-56225 K2. “BackendException: Backend Internal error: Exception during IR lowering” error on incorrect constructor in inline classKT-56769 K2. Annotation applicability is ignored during compilation when there's use-site @targetKT-56616 K2: cannot infer Java array type properlyKT-56506 K1/K2 inconsistency: VAL_REASSIGNMENT on synthetic setter with different nullabilityKT-56665 K2: false positive RECURSIVE_TYPEALIAS_EXPANSIONKT-53966 K2 does not support SAM conversions with condition into Java/Kotlin functional interfacesKT-56013 K2. a set of errors about local properties are missingKT-56771 FIR: Increment operator on qualified expressions leads to exception from resolveKT-56548 K2: false positive overload resolution ambiguity for Java record constructorKT-56476 K2: false positive NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY at inline fun use-siteKT-56138 K2: Illegal conversion of lambda with parameters to ExtensionFunction expected typeKT-55966 K2: Not enough information to infer type variable K if smartcast is usedKT-55423 K2: Implement CONTRACT_NOT_ALLOWEDKT-53846 K2 / Context receivers: ClassCastException on secondary constructor of class with context receiverKT-57029 Per-file caches fail on local inline function in an inline functionKT-57033 Make KtClassLiteralExpression stub basedKT-57035 Make KtCollectionLiteralExpression stub basedKT-40857 Invalid parameterized types for extension function on parameterized receiver when javaParameters=trueKT-56154 Compiler backend crash on reference to Java synthetic property from generic classKT-55879 Modularized tests: fir.bench.language.version is used as API version, not language versionKT-55886 K2: Wrong code location mapping with Windows line endingsKT-51821 ClassCastException on anonymous fun interface implementation when unrelated vararg is usedKT-57053 Problem around anonymous objects in inline functionsKT-56579 [K2/N] IR actualizer crashed with K2 on expect annotation marked with @OptionalExpectation, without actual.KT-56750 K2: “IllegalArgumentException: No argument for parameter VALUE_PARAMETER” when calling typealias method referenceKT-55614 K2: consider serializing static enum members (values/valueOf/entries) to match K1 behaviorKT-30507 Unsound smartcast if null assignment inside index place and plusAssign/minusAssign is usedKT-56646 K2: “IllegalStateException: No single implementation found for: FUN FAKE_OVERRIDE” when compiling a functional interfaceKT-56514 K2 should report ACTUAL_TYPE_ALIAS_NOT_TO_CLASSKT-56522 K2 should report ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTSKT-56542 K2: false positive TOO_MANY_ARGUMENTS in VarHandle.set callKT-56861 FIR: test FirPluginBlackBoxCodegenTestGenerated.testClassWithAllPropertiesConstructor is failing with runtime errorKT-56234 K2: “ISE: Expected value generated with NEW” with inline property setter and noinline parameterKT-56722 K2: cannot resolve component call after smart castKT-56714 K2: wrong argument mapping in DSLKT-56723 K2: lambda accidentally returns Unit? instead of UnitKT-56847 Unresolved reference to Java annotation in Kotlin class with the same name packagesKT-55877 K2: Secondary constructor without call to parent: no frontend error, ISE: “Null argument in ExpressionCodegen for parameter VALUE_PARAMETER”KT-56386 K2: Make possible to access Java field which is shadowed by Kotlin invisible property`KT-56862 Compatibility problem with using Kotlin in Intellij 223 or higher because of missing particular trove4j dependencyKT-55088 JS, Native compilation fail with internal error on SomeEnum.entries reference when SomeEnum is from klib compiled with disabled EnumEntries language featureKT-40904 No warning when declare actual in the same target (module) as expectKT-56707 K2: Unexpected TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM where only getter type specified explicitlyKT-56508 Context receivers: Internal compiler error when compiling code containing a class with a secondary constructorKT-56505 K2: Missing NO_EXPLICIT_VISIBILITY_IN_API_MODE errors on various declarationsKT-56215 JVM: Object extension function nullable receiver null check false negative when object is nullKT-56188 K/N: AssertionError when casting SAM wrapper with generic type parameterKT-56033 Restore ‘isMostPreciseContravariantArgument’ function signature for compatibilityKT-56612 K2: false positive NO_TYPE_ARGUMENTS_ON_RHS on raw cast with type alias based argumentKT-56701 K2 (with LightTree) reports syntax errors without additional informationKT-56649 K2 uses 0-index for line numbers rather than 1-indexKT-56445 K2: False-positive unresolved reference to callable reference to function with default argumentKT-55024 K2: overload resolution ambiguity/unresolved reference if variable is smart-casted to an invisible internal classKT-55722 K2: Incorrect OVERLOAD_RESOLUTION_AMBIGUITY with smart cast on dispatch receiver (simple)KT-56563 Inference within if stops working when changing expected type from Any to a different typeKT-55936 K2: Support proper resolution of callable references as last statements in lambdaKT-45989 FIR: wrong callable reference type inferredKT-55217 Appendable::append reference resolve inconsistenciesKT-55169 K2: False-negative NO_ELSE_IN_WHENKT-55932 K2. No compiler error when elvis operator returns not matched typeKT-53987 K2: False negative “TYPE_MISMATCH” with if statement returnKT-55436 K1: implement warning about shadowing of the derived property by the base class fieldKT-56521 Static scope initializers sometimes not called when first accessed from interopKT-41038 NI: TYPE_MISMATCH when passing constructor of nested classKT-42449 Can not resolve property for value of type Any even after casting type to a type with star projectionKT-52934 StackOverflow from PseudocodeTraverserKt.collectDataFromSubgraph with if inside finallyKT-52860 StackOverflowError when casting involving recursive generics and star projectionKT-52424 ClassCastException: Wrong smartcast to Nothing? with if-else in nullable lambda parameterKT-52262 TYPE_MISMATCH: Nonnull smartcasting fails with non-exhaustive whenKT-51045 SETTER_PROJECTED_OUT: Star projected nullable property can't be set to nullKT-40480 [FIR] Support hasStableParameterName from metadataKT-50134 NI: Type inference regression in java streams groupingByKT-50160 False positive “USELESS_CAST” caused by indexed access operatorKT-42715 Unable to use implicit lambda param it for overloaded methodsKT-49045 False positive USELESS_CAST in generic type with nullable type parameterKT-49024 AssertionError: Variance conflict: type parameter variance ‘out’ and projection kind ‘in’ cannot be combinedKT-48975 Type mismatch: inferred type is X but Nothing! was expected with the AssertJ latest versionKT-47870 INVISIBLE_MEMBER: Kotlin class can't access protected annotation defined in Java parent classKT-47495 ReenteringLazyValueComputationException on invalid codeKT-47490 Missed diagnostic for incorrect callable reference in finallyKT-47484 “Recursion detected in a lazy value under LockBasedStorageManager” on invalid codeKT-46301 Combining branches with sealed interfaces in when breaks type inferenceKT-44392 False negative: redundant nullability/not null check on cast with as operatorKT-43936 Recursion detected on input: ANNOTATION_ENTRY with annotation on star-imported nested classKT-43846 No smart cast when returning function closures with captured smart-cast variableKT-43603 False positive USELESS_CAST leads to TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM on “when” with smart cast and extension propertyKT-43553 JVM / IR: “AssertionError: Unbound symbols not allowed” caused by annotation class with TYPE targetKT-42169 False negative CAST_NEVER_SUCCEEDS for incompatible types with generic parameter and star projectionKT-42136 NI: False positive [USELESS_CAST] when list serves to create a mutable listKT-41721 SAM conversion fails on varargs with type approximated to NothingKT-38288 Unresolved reference for type parameter upper bound of nested class when outer class extends it with star projected type argumentKT-37490 NULL_FOR_NONNULL_TYPE: “Null can not be a value of a non-null type Nothing” when null is passed to nullable argument of type projected methodKT-37365 NPE from ReflectionReferencesGenerator.generateCallableReference with inner class function reference and wrong parenthesisKT-36958 NI: missed unresolved on parenthesized callable reference passing through call (back-ends throw an exception)KT-30756 No smartcast if elvis operator as a smartcast source in while or do-while is used as the last statementKT-24737 Report an error on invalid this-expression with angle brackets on left-hand side of a callable referenceKT-21463 Compiler doesn't take into accout a type parameter upper bound if a corresponding type argument is in projectionKT-6822 Smart cast doesn't work inside local returned expression in lambdaKT-56073 K2: build ExposedKT-55840 Inconsistency between members of enums in bytecode between FE 1.0 + JVM IR and FIR + JVM IRKT-47815 JVM: “Recursion detected in a lazy value under LockBasedStorageManager” when trying to inherit interface from a class with non-trivial functionKT-17817 No error reported on invalid LHS for class literalKT-47373 Missed diagnostics on/after non-null assertion (!!) on generic class class use with class literalKT-51143 Wrong Unit-requiring at if/when branch with stub typesKT-53671 False-positive diagnostic reported on OptIn annotation import from root packageKT-53494 Mistaken type inference in compound ‘if’ expression with nullability check and covariant typeKT-28668 “AssertionError: Unrelated types in SAM conversion for index variable” if lambda argument of ‘[...]’ in LHS of augmented assignment is used as an implementation for different SAM interfacesKT-55931 Inference for callable reference inside synthetic calls for if/when/try/etc stops working when brought into lambda for a callKT-20223 Inline access check ignores operator calls to invoke()KT-54478 @NoInfer causes CONFLICTING_OVERLOADSKT-56472 K2: Add stack of all FIR elements to CheckerContextKT-41126 [FIR] Inconsistency of a compiler behaviour at init block for an enum entry with and without a qualifier nameKT-54931 Annotations defined in nested classes cannot be instantiated directlyKT-24901 No smart cast for when with early returnKT-7389 No intersection type for type parameter with multiple upper bounds in star projectionKT-53086 “Cannot access ‘’ before superclass constructor has been called” with inner class secondary constructorKT-55137 Callable references with conversion are incorrectly allowed to be promoted to KFunctionKT-30497 EXACTLY_ONCE contract doesn't work in a function with vararg parameterKT-47074 Front-end Internal error: Failed to analyze declaration State / java.lang.IllegalStateException: Should not be called! when try to add ParcelizeKT-24503 Return-as-expression is allowed as this/super constructor parameterKT-55379 False positive NO_ELSE_IN_WHEN with smartcast to BooleanKT-47750 False positive NO_ELSE_IN_WHEN in presence of smartcast to sealed interfaceKT-53819 False positive UNINITIALIZED_VARIABLE with secondary constructor and custom property getter in local classKT-56457 JVM: Enum.entries are not annotated with @NotNullKT-56072 K2. “IllegalStateException: Fir2IrSimpleFunctionSymbol for is already bound” when trying to access java synthetic property of inherited classKT-50082 Kotlin non-overriding property of subclass doesn't shadow same-named Java field from base classKT-55822 False positive ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED with raw types and mixed overridden membersKT-55666 K2: label on local function is rejected: “Target label does not denote a function”KT-56283 False-positive INVISIBLE_MEMBER on overridden member of more specific type after smart castKT-51969 [FIR] Compilation for expect value class fails with “Fir2IrSimpleFunctionSymbol for [declaration] is already bound”KT-56061 K1 does not report error on inconsistent synthetic property assignmentKT-55125 Difference in generated bytecode for open suspend functions of generic classesKT-55295 K2/MPP: JS build functionalityKT-55909 [K2/N] IndexOutOfBoundsException for a reference to a function defined in companion object superclassKT-55664 K2: eliminate ClassId.isSame call from FirClass.isSubclassOfKT-55747 K2. “Convention for ‘mod’ is forbidden. Use ‘rem’” error is missingKT-56104 Unnecessary inner classes attributes in class files for subclassesKT-55570 K2: ACTUAL_WITHOUT_EXPECT error is not reported on a simple actual classKT-56176 [K2/N] “IllegalStateException: actual type is kotlin.Int, expected kotlin.Long” when expected type uses typealiasKT-56199 K2 + MPP + kotlinx.serialization: java.lang.VerifyError: Bad type on operand stack in aaloadKT-56212 K2: Exception when compiling extension function declaration with illegally chained type parameter receiverKT-54140 SOE at IrBasedDescriptorsKt.makeKotlinType with mixing recursive definitely not nullable type with nullabilityKT-56224 Clarify message “Secondary constructors with bodies are reserved for for future releases” for secondary constructors in value classes with bodiesKT-55503 K2: “Argument type mismatch” caused by using the wrong “this”KT-56050 K2: inconsistency regarding visibility of synthetic properties with protected getter and public setterKT-49663 FIR: Support @kotlin.jvm.PurelyImplements for java collectionsKT-54507 K2: Wrong implicitModality for interface in FirHelpersKT-55468 [K2/N] Crash with debuginfo caused by changed tree using IMPLICIT_COERCION_TO_UNITKT-56269 [K2/N] Don't test “Tailrec is not allowed on open members” in K2KT-56172 K2: Fix reporting of PRIVATE_CLASS_MEMBER_FROM_INLINE errorKT-54647 K2: Function call with Lambda on LHS of assignment leads to KotlinExceptionWithAttachments: FirDeclaration was not found for class org.jetbrains.kotlin.psi.KtFunctionLiteralKT-54648 K2: Function call on left side of erroneous assignment isn't resolvedKT-55171 Put new contracts syntax under a feature flagKT-55699 K2. False Negative “Type parameter T is not an expression”KT-55973 K2: Exception from UnusedChecker on an unused destructuringKT-56275 K2 IDE: Missed error for enum super typeKT-54775 K2. “IllegalStateException: Expected FirResolvedTypeRef with ConeKotlinType but was FirImplicitTypeRefImpl ” exception on incorrect codeKT-55528 K2: CFA for property initialization analysis is not run for class initialization graphsKT-54410 K2: Deprecation warning instead of “this declaration is only available since Kotlin X” when language version in project are below required to use language featureKT-55186 K2: No compilation error on calling exception without constructorKT-36776 Treat special constructions (if, when, try) as a usual calls when there is expected typeKT-54694 Consider enabling BooleanElvisBoundSmartCasts in K1 or K2KT-54587 K2. CCE on compilation when some operator fun is needed and it is implemented as an extension function for another classKT-54417 K2: move receiver-targeted annotations to KtReceiverParameterSymbol and remove it from FirProperty receiver typeKT-33917 Prohibit to expose anonymous types from private inline functions
IDE
Performance Improvements
KT-56613 Reduce memory consumption of light classes
Fixes
KT-57849 K2: contract violation due to implicit java type with annotationKT-57857 LC: FakeFileForLightClass: Read access is allowed from inside read-actionKT-57578 SLC: incorrect upper bound wildcardsKT-57917 Analysis API: decompiled value parameters are not resolvedKT-56046 K2 IDE: Avoid redundant resolve from annotationsKT-57569 SLC: incorrect visibility for lateinit var with private setterKT-57547 SLC: non-last vararg value parameter type mismatchKT-57548 SLC: incorrect inheritance list for ComparatorKT-57579 SLC: unboxed type argument as method return typeKT-56843 Light classes: certain kinds of constant values in property initializers aren't supportedKT-56868 SLC: IncorrectOperationException on enum annotation arguments that are not valid Java identifiersKT-56833 Light classes: Accessors to lateinit properties don't have @NotNull annotationsKT-56845 Light classes: Overridden property accessors don't have @Override annotationKT-56441 K2 IDE: reference from Java to ObjectName.INSTANCE of private object is red in IDE, but compiled successfullyKT-56891 Symbol Classes: DefaultImpls classes contain methods without default implementationKT-56842 Light Classes: Primitive-backed context receiver parameters shouldn't be marked with @NotNullKT-56835 Light classes: Underlying fields for delegated properties should be marked as final and @NotNullKT-56840 Light Classes: Inline classes backed by Java primitives shouldn't be marked with @NotNullKT-56728 K2 IDE. False positive not applicable to for kotlin annotation with target annotating Java elementKT-55815 SLC: Keep annotations on type when converting to PsiTypeKT-55669 K2 IDE: INRE from light classesKT-55150 Argument for @NotNull parameter ‘scope’ of org/jetbrains/kotlin/resolve/AnnotationResolverImpl.resolveAnnotationType must not be null
IDE. Misc
KT-58763 K2 IDE: NoSuchMethodError: KtPsiFactory$Companion.contextual
IDE. Script
KT-56632 Script configuration cannot be loaded for embedded code snippets
JavaScript
New Features
KT-12784 JS: generate ES2015 compatible modulesKT-48154 KJS / IR: Inline members support for external typesKT-51582 FIR: support basic compile-time evaluation for JS backend
Fixes
KT-39650 KJS IR: provide a way to enable ES2015 class generationKT-57990 KJS/IR. Invalid super call for final parent methods (ES classes)KT-58246 KJS: ES15 classses — duplicated code in class constructorKT-57479 KJS: Add an annotation for a function parameter which checks that a passed argument has an external typeKT-51706 Partial linkage: in case of absent symbol referred from declaration Native compiler is successful, JavaScript failsKT-56237 KJS + IC: Adding or removing interface default implementation doesn‘t invalidate children and doesn’t update JS codeKT-54638 K2/JS: Fir2ir - implement and use JS-specific manglerKT-54028 Native / JS: Using private object implementing a sealed interface causes a linker errorKT-57423 KJS: Add an annotation for external interfaces which allows to be inherited only by other external interfaces, classes or objectsKT-57711 K2: Native & JS fail to compile a KLIB that uses const val from a dependency KLIBKT-43490 KJS / IR: “Cannot set property message of Error which has only a getter” caused by class that is child of ThrowableKT-57078 JS IC: Unbound symbol left in SymbolTable in JsIr[ES6]InvalidationTestGenerated.testBreakKlibBinaryCompatibilityWithVariance testsKT-54452 Kotlin/JS libraries with “joined” legacy+IR content: publish IR sources for themKT-57254 Deprecate external enum declarationsKT-57002 KJS: “JsParserException: missing name after . operator” when a js(...) block contains an interpolated constantKT-53180 Kotlin/JS: generated TypeScript constructor can have “TS1016: A required parameter cannot follow an optional parameter” error with certain properties orderKT-56961 JS IR: serializedIrFileFingerprints in klib manifest has a wrong formatKT-56282 KJS: Invalidate incremental cache in case of compiler internal errorsKT-55720 KJS: ReferenceError: SuspendFunction1 is not defined with 1.8 when importingkotlin.coroutines.SuspendFunction1KT-56469 KJS: BE Incremental rebuild spoils source map comment
KMM Plugin
KT-55402 “Framework not found SQLCipher”: after selection of “Regular framework” as “iOS framework distribution” and installing SqlCihper through CocoaPodsKT-55988 KN debugger in KMM plugin for Android Studio can't recognize the source code
Language Design
KT-53778 Release stdlib API about “rangeUntil” operator in 1.9KT-53653 Export Enum.entries to Objective-C and SwiftKT-55177 Deprecate declaration of expect and actual counterparts of same class in one moduleKT-28850 Prohibit protected visibility in final expected classesKT-39362 Expect fun interface must have actual fun interface counterpartKT-57395 Delay ForbidInferringPostponedTypeVariableIntoDeclaredUpperBound feature to LV 2.0KT-55082 Bump KLib version for Enum.entries
Libraries
New Features
KT-58046 Stabilize remaining kotlin.time API: time sources, time marks, measureTimeKT-58074 Stabilization of Atomics API in K/NKT-55268 Mutiplatform @Volatile annotationKT-51908 Provide common function for getting regex capture group by nameKT-53263 Path.createParentDirectoriesKT-7637 Add toString() to standard delegates classes (NotNullVar, LazyVal, BlockingLazyVal, ...)KT-40728 Add AssertionError constructor with cause: Throwable parameter to common stdlibKT-57298 Avoid FileAlreadyExistsException from Path.createParentDirectories in case of parent is symlink
Performance Improvements
KT-54739 build method in collection builders (Set, Map, List) should return a single instance for empty collectionsKT-42589 Provide common listOf(value) overload to avoid allocation of the varargKT-55091 Stdlib: Sequence.toSet() and Sequence.toList() may create the collection twiceKT-57617 Optimize ReversedListReadOnly iteratorKT-57607 KJS: Bad performance for ArrayList.addAll
Fixes
KT-55612 Stabilize experimental API for 1.9KT-57728 Explicitly specify level of stability of programmatically-accessible interoperability APIKT-58548 Stabilize standard library API for Enum.entriesKT-58276 Deprecate redundant public declarations in kotlin.native.concurrentKT-57762 Introduce HexFormat for formatting and parsing hexadecimalsKT-57317 Repack EnumEntries from stdlib into the compilerKT-54702 Native: mark Worker and related APIs as obsoleteKT-55610 Deprecate kotlin.jvm.Volatile annotation in platforms except JVMKT-57404 Native: Support AnnotationTarget.TYPE_PARAMETERKT-57318 Change EnumEntries stdlib implementation to be eagerKT-57137 Native: Consider removing ArrayAsListKT-55935 [Kotlin/JVM] Path.copyToRecursively does not work across file systemsKT-51579 PlatformImplementations loading is not compatible with graalvm native-image --no-fallback
Native
KT-52594 Provide Alpha support for Native in the K2 platformKT-56443 Native link task reports w: Cached libraries will not be used for optimized compilationKT-56071 K2/MPP: Native build functionalityKT-56218 [K2/N] Receiver annotations for properties are not serializedKT-56326 [K2/N] RemoveRedundantCallsToStaticInitializersPhase removes important static initializerKT-54098 Decommission and remove ‘enableEndorsedLibs’ flag from Gradle setup
Native. Build Infrastructure
KT-58160 Native: performance build configuration fails with NoSuchMethodError: ‘boolean kotlinx.coroutines.CompletableDeferredKt.completeWith(kotlinx.coroutines.CompletableDeferred, java.lang.Object)’
Native. C and ObjC Import
KT-54610 Kotlin Native can't call objc_direct functionsKT-54805 KMP ios memory leak when using CA LayerKT-57490 [K/N] Duplicate package names for cinterop klibs with objc protocols fails to linkKT-57541 Compilation fails without explicit cast on cinterop code
Native. ObjC Export
KT-56464 K/N: Allow HiddenFromObjC for classesKT-57507 K2: Set of Objc exported declarations is different between K1 and K2
Native. Runtime
KT-58441 Kotlin/Native: @ObjCAction @ObjCOutlet generate bridges without switching stateKT-57091 Align Native and Java file/class initialization behavior
Native. Runtime. Memory
KT-56233 [Kotlin/Native] Crash when enum values are accessed in multiple threadsKT-58130 Implement preview of custom allocator for Kotlin/NativeKT-56402 Native: if a Kotlin peer for an Obj-C object is created on the main thread, then Kotlin runtime should run objc_release for it on the main thread
Native. Stdlib
KT-57344 Try to remove strange .equals overload on primitive typesKT-57592 Native: Remove the default parameter value for AtomicLong constructor
Native. Testing
KT-57349 Enable more K2 MPP codegen/box tests for Kotlin/NativeKT-57026 K2: Fix Native test infrastructure for MPP
Reflection
KT-56650 ArrayStoreException from InlineClassAwareCaller.call with an array of inline classKT-56093 Metaspace leak in a Gradle plugin built with Kotlin 1.8.0KT-27585 Flaky IllegalPropertyDelegateAccessException: Cannot obtain the delegate of a non-accessible property. Use “isAccessible = true” to make the property accessibleKT-55937 Optimize implementation of kotlinFunction/kotlinPropertyKT-54833 Reflection: Incorrect behaviour for Field.kotlinProperty function in companion objects
Tools. CLI
KT-56209 Add CLI support for HMPP in K2KT-57495 Add JVM target bytecode version 20KT-56789 Metaspace memory leak in CoreJrtFileSystemKT-57077 1.8.20-RC-243 shows Java 19 warnings even if configured with Java 17 toolchainKT-56992 Performance test regression in Gradle when switching to Kotlin 1.8.20KT-57644 K2: Prohibit passing HMPP module structure with CLI arguments to metadata compilerKT-56925 Remove warning about assignment pluginKT-56351 Reduce memory usage spent on compiler settings
Tools. Commonizer
KT-57796 NoSuchFileException in :module-B:commonizeCInterop with Kotlin 1.8.20KT-56207 Investigate failing tests in ClassifierCommonizationFromSourcesTest
Tools. Compiler Plugins
Fixes
KT-57406 FIR Compiler plugins: Assignment plugin incorrectly recognizes qualified names of annotationsKT-57400 FIR Compiler Plugins: annotated predicate does not work with Java classesKT-57140 K2: Implement backwards compatibility for FirFunctionTypeKindExtensionKT-55375 Remove “legacy” mode of jvm-abi-gen pluginKT-53470 FIR: pass MemberGenerationContext to all methods of FirDeclarationGenerationExtensionKT-51092 Lombok @Value causes IllegalAccessErrorKT-56487 Add more methods to DescriptorSerializerPluginKT-55885 K2 plugin API: Backend-only declarations are not visible from other modulesKT-55584 K2: Improve registration of session components from compiler pluginsKT-55843 FIR Plugin API: metaAnnotated predicate returns meta-annotation itself as wellKT-53874 Optimize checking for plugin applicability and redesign DeclarationPredicates
Tools. Compiler plugins. Serialization
KT-58067 Serialization: NullPointerException caused by @Contextual property with type with genericKT-57730 Serialization: “IllegalStateException: Serializer for element of type .Foo has not been found” caused by serialization of Java typeKT-56594 K2/serialization reports SERIALIZER_NOT_FOUND over aliased String or primitive typesKT-56990 “AssertionError: SyntheticAccessorLowering should not attempt to modify other files” in kotlinx-serialization using @Serializer and List argumentKT-56553 Support ‘serialization plugin intrinsics’ feature in K2KT-56244 kotlinx.serialization compiler intrinsic does not work with encodeToString function in 1.8.0
Tools. Daemon
KT-50846 Remove “new” Kotlin daemon from codebase
Tools. Gradle
New Features
KT-57159 Add project level compiler options for Kotlin/JVM pluginKT-56971 Expose jvmTargetValidationMode property in KotlinCompile Gradle task
Performance Improvements
KT-57052 Gradle: Stop using exceptions for flow controlKT-57757 Reduce classpath snapshotter memory consumptionKT-56052 Implement an in-memory wrapper for PersistentHashMap to avoid applying changes to IC caches before successful compilation
Fixes
KT-58745 KaptGenerateStubs task should also be configured with the same compiler plugin optionsKT-58571 ExplicitApi mode should not apply for test compilationsKT-52811 Kotlin Serialization metadata issue due to incompatibility between Gradle Kotlin embedded version and Kotlin Gradle Plugin versionKT-57224 Add an indicator into build metrics report to show whether K1 or K2 compiler was used to compile the codeKT-58682 Explicit api mode does not apply in MPP projectsKT-57736 K2: Introduce an easy way to try K2 compiler in Gradle user projectsKT-52976 Remove deprecated Gradle conventions usagesKT-58530 Compiler plugin unbundling changes should be backward compatible with Kotlin pluginKT-36904 Adding folders to sourceSets.resources.srcDir() in Gradle script does not workKT-57330 Provide collection of usage statistics for the DokkaKT-58619 Move all pm20 interfaces into Gradle plugin codebaseKT-58320 Kotlin daemon OOM help message is missing on OOM in Kotlin Daemon itselfKT-58167 Applying KAPT plugin to Gradle 8.1 causes configuration cache missKT-53923 Add ‘progressive’ compiler argument to Gradle compiler optionsKT-53924 Add ‘optIn’ compiler arguments to Gradle compiler optionsKT-53748 Remove KotlinCompile setClasspath/getClasspath methodsKT-56454 Bump minimal support AGP version to 4.2.2KT-57767 Gradle: “ZipException: invalid entry size” with 1.8.20KT-57397 Add infrastructure to use the build-tools-api to run compilation from GradleKT-56946 Switch incremental Gradle tests for K2 to use language version 2.0KT-55624 Update KGP integration tests that use removed in Gradle 8 getClassifier methodKT-57782 Disable daemon fallback strategy for Gradle integration tests by defaultKT-56645 Gradle: KGP reports an incorrect resources processing task name for JVM projectsKT-55824 Deprecate commonMain.dependsOn(anything) in user scriptsKT-57142 Split org.jetbrains.kotlin.gradle.tasks/Tasks.kt into several source filesKT-56211 Improve Kotlin build reportsKT-54447 Remove usage of deprecated internal Gradle field in Kotlin Gradle Plugin, replace with equivalent in public APIKT-49785 Avoid creating task output backups until really neededKT-56047 False positive message about full recompilation is displayed while restoring from build cache and then making a syntax errorKT-56421 Gradle: plugin should not use BasePluginExtension deprecated propertiesKT-55241 Gradle: the VariantImplementationFactories build service state is not persistent making impossible to access factories with configuration cache lazilyKT-56414 Dependency locking and failed builds with Kotlin 1.8.10KT-56357 Gradle: “DefaultTaskCollection#configureEach(Action) on task set cannot be executed in the current context” because of VariantImplementationFactoriesKT-56352 Make build scan reports more readableKT-52149 Gradle: declare shared build services usages with Task#usesServiceKT-55741 Gradle 8: Build service ‘*’ is being used by task ‘*’ without the corresponding declaration via ‘Task#usesService’.KT-55174 KotlinCompile task produces deprecation “Build service ‘variant_impl_factories_...’ is being used by task”KT-55972 Gradle: Add an assertion to all integration tests if warningMode is not FAIL, but the build doesn't produce any warnings
Tools. Gradle. Cocoapods
KT-38749 Support dependencies between pods when using the cocoapods pluginKT-54161 Support adding extra code to generated Podfile from the Kotlin gradle pluginKT-49430 Stop invalidating iOS framework generated by KMM module on each Gradle SyncKT-56304 Podspec generated with new K/N artifact DSL contains wrong artifact names for static and dynamic librariesKT-56162 Provide granular Gradle warnings suppression for CocoaPodsIT
Tools. Gradle. JS
New Features
KT-32209 org.jetbrains.kotlin.js does not respect Gradle's archivesBaseNameKT-56158 KJS: Support implementation dependenciesKT-48791 KJS: Support for Power(ppc64le) and Z(s390x)
Fixes
KT-57985 K/JS: packageJson Gradle configurations don't inherit unique attributes from JsTarget DSLKT-57817 JS: executables for couple of JS targets builds in the same directoryKT-58199 K/JS: Remove useCoverage methodKT-57116 KJS / Gradle: commonWebpackConfig not applied if called after binaries.executable()KT-58522 K/JS: Upgrade NPM dependency versionsKT-57629 K/JS: Change default destination of JS production distributionKT-57480 K/JS: Use IR compiler by default without explicit choosing of js compilerKT-58345 K/JS: Webpack task skipped with ES modules because files have mjs extensionKT-56458 KJS / Gradle: Unnecessary and confusing “There are multiple versions of “kotlin” used in nodejs build” generated from YarnImportedPackagesVersionResolverKT-56690 Kotlin2JsCompiler friendDependencies cannot be configured through friendPathsKT-57920 K/JS: Make imported NPM package not considering dev dependenciesKT-56025 KJS / Gradle: Gradle 8.0 jsBrowserProductionWebpack uses the output of another project's jsProductionExecutableCompileSyncKT-57630 K/JS: webpack updating twice on one change of kt sourcesKT-47351 KJS / IR: :jsTestPackageJson is unable to find nested included builds under composite buildKT-57387 Remove support of webpack 4KT-57386 Kotlin/JS upgrade npm dependenciesKT-56765 K/JS: Several binaries use same cache directoryKT-56488 Debugger won't stop on breakpoints of JS browser testKT-56705 KJS / Gradle: Module name starting with ‘@’ isn't properly set when FUS is disabledKT-56719 KJS / Gradle: Compile sync task has to sync only changed filesKT-46428 KJS / IR: Composing build failed “Failed to create MD5 hash for package.json”KT-53687 Don't trigger npm and yarn related tasks if it not relevant for assembleKT-49915 KJS / Gradle: Gradle build cache miss because of absolute path in KotlinJsIrLink.filteredArgumentsMapKT-56192 KJS: In browser testing no original sources in stacktraceKT-42395 Kotlin/JS: Gradle DSL: PackageJson.customField() does not accept nullKT-43305 Support Node.JS downloading for UbuntuKT-48631 KJS: Unconditionally uses linux/x86 binariesKT-38015 NodeJS installation does not extract symlinks correctly (npm and npx)
Tools. Gradle. Multiplatform
New Features
KT-55881 Add possibility to enable/disable sources publication similar to Java Gradle Plugin API
Fixes
KT-55751 MPP / Gradle: Consumable configurations must have unique attributesKT-49933 Support Gradle Configuration caching with HMPPKT-58470 Warning about using MPP libraries published in the legacy mode is not reported if the dependency is declared in an intermediate source setKT-58086 Warn about using MPP libraries published in the legacy modeKT-58466 K2 Gradle: non *.kt files are passed to -Xfragment-sourcesKT-58319 kotlin.git: ProjectMetadataProviderImpl “Unexpected source set ‘commonMain’”KT-58281 Kotlin Gradle Plugin: Enable Kotlin/Android SourceSetLayout v2 by defaultKT-51940 HMPP resolves configurations during configurationKT-41506 UnknownDomainObjectException: “KotlinSourceSet with name not found” when creating custom compilations after applying withJava to an MPP JVM targetKT-58209 Do not use the term ‘Module’ in KotlinTargetHierarchyKT-56285 TCS: Gradle Sync: IdeProjectToProjectCInteropDependencyResolver: Ensure lenient resolutionKT-56571 New import broke apiVersion for commonMain, commonTest and jvmAndAndroidMain modulesKT-56536 Multiplatform: Composite build fails on included build with rootProject.name != buildIdentifier.nameKT-56841 MPP: Module-to-module dependencies don't work inside included build in included buildKT-42748 Project that transitively depends on composite build of multimodule multiplatform library cannot resolve dependencies properlyKT-52356 MPP / Gradle: Missing common classes on KMM project integrated via Gradle included build into an Android applicationKT-51293 Unresolved references with hierarchical project structure when building KotlinMetadata from native-common source setKT-56729 commonizeCInterop: Duplicated libraries: co.touchlab:sqliter-driver-cinterop-sqlite3KT-56510 Import with included plugin build may fail with OverlappingFileLockException during commonizeNativeDistributionKT-56700 V2 MPP Source Set layout warnings should include link to docsKT-56115 Multiplatform;Composite Builds: Support import with cinterop commonization enabledKT-56429 Fix flaky: MppIdeDependencyResolutionIT.test cinterops - are stored in root gradle folderKT-56337 Unable to import a project with cinterop with enableKgpDependencyResolutionKT-55926 TCS: Gradle Sync: Import Extras on KotlinSourceSet and KotlinTargetKT-55891 Deprecate pre-HMPP flagsKT-56278 TCS: Gradle Sync: [MISSING_DEPENDENCY_CLASS] on libraries used in shared native source setsKT-55730 MPP / Gradle: compileKotlinMetadata fails to resolve symbols in additional source setsKT-56204 KotlinTargetHierarchy: Changing naming from ‘any’ to ‘with’ prefixKT-56111 Multiplatform;Composite Builds: Clean builds fail on when ‘hostSpecificMetadata’ is required
Tools. Gradle. Native
KT-53108 Expose Kotlin/Native compiler options as Gradle DSLKT-58063 Kotlin/Native tasks configuration cache are not compatible with Gradle 8.1KT-38317 Kotlin/Native: NSURLConnection HTTPS requests fail in iOS tests due to --standalone simctl flagKT-37051 MPP Gradle plugin: duplicated cinterop libraries in composite buildKT-56280 Gradle: freeCompilerArgs are no longer propagated from compilations to Native binariesKT-56205 Shared Native Compilation: False positive ‘w: Could not find’ warnings on metadata klibs
Tools. Incremental Compile
KT-58289 IC fails to detect a change to class annotationsKT-56197 If use classpathSnapshot, the invoke place of subclass's super function who has default parameters will not recompiled if it is incremental buildKT-56886 K2: Changes to Java sources used in Kotlin project do not trigger a rebuild if a previous build was successfulKT-55021 New IC: “The following LookupSymbols are not yet converted to programSymbols” when removing/renaming file facades
Tools. JPS
KT-56438 Add minimal statistic report for JPS buildKT-58314 kotlin-build-statistics is missing for kotlin-jps-pluginKT-55696 JPS IC K2 - fix new failing tests with Java interopKT-57102 SCE: DefaultErrorMessages$Extension: DefaultErrorMessagesWasm not a subtype after adding WASM error messagesKT-56165 Language version 1.9 and 2.0 is absent in Kotlin Compiler settings
Tools. Kapt
KT-57598 K2: Support a fallback mode executing Kapt with K1 even when the compiler is run with languageVersion=2.0KT-54468 KAPT Gradle plugin causes eager task creationKT-58027 Kotlin 1.8.20 kapt issue “null: KtCallExpression: build()”KT-58226 KAPT: “org.jetbrains.kotlin.psi2ir.generators.ErrorExpressionException: null: KtNameReferenceExpression” with enum with secondary constructorKT-56360 Kapt with JVM IR changes fields orderKT-54380 Kapt / IR: Build failed when inheritance by functional interface with suspend modifier
Tools. Maven
KT-58101 ‘Unable to access class’ in kotlin-maven-plugin after updating to Kotlin 1.8.20KT-58048 Maven: “Too many source module declarations found” after upgrading to 1.8.20KT-13995 Maven: Kotlin compiler plugin should respect model's compile source rootsKT-55709 Maven: “java.lang.reflect.InaccessibleObjectException: Unable to make field protected java.io.OutputStream java.io.FilterOutputStream.out accessible”
Tools. Scripts
KT-58366 The obsolete kotlin-script-util jar is still published and contains broken JSR-223 implementation
Tools. Wasm
KT-56585 Change wasmBrowserRun Browser Executable to System DefaultKT-56159 Running (karma) tests doesn't work in a project generated by wizard “Browser Application for Kotlin/Wasm”KT-57203 Update Kotlin/Wasm to support Gradle 8
1.8.21
Compiler
KT-57848 Native: compilation of dynamic/static library fails with Xcode 14.3KT-57875 Native compilation failure: Suspend functions should be lowered out at this point, but FUN LOCAL_FUNCTION_FOR_LAMBDAKT-57946 KAPT: “RuntimeException: No type for expression” with delegate
JavaScript
KT-57356 KJS: StackOverflowException on @JsExport with type parameters referring to one another
Tools. Compiler plugins. Serialization
KT-58067 Serialization: NullPointerException caused by @Contextual property with type with genericKT-57730 Serialization: “IllegalStateException: Serializer for element of type .Foo has not been found” caused by serialization of Java type
Tools. Gradle. JS
KT-57766 KJS / Gradle “Module not found: Error: Can't resolve ‘kotlin-kotlin-stdlib-js-ir’” when using “useEsModules”
Tools. Kapt
KT-58027 Kotlin 1.8.20 kapt issue “null: KtCallExpression: build()”
Tools. Maven
KT-58048 Maven: “Too many source module declarations found” after upgrading to 1.8.20KT-58101 ‘Unable to access class’ in kotlin-maven-plugin after updating to Kotlin 1.8.20
1.8.20
Analysis API
KT-55510 K2: Lost designation for local classesKT-55191 AA: add an API to compare symbol pointersKT-55487 K2: symbol pointer restoring doesn't work for static membersKT-55336 K2 IDE: “java.lang.IllegalStateException: Required value was null.” exception while importing a compiled JPS projectKT-55098 AA: KtDeclarationRenderer should render a context receiversKT-51181 LL API: errors for SAM with suspend function from another moduleKT-50250 Analysis API: Implement Analysis API of KtExpression.isUsedAsExpressionKT-54360 KtPropertySymbol: support JvmField in javaSetterName and javaGetterName
Analysis API. FE1.0
KT-55825 AA FE1.0: stackoverflow when resolution to a function with a recursive type parameter
Analysis API. FIR
KT-54311 K2: proper implementation of KtSymbolPointerKT-50238 Analysis API: Implement KSymbolPointer for KtSymbol
Analysis API. FIR Low Level API
KT-52160 FIR: Substitution overrides on FirValueParameter-s are incorrectly unwrappedKT-55566 LL FIR: Tests in compiler/testData/diagnostics/tests/testsWithJava17 fail under LL FIRKT-55339 LL FIR: Missing RECURSIVE_TYPEALIAS_EXPANSION error in function type aliasKT-55327 LL FIR: Diverging UNRESOLVED_REFERENCE errors in recursive local function testKT-54826 KtSymbolPointer: migrate from IdSignature to our own solution
Android
KT-54464 MPP, Android SSL2: Add a flag for suppressing warning in case of using Android Style folders
Backend. Wasm
KT-38924 Wasm support in nodejsKT-56160 Getting WebAssembly.CompileError in browsers not supported GC and other required proposalsKT-46773 Implement an experimental version of the Kotlin/Wasm compiler backendKT-56584 K/Wasm: Can't link symbol classKT-56166 Fix compatibility with Firefox NightlyKT-55589 Basic support of WASIKT-53790 Reading from “node:module” is not handled by plugins error with Kotlin/Wasm 1.7.20-Beta
Compiler
New Features
KT-54535 Implement custom equals and hashCode for value classes in Kotlin/JVMKT-55949 Release experimental @Volatile support in nativeKT-44698 Frontend (K2): print file name/line on compiler crash/exceptionKT-54666 K2: Allow to skip specifying type arguments for members from raw type scopeKT-54524 Implement Java synthetic property references in compilerKT-54024 K2: support -Xlink-via-signatures mode
Performance Improvements
KT-33722 JVM: Result API causes unnecessary boxingKT-53330 Optimize for-loops and contains over open-ended ranges with until operator (..<) for all backendsKT-54415 JVM BE: performance loss related to multi-field inline class loweringKT-48759 Infix compareTo boxes inline classesKT-55033 Make org.jetbrains.kotlin.resolve.calls.inference.model.NewConstraintSystemImpl#runTransaction an inline functionKT-54501 Improve code generation for inline classes with custom equals
Fixes
KT-56965 K/N: linkDebugFrameworkIosArm64 tasks failing with UnsupportedOperationException: VAR name:disposables type:com.badoo.reaktive.disposable.CompositeDisposable [val]KT-56611 Native: new native caches are broken when KONAN_DATA_DIR is defined to a directory inside ~/.gradleKT-55251 Enum.entries compilation error should be more specificKT-56527 K2: “AssertionError: Assertion failed” during compilation in SequentialFilePositionFinderKT-56526 InvalidProtocolBufferException on reading module metadata compiled by K2 in 1.8.20KT-57388 Kapt+JVM_IR: “RuntimeException: No type for expression” for delegated propertyKT-53153 Synthetic Enum.entries can be shadowed by user-defined declarationsKT-51290 “AssertionError: Parameter indices mismatch at context” with context receiversKT-57242 Equals behaviour for value classes implementing interfaces is different between 1.8.10 and 1.8.20-RCKT-57261 “IllegalArgumentException was thrown at: MemoizedInlineClassReplacements.getSpecializedEqualsMethod” when comparing non-inline class instance with an inline class instanceKT-57107 Handling of Windows line endings CRLF broken in latest snapshot with K2KT-57117 K2: Compiler reports invalid columns in diagnostics in case of crlf line endingsKT-56500 The type parameter TYPE_PARAMETER name:E index:0 variance: superTypes:[kotlin.Any?] reified:false is not defined in the referenced function FUN LOCAL_FUNCTION_FOR_LAMBDAKT-56258 VerifyError: Bad local variable type when using -XdebugKT-54455 Unexpected result of equality comparison of inline class objectsKT-56251 Generic Java synthetic property references don't work in K2KT-55886 K2: Wrong code location mapping with Windows line endingsKT-43296 FIR: Complicated interaction between smart cast and inference leads to false-positive diagnosticKT-57053 Problem around anonymous objects in inline functionsKT-54950 NoSuchMethodError on calling ‘addAll’ on inline class implementing mutable listKT-56815 compileKotlin task is stuck with while(true) and suspend functionKT-56847 Unresolved reference to Java annotation in Kotlin class with the same name packagesKT-52459 Context receivers: AbstractMethodError caused by Interface method with both an extension and a context receiver is overriden incorrectly in subclassesKT-56215 JVM: Object extension function nullable receiver null check false negative when object is nullKT-56188 K/N: AssertionError when casting SAM wrapper with generic type parameterKT-56033 Restore ‘isMostPreciseContravariantArgument’ function signature for compatibilityKT-56407 Backend Internal error: Exception during IR lowering during :daemon-common-new:compileKotlinKT-55887 K2. “IllegalStateException: org.jetbrains.kotlin.ir.expressions.impl.IrErrorCallExpressionImpl is not expected” on adding kotlin.plugin.jpaKT-56701 K2 (with LightTree) reports syntax errors without additional informationKT-56649 K2 uses 0-index for line numbers rather than 1-indexKT-54807 K2. Support @OnlyInputTypes diagnostic checks (contains like calls)KT-51247 “AssertionError: org.jetbrains.kotlin.ir.expressions.impl.IrFunctionReferenceImpl” caused by context receiver functional typesKT-55436 K1: implement warning about shadowing of the derived property by the base class fieldKT-56521 Static scope initializers sometimes not called when first accessed from interopKT-49182 Strange cast from Unit to StringKT-55288 False negative WRONG_ANNOTATION_TARGET on type under a nullability qualifierKT-33132 Cannot override the equals operator twice (in a class and its subclass) unless omitting the operator keyword in the subclassKT-56061 K1 does not report error on inconsistent synthetic property assignmentKT-55483 K2: Fir is not initialized for FirRegularClassSymbol java/lang/invoke/LambdaMetafactoryKT-55125 Difference in generated bytecode for open suspend functions of generic classesKT-54140 SOE at IrBasedDescriptorsKt.makeKotlinType with mixing recursive definitely not nullable type with nullabilityKT-56224 Clarify message “Secondary constructors with bodies are reserved for for future releases” for secondary constructors in value classes with bodiesKT-54662 K2: Assign operator ambiguity on synthetic property from javaKT-54507 K2: Wrong implicitModality for interface in FirHelpersKT-55912 “UnsupportedOperationException: Unsupported const element type kotlin.Any” caused by kotlin fqn in annotationKT-56018 [K2/N] Fir2Ir does not take value parameters annotations from FIR to IRKT-56091 [K2/N] Fix various property annotationsKT-54209 K2: false positive deprecation on a class literal with deprecated companionKT-55977 [K2/N] Suspend function reference type is wrongly serialized to klibKT-55493 K2: False-negative VAL_REASSIGNMENTKT-55372 K2: false-negative INVISIBLE_MEMBER for call of static method of package-private Java grandparent classKT-55371 K2: compiled code fails trying to call static method of package-private Java grandparent classKT-55408 K2: can't access indirectly inherited from a package-private class Java members through a type aliasKT-55116 K2: store static qualifiers in dispatch receiver fieldKT-55996 K2: cannot switch the light tree mode off with -Xuse-fir-lt=falseKT-55368 K2/MPP: Metadata compilerKT-54305 K1: implement warning “synthetic setter projected out”KT-52027 “NullPointerException” when using context receivers with inline funKT-55984 Stack allocated array is not cleaned between loop iterationsKT-52593 Provide Alpha support for JS in the K2 platformKT-54656 NoSuchMethodError on invoking Java constructor which takes an inline value class as a parameterKT-56015 Remove unnecessary stack traces for special checks for ObjC interopKT-55606 K2. Infix operator “in” works on ConcurrentHashMap when it's declared through another classKT-53884 K2: “IllegalStateException: Fir is not initialized for FirRegularClassSymbol com/appodeal/consent/Consent.a” when importing this classKT-54502 Synthetic extensions on raw types work differently from regular getter callsKT-49351 FIR: Raw type scopes are unsupportedKT-49345 FIR: Properly support raw types in type parameter upper boundsKT-55733 K2. Reference resolve works incorrectly for classes declared through typealiasKT-46369 FIR: Investigate raw types for arraysKT-41794 [FIR] Implement raw type based scopeKT-55181 K2. No compilation error on throwing not throwableKT-55398 Kotlin inline nested inline lambda's inline variable will inline not correctlyKT-55359 K2. No error when secondary constructor does not delegate to primary oneKT-55759 K2: Unresolved reference of serializer if library linking is used (with kotlinx.serialization plugin)KT-54705 Kotlin scripting doesn't support files with UTF-8 BOMKT-51753 FIR: various errors due to expect/actual mapping absence in translatorKT-44515 FIR DFA: extract non-null info from anonymous object's initializationKT-55018 K2 / serialization: FIR2IR fails on local companionKT-55284 Refactor org.jetbrains.kotlin.diagnostics.KtDiagnosticReportContextHelpersKt#reportOn(...)KT-55693 K2. Type inference changed in k2KT-54742 K2: lambda with conditional bare return inferred to return Any, not UnitKT-54332 Add deprecation warning for false-negative TYPE_MISMATCH for KT-49404KT-55509 Invisible fake overrides are listed among lazy IR class membersKT-55597 K2. This type has a constructor, and thus must be initialized here error is missed for anonymous object inherits class with no-arg constructorKT-54357 “ClassCastException: class org.jetbrains.kotlin.resolve.scopes.receivers.ExtensionReceiver cannot be cast to class org.jetbrains.kotlin.resolve.scopes.receivers.ContextClassReceiver” with anonymous object extending a class with a context receiverKT-51397 “VerifyError: Bad type on operand stack” with context receiversKT-54905 KLIB check on compiled with pre-release versionKT-55615 K2 often does not expand type aliases in annotation positionKT-54522 K2: ambiguity between operator candidates on += (plusAssign) to reassigned var of MutableList typeKT-54300 K2: No “Projections are not allowed for immediate arguments of a supertype” for projection in supertypes of an anonymous objectKT-55495 K2: support lateinit intrinsic applicability checkerKT-55494 MPP. Error when building for native: Compilation failed: Global ‘kclass:io.ktor.serialization.$deserializeCOROUTINE$0’ already existsKT-54980 K2: Explicit type arguments in calls with the wrong number of type arguments are not resolvedKT-54730 K2: type aliases to generic functional interfaces attempt to re-infer explicitly specified type parametersKT-55611 IC / MPP: Optional internal annotations are not visible on incremental buildsKT-55324 K2: ControlFlowGraphBuilder fails with index out of bounds exceptionKT-55656 K2: PRIMARY_CONSTRUCTOR_DELEGATION_CALL_EXPECTED being a warning causes a NPE in runtimeKT-51277 “NoSuchElementException: Collection contains no element matching the predicate” with context receivers and star projectionKT-52791 Class with multiple context receivers fails -Xvalidate-ir with “Validation failed in file”KT-55071 Shared Native Compilation: Calls from intermediate common source set cannot use default parameters declared in expect common functionsKT-52193 Native: Unable to call primary constructor with default values in an actual class without passing the values, in nativeMain source setKT-54573 K2: untouched implicit types in delegated constructor call of data class with @JvmRecordKT-55037 Support jspecify annotations moved to the new package org.jspecify.annotations in jspecify 0.3KT-48989 JVM / IR: “IllegalStateException: Bad exception handler end” when first parameter of inline function is nullable with “try/catch/finally” default value and second parameter tries to call toString() on the firstKT-55231 K2: Contract declarations are not passed to checkersKT-54411 False positive: INFERRED_TYPE_VARIABLE_INTO_POSSIBLE_EMPTY_INTERSECTION on kotlinx.coroutines codeKT-55005 Inconsistent behavior of array set operation in Kotlin 1.7.21KT-44625 Property backing/delegate field annotations are not serialized/deserialized for non-JVM targetsKT-42490 Receiver annotations are not serialized/deserialized for non-JVM targetsKT-53441 K2: cannot access static method of package-private Java grandparent classKT-54197 [K2] Exception from inliner for inline function with context receiverKT-55246 Disable ‘CustomEqualsInValueClasses’ feature in 1.9 language versionKT-55247 Disable ‘InlineLateinit’ feature in 1.9 language versionKT-53957 K2 and -Xlambdas=indy: LambdaConversionException on reference to method with both context and extension receiversKT-55421 K2: get rid of potentially redundant call of preCacheBuiltinClassMembers from getIrClassSymbolKT-52815 Compiler option -Xjdk-release fails to compile mixed projectsKT-52236 Different modality in psi and firKT-54921 K2: cannot access static field of package-private Java parent classKT-53698 K2: FIR2IR fails on call of inivisble extension function with SuppressKT-53920 K2: “NoSuchElementException: Key org.jetbrains.kotlin.fir.resolve.dfa.cfg.ClassExitNode@ef115ab is missing in the map” with unreachable code and anonymous objectKT-55358 INTEGER_OPERATOR_RESOLVE_WILL_CHANGE is not reported in return positions of functionsKT-51475 “ArrayIndexOutOfBoundsException: Index 4 out of bounds for length 4” with context(Any) on inline function with contractKT-51951 “IllegalStateException: No receiver” caused by implicit invoke on typealias context receiverKT-52373 Context receivers: ClassCastException: function with dispatch, context, and extension receivers produces this when a parameter's default is includedKT-54220 K2: compiler fails on compiling plus expression on unsigned intKT-54692 K2: compiler fails on compiling unsigned shiftsKT-54824 K2: missing smartcast after two levels of aliasing and a reassignmentKT-53368 Out of bounds read in sse version of String::hashCodeKT-54978 K2: Property accesses with explicit type arguments pass frontend checkersKT-51863 ClassCastException when using context receivers with named argument.KT-55123 JvmSerializableLambda is not applicable in common code in multiplatform projectsKT-45970 Missing deprecation warnings for constant operators calls in property initializersKT-54851 K2: analysis of as/is contains multiple errors that result in missing diagnosticsKT-54668 K2: Inference error in body of lazy property with elvis with Nothing in RHSKT-55269 FIR2IR: Static functions and nested classes are missing from Fir2IrLazyClassKT-55026 K2: Function hides internal constructor from another moduleKT-53070 Update intellij testdata fixes for FIR and merge it to masterKT-53492 No parameter null check generated for constructor taking an inline class typeKT-50489 Smart cast may lead to failing inferenceKT-55160 Kotlin's fragment element types must not extend IStubFileElementTypeKT-55143 K2: INAPPLICABLE_JVM_NAME in JVM does not work for inline classesKT-47933 Report warning if kotlin.annotation.Repeatable is used together with java.lang.annotation.RepeatableKT-55035 FIR: do not use FirValueParameter for FirFunctionalTypeRefKT-55095 Wrong containingDeclarationSymbol in type parameter from EnhancementKT-53946 K2: don't resolve Enum.declaringClass and Enum.getDeclaringClassKT-54673 K2. “Superclass is not accessible” from interface error for sealed interfacesKT-55074 OptIn false negative: constructor call with default argument valueKT-54260 K2: “AssertionError: No modifier list, but modifier has been found by the analyzer” when annotated annotation and AllOpen pluginKT-55034 FIR: provide information about containing function/constructor to FirValueParameterKT-54744 K2: reassigning a var erases smartcast info of a variable derived from the old valueKT-53988 K2: False negative “The expression cannot be a selector (occur after a dot)”KT-53983 K2 crashes with NPE when ‘this’ is used inside enum class constructorKT-54910 Can not declare typed equals operator in inline class with “Nothing” return typeKT-54909 Usage of custom typed equals operator in generic inline class is type-unsafeKT-53371 Properly resolve FIR to get fully resolved annotationsKT-53519 FIR: argument mapping for annotations on value parameter is not properly builtKT-54827 MPP: “java.lang.IndexOutOfBoundsException: Index: 0” during compilation of androidMain targetKT-54417 K2: move receiver-targeted annotations to KtReceiverParameterSymbol and remove it from FirProperty receiver typeKT-54972 K2: Local functions with multiple type arguments are brokenKT-54762 Private constructor is accessible from a public inline function via @PublishedAPI annotationKT-54832 Deprecate incorrect callable references resolution behavior for KT-54316KT-54732 DirectedGraphCondensationBuilder.paint fails with StackOverflowError during linkReleaseFrameworkIos64KT-54897 K2: value class with private constructor stripped by jvm-abi-gen cannot be used in another moduleKT-54784 NPE from IrSourceCompilerForInlineKt.nonLocalReturnLabel on non-local break and continue in anonymous initializers and in scriptsKT-54840 Field for const property on interface companion object loses deprecated status when copied to interfaceKT-53825 class files are generated when compilation fails with platform declaration clashKT-54526 K2: Raw type scope is lost after exiting from elvisKT-54570 K2: False-positive OVERLOAD_RESOLUTION_AMBIGUITY in case of combination of raw typesKT-52157 Annotation on type parameter isn't present in the symbol loaded from the libraryKT-54318 VerifyError on { null } in catch blockKT-54654 K2: Implicit types leaks into delegated memberKT-54645 K2: Clash of two inherited classes with the same nameKT-53255 [FIR2IR] StackOverflowError with long when-expression conditionsKT-48861 No warning on incorrect usage of array type annotated as Nullable in JavaKT-54539 @Deprecated on members of private companion object is no longer neededKT-54403 Unexpected behaviour on overridden typed equals in inline classKT-54536 Unexpected result of comparison of inline class instancesKT-54603 ClassCastException on comparison of inline classes with custom equalsKT-54401 Unhandled exception on compilation inline class with ‘equals’ from ‘Any’ returning ‘Nothing’KT-54378 K2: smart cast breaks subtyping in case with complex projectionsKT-53761 Reified type not propagated to supertype token through two inline functionsKT-53876 Manually instantiated annotations with unsigned arrays are not equalKT-51740 NO_VALUE_FOR_PARAMETER: Consider increasing error highlighting rangeKT-54084 ClassCastException when trying to call a context receiver's methodKT-51282 IllegalAccessError: Compiler for JVM 1.8+ makes lambdas access unaccessible classes when using @JvmMultifileClassesKT-53479 False positive “Cannot access ‘runCatching’ before superclass constructor has been called”KT-50950 JVM IR: “AssertionError: FUN SYNTHETIC_GENERATED_SAM_IMPLEMENTATION” when using bound reference to suspend SAM functionKT-49364 “VerifyError: Bad type on operand stack” on cast which “can never succeed” from ULong to IntKT-51478 Inapplicable receiver diagnostic expected when there are two context receiver candidates
Docs & Examples
KT-32469 @Synchronized on extension method doesn't generate instance lock
IDE
New Features
KTIJ-24378 Update Kotlin plugin to 1.8.0 in IDEA 223.2
Performance Improvements
KT-55445 KtUltraLightClassModifierList.hasModifierProperty requires resolve for PsiModifier.PRIVATE
Fixes
KTIJ-24657 Disable pre-release and other metadata checks in IDEKT-55929 Unresolved dependencies for intermediate multiplatform SourceSetsKTIJ-24179 Bundle Kotlin 1.8.0 with Intellij IDEA 2022.3.2KTIJ-23547 K2 IDE: Functional type: explicit parameter name VS ParameterName annotationKTIJ-23347 K2 IDE. False positive “Symbol fun intFun(): Unit is invisible” in testsKT-55862 Can't resolve kotlin-stdlib-js sources in IDEKTIJ-23587 K2: SOE in delegate field resolutionKT-55782 [SLC] Typealiases are not exapnded in arguments of annotationsKT-55778 [SLC] Incorrect determination of useSitePostion for types of local declarationsKT-55780 [SLC] No approximation of anonymous and local types in membersKT-55743 K2 SLC: SymbolLightClassForClassOrObject must have a nameKT-55604 Descriptor leakKT-55502 SLC: drop redundant ‘final’ modifier from synthetic static enum membersKT-55497 LC: drop @NotNull annotation from parameter from synthetic Enum.valueOfKT-55496 SLC: generated synthetic enum methods by symbols instead of manual creationKT-55481 SLC: implement correct java annotations for annotation classes (Retention, Target, etc.)KT-55470 SLC: implement light class for RepeatableContainerKT-55442 SLC: ‘isInheritor’ for ‘DefaultImpls’ should work correctlyKTIJ-23449 K2: “parent must not be null” from SymbolLightClassBase.getContext()KT-40609 IDE: False positive “Exception is never thrown...” in Java when Kotlin getter is annotated with ThrowsKT-54051 Migrate symbol light classes from KtSymbol to KtElement
IDE. Completion
KTIJ-22503 Support code completion for data objectsKTIJ-22361 ISE “java.lang.IllegalStateException: Expected FirResolvedTypeRef with ConeKotlinType but was FirImplicitTypeRefImpl ” on K2
IDE. Debugger
KTIJ-24259 Debugger is stuck in an infinite loop in an Android projectKTIJ-24003 Smart step into doesn't work for Java synthetic properties referencesKTIJ-24039 Support smart step into for property setters
IDE. Decompiler, Indexing, Stubs
KTIJ-24351 Kotlin Bytecode tool window: NullPointerException during inlining of inline function with object literal
IDE. Gradle Integration
KTIJ-24616 Gradle Integration: “NoSuchMethodError: 'java.util.Collection org.jetbrains.kotlin.idea.projectModel.KotlinCompilation.getDeclaredSourceSets” during sync fail after updating Kotlin IJ Plugin to 1.8.20-BetaKT-55347 Broken IDE sync for js: java.lang.IllegalStateException: Accessing Compile Dependencies Transformations is not yet initialisedKTIJ-23781 TCS: Gradle Sync: Support friend&dependsOn via IdeaKotlinSourceDependency
IDE. Gradle. Script
KT-56941 Gradle KTS / Navigation: Go to declaration for Java types doesn't work
IDE. Inspections and Intentions
KTIJ-23404 K2 IDE. Platform type is inserted as type parameter for “Change return type” intentionKTIJ-24319 “Set module version to *” quickfix isn't workingKTIJ-23225 “Change package” intention unintentionally and intractably replaces text inside of critical strings and commentsKTIJ-23892 UsePropertyAccessSyntaxInspection should also suggest replacing getter method references with method synthetic properties referencies after Kotlin 1.9KTIJ-22087 Support IDE inspections for upcoming data objectsKTIJ-24286 Constant conditions: false positive “Cast will always fail” with cast of java.lang.String to kotlin.StringKTIJ-23859 ConvertObjectToDataObjectInspection support more hashCode and toString casesKTIJ-23760 Get rid of readResolve logic in ConvertObjectToDataObjectInspection
IDE. KDoc
KTIJ-24342 KDoc: First line break character is swallowed when pasted
IDE. Misc
KTIJ-24370 Remove link to k2.xml from plugin.xml in kt-223 branchesKTIJ-24210 Compatibility issue with the CUBA plugin
IDE. Multiplatform
KTIJ-21205 MPP: Kotlin not configured error is shown for K/N sources if Android target is presentedKT-52172 Multiplatform: Support composite buildsKT-56198 Multiplatform;Composite Builds: import fails if single jvm target multiplatform project consume included jvm buildKTIJ-24147 MPP: NullPointerException: versionString must not be null
IDE. Refactorings. Move
KTIJ-24243 Move declarations: “Search in comments and strings” and “Search for text occurrences” options are always enabled when files are moved
IDE. Script
KT-56632 Script configuration cannot be loaded for embedded code snippets
IDE. Wizards
KTIJ-24562 Android target created by wizard contains AGP higher than supportedKTIJ-24402 Changes “Browser Application for Kotlin/Wasm” wizard templateKTIJ-23525 Wizard: Compose multiplatform: project won't build and require higher compileSdkVersion
JavaScript
New Features
KT-54118 Kotlin/JS IR: keep declarations with non-minified namesKT-35655 Investigate could we use “names” field in SourceMaps to improve debug experience
Fixes
KT-55971 KJS: Result of suspend function cannot be assigned to property of dynamic valueKT-52374 KJS / IR: caling suspend function as dynamic ignores the rest of the expressionKT-56884 KJS: “Top-level declarations in .d.ts files must start with either a ‘declare’ or ‘export’ modifier.” caused by enum and array inside the companion objectKT-51122 Provide fully-qualified method name in Kotlin/JS source mapsKT-56602 KJS / Serialization: polymorphicDefaultDeserializer unbound on Kotlin 1.8.20-BetaKT-56580 KJS: languageVersionSettings string is unstableKT-56581 KJS: Lock file for incremental cacheKT-56582 KJS: Function type interface reflection crashes the compiler in incremental buildKT-55720 KJS: ReferenceError: SuspendFunction1 is not defined with 1.8 when importingkotlin.coroutines.SuspendFunction1KT-56469 KJS: BE Incremental rebuild spoils source map commentKT-55930 KJS: A recursive callable reference of the inline function leads broken cross module referencesKT-31888 Kotlin/JS: make possible to call main() in main run tasks, but not in test tasksKT-51581 FIR: support JS backendKT-55786 KJS: Rewriting of secondary constructors if they are protectedKT-52563 KJS / IR: Invalid TypeScript generated for class extending base class with private constructorKT-55367 KJS / IR + IC: Moving an external declaration between different JsModules() doesn't rebuild the JS codeKT-55240 KJS: “NoSuchElementException: No element of given type found” caused by @JsExport and Throwable's child classKT-54398 KJS / IR + IC: Support *.d.ts generationKT-55144 KJS / IR + IC: Modifying an inline function which is used as a default param in another inline function doesn't invalidate a callerKT-54134 KJS / IR: “TypeError: Cannot read properties of undefined” in js block wrapped with suspend functions aroundKT-54911 KJS / IR + IC: invalidate all klib dependencies after removing itKT-54912 KJS / IR + IC: Commit cache header only in the end (after lowering)KT-52677 Native: StackOverFlow during “kotlin.ir.util.RenderIrElementVisitor$renderTypeAnnotations$1.invoke”KT-54480 KJS: “Exported declaration contains non-consumable identifier” warning when exporting modules as defaultKT-41294 KJS: Weird behaviour of j2v8 in test infraKT-54173 Kotlin/JS + IR: failed to provide keep setting to avoid DCE remove of default interface function from implementing object
Language Design
KT-55451 Preview of lifting restriction on secondary constructor bodies for value classesKT-54621 Preview of Enum.entries: modern and performant replacement for Enum.values()KT-54525 Preview of Java synthetic property referencesKT-55337 Preview of data objectsKT-55344 Deprecate @Synchronized in platforms except JVM
Libraries
KT-35508 EXC_BAD_ACCESS(code=2, address=0x16d8dbff0) crashes on iOS when using a sequence (from map() etc.)KT-56794 Libraries: “Recursively copying a directory into its subdirectory is prohibited” Path.copyToRecursively fails on copying from one ZipFileSystem to another ZipFileSystemKT-55935 [Kotlin/JVM] Path.copyToRecursively does not work across file systemsKT-55978 Provide Common Base64 encoding in stdlibKT-46211 [Kotlin/Native] Stack overflow crash in Regex classes with simple pattern and very large inputKT-31066 Add Closeable & use to common stdlibKT-55609 Introduce experimental kotlin.concurrent.Volatile annotationKT-39789 Segfault in Kotlin/Native regex interpreterKT-53310 Native: HashMap/HashSet doesn't reclaim storage after removing elements
Native
KT-56443 Native link task reports w: Cached libraries will not be used for optimized compilationKT-55938 [Kotlin/Native] Inline functions accessing ObjC class companion cause compiler to crash when building static caches in 1.8.20 dev build
Native. C and ObjC Import
KT-55303 Objective-C import: improve -fmodules flag discoverability.KT-39120 Cinterop tool doesn't support the -fmodules compiler argumentKT-40426 Incorrect Objective-C extensions importing that prevents UIKit usageKT-55653 Since Kotlin 1.8.0 NSView.resetCursorRects doesn't exist anymore and cannot override itKT-54284 Kotlin/Native: cinterop produces non-deterministic metadata
Native. ObjC Export
KT-56350 Kotlin/Native: restore “use Foundation” in generated Objective-C frameworksKT-55736 Native: exporting suspend function from a cached dependency to Objective-C crashes with “Suspend functions should be lowered out at this point”KT-53638 Native: support disabling mangling globally for Swift names in generated Objective-C headerKT-53069 SOE on K/N framework build for Arm64KT-53317 ObjCName annotation is not applied to an extension receiver in Objective-C export
Native. Stdlib
KT-53064 Native: provide stdlib API to obtain memory management statistics
Reflection
KT-27585 Flaky IllegalPropertyDelegateAccessException: Cannot obtain the delegate of a non-accessible property. Use “isAccessible = true” to make the property accessibleKT-55178 Improve performance of KCallable.callByKT-53279 Reflection: “KotlinReflectionInternalError: Method is not supported” caused by @Repeatable annotation deserialization at runtime if it's repeated and contains arraysKT-44977 Reflection: ClassCastException caused by annotations with “AnnotationTarget.TYPE” usage on array attributes access
Tools. CLI
KT-57077 1.8.20-RC-243 shows Java 19 warnings even if configured with Java 17 toolchainKT-56992 Performance test regression in Gradle when switching to Kotlin 1.8.20KT-56789 Metaspace memory leak in CoreJrtFileSystemKT-56925 Remove warning about assignment pluginKT-54652 Enable -Xuse-fir-lt by default when -Xuse-k2 is turned on, provide way to disableKT-55784 Unable to format compilation errors with ansi colors in compilation serverKT-54718 K2: Compiler crashes with “IllegalArgumentException: newPosition > limit”KT-54337 CLI: compiling module-info.java without explicitly specified JDK home leads to a weird error
Tools. Commonizer
KT-47429 [Commonizer] OKIO supportKT-51517 C Interop Commonizer Fails On Classifier That Doesn't Exist
Tools. Compiler Plugins
Fixes
KT-53590 K2 Allopen does not look for transitive meta-annotationsKT-56487 Add more methods to DescriptorSerializerPluginKT-54020 [K2] [NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER] error in case ‘static Name’ param was added to @AllArgsConstructor annotation and an empty list is set as a constructor param valueKT-53096 Create a pack of compiler utilities for generating declarations from pluginsKT-55248 K2/PluginAPI: getCallableNamesForClass/generateClassLikeDeclaration are not called for synthetic companions of local classesKT-54756 Deprecate “legacy” mode of jvm-abi-gen pluginKT-55233 jvm-abi-gen strips out InnerClass attributesKT-54994 K2 plugin API: Compile-time constants are not evaluated before IRKT-55023 K2 plugin API: Compilation with Kotlin daemon fails after certain number of triesKT-55286 K2: Parcelize plugin sometimes can't find nested objects in current classKT-54500 Private type aliases can be referenced from public declarations, but are stripped by jvm-abi-gen
Tools. Compiler plugins. Serialization
KT-56738 Unexpected SERIALIZER_NOT_FOUND when compiling against binary with enumKT-56990 “AssertionError: SyntheticAccessorLowering should not attempt to modify other files” in kotlinx-serialization using @Serializer and List argumentKT-54441 Prohibit implicit serializer customization via companion objectKT-49983 Implement prototype of kotlinx.serialization for K2 compilerKT-48733 “AssertionError: Unexpected IR element found during code generation” caused by Serialization and annotation with default parameterKT-54297 Regression in serializable classes with star projections
Tools. Gradle
New Features
KT-54691 Kotlin Gradle Plugin libraries alignment platformKT-54492 Send gradle build errors from ideaKT-55540 Add compilation speed metric in build reportsKT-55541 Validate FUS metrics values on Gradle side
Performance Improvements
KT-54836 Kotlin/JVM Gradle plugin creates task eagerly on Gradle 7.3+KT-55995 Add ability to perform precise compilation task outputs backupKT-54579 Kapt tasks slow down significantly on Windows when running with JDK 17 compared to JDK 11KT-54588 KotlinCompile: Avoid calling FileCollection.getFiles() multiple times
Fixes
KT-57296 Build statistics sending errors in case of buildSrc directory usage with kotlin-dsl plugin appliedKT-56645 Gradle: KGP reports an incorrect resources processing task name for JVM projectsKT-55824 Deprecate commonMain.dependsOn(anything) in user scriptsKT-56221 Gradle KTS: False positive Val cannot be reassigned when using an extension and its property with an implicit set operatorKT-55452 Values of the compiler arguments set via KotlinCompile task configuration are duplicated by the KaptGenerateStubs taskKT-55565 Consider de-duping or blocking standard addition of freeCompilerArgs to KaptGenerateStubsTaskKT-55632 ‘The configuration :kotlinCompilerClasspath is both consumable and declarable’ messages are displayed in logs for different types of projects for KotlinCompile task with gradle 8KT-56414 Dependency locking and failed builds with Kotlin 1.8.10KT-52625 Compatibility with Gradle 7.4 releaseKT-55544 Gradle: add more debugging information for finding usages of kotlinOptions.freeCompilerArgsKT-52149 Gradle: declare shared build services usages with Task#usesServiceKT-55323 Gradle: allow to opt-out of reporting compiler arguments to a http statistics serviceKT-53811 Compatibility with Gradle 7.6 releaseKT-52998 Compatibility with Gradle 7.5 releaseKT-55741 Gradle 8: Build service ‘*’ is being used by task ‘*’ without the corresponding declaration via ‘Task#usesService’.KT-55174 KotlinCompile task produces deprecation “Build service ‘variant_impl_factories_...’ is being used by task”KT-54425 Kotlin Gradle Plugin should not use deprecated UsageContext#getUsage()KT-54998 “kotlin.gradle.performance” FUS collector reports data twiceKT-55520 Add required configuration for Kotlin Gradle Plugin API reference publicationKT-52963 Build report code breaks Gradle project isolation.KT-55164 KGP: “Cannot access project ‘:’ from project ‘:list’” JVM - Project Isolation with Multi Modules and Configuration Cache failsKT-52490 Gradle: [org.jetbrains.kotlin.gradle.testing.internal] TestReport.destinationDir and TestReport.reportOn deprecation warningsKT-55000 Include information about the new IC into “kotlin.gradle.performance” FUS collectorKT-54941 Gradle, Daemon, MacOS M1: “Native integration is not available for Mac OS X aarch64” on first buildKT-45748 Migrate all Kotlin Gradle plugin Android tests to new test setupKT-54029 Validate Binary Compatibility for kotlin-gradle-plugin-api
Tools. Gradle. Cocoapods
KT-41830 CocoaPods integration: Support link-only mode for podsKT-55117 PodGenTask doesn't declare ouputs properlyKT-55243 Gradle 7.6: Cocoapods plugin generates invalid podspec when applied in root projectKT-56304 Podspec generated with new K/N artifact DSL contains wrong artifact names for static and dynamic librariesKT-56298 Assemble tasks for native binaries fail if more than one kotlin artifact is declared in one gradle projectKT-55801 Deprecate useLibrariesKT-55790 Improper sdk selected for watchosDeviceArm64 target
Tools. Gradle. JS
New Features
KT-25878 Provide Option to Define Scoped NPM PackageKT-37759 [Gradle, JS] Support arguments of command line for webpack and nodejs taskKT-33518 Allow specifying command line args for node in nodejs or mocha testsKT-46163 KJS / Ktor: Support run on the next free port if default one is occupied
Performance Improvements
KT-55476 KotlinWebpack should be cacheableKT-39108 Kotlin multiplatform plugin targeting js takes too long compared to the old kotlin-frontend pluginKT-45411 Investigate memory consumption in npm packageKT-51376 KJS / Gradle: Dukat tasks make impact on build time even if there's no npm dependencies
Fixes
KT-57285 KJS / Gradle / MPP: FileNotFoundException on publishing empty KJS sourcesetKT-57068 KJS / Gradle: “Unable to find method ‘kotlin.gradle.targets.js.dsl.KotlinJsBrowserDsl.testTask’” after updating to 1.8.20-BetaKT-54445 KJS Remove dukat integrationKT-56999 K/JS: KotlinJsIrLink::rootCacheDirectory property must be publicKT-56765 K/JS: Several binaries use same cache directoryKT-54529 KJS / IR: generate typescript definitions only on explicit Gradle actionKT-56488 Debugger won't stop on breakpoints of JS browser testKT-56719 KJS / Gradle: Compile sync task has to sync only changed filesKT-56131 KJS / Gradle: Could not create an instance of type org.jetbrains.kotlin.gradle.targets.js.subtargets.KotlinNodeJs when task configuration avoidance is brokenKT-37668 Kotlin/JS: nodeTest failure due to main() function fail is reported as “BUILD SUCCESSFUL”KT-35285 Kotlin/JS + Gradle: browserDevelopementWebpack and browserProductionWebpack could write to different locationsKT-55593 KotlinJsCompilerType and KotlinJsCompilerTypeHolder LEGACY and BOTH constants should be marked as @Deprecated in 1.8KT-33291 JS: No build result with gradle parallel build in multiproject buildKT-40925 KJS: need a way to configure extra environment variables for the test taskKT-47236 KJS: kotlinNpmInstall fails if no yarn is downloadedKT-53288 KJS / Gradle: FileNotFoundException when customising moduleNameKT-54511 Kotlin/JS generated package.json main field is not correctly set if module name contains a / (slash)KT-54421 KJS / Legacy: Kotlin 1.7.20 fails when running tests on Node 14KT-54503 Make the target observer API public in kotlin JS ExtensionKT-54418 KJS: Change test running with kotlin-test adapterKT-54132 KJS IR: Sometimes karma failed on teamcity because of uninitialized browser
Tools. Gradle. Multiplatform
New Features
KT-54766 TCS: external Android Target APIs: Milestone: CompileKT-50967 Make c-interop libs resolve robust to build cleanKT-53570 multiplatform ‘natural hierarchy’ prototype
Fixes
KT-36943 Gradle Plugin (multiplatform) - Consider publishing a ‘sourcesElements’ variant for the sources.jarKT-57460 Kotlin Gradle Plugin: Null this pointer in transformCommonMainDependenciesMetadataKT-57306 [Kotlin 1.8.20-RC] GradleException: Could not load the value of field apiConfiguration of org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.DefaultKotlinCompilationConfigurationsContainerKTIJ-23750 KotlinMppModelSerializationService is not invoked in production environmentKTIJ-24223 Update latest tested KGP version to 1.9.0-dev-764KT-56536 Multiplatform: Composite build fails on included build with rootProject.name != buildIdentifier.nameKTIJ-23889 TCS: Gradle Sync: Match sources.jar dependencies to sourceSetName scoped dependenciesKT-56729 commonizeCInterop: Duplicated libraries: co.touchlab:sqliter-driver-cinterop-sqlite3KT-56510 Import with included plugin build may fail with OverlappingFileLockException during commonizeNativeDistributionKT-54180 TCS: Initial external Android Target APIsKT-55010 TCS: External Android Target Prototype: Setup Android dependenciesKT-54783 KotlinJvmWithJavaCompilation mututal .all listener loop creates two compilationsKT-54867 KotlinWithJavaCompilation does not respect javaSourceSet classpathsKT-52413 MPP: Gradle dependency substitution breaks KMP import for native targetsKT-56115 Multiplatform;Composite Builds: Support import with cinterop commonization enabledKT-54312 TCS: Replace CompilationDetails abstract class hierarchy by composable implementationKT-47441 MPP: Unresolved reference for dependent on the other module with dependencySubstitutionKT-56429 Fix flaky: MppIdeDependencyResolutionIT.test cinterops - are stored in root gradle folderKT-56337 Unable to import a project with cinterop with enableKgpDependencyResolutionKT-55873 Unrequested dependencies leaking into common source sets: Regression after 703fd0f2KT-55891 Deprecate pre-HMPP flagsKT-56278 TCS: Gradle Sync: [MISSING_DEPENDENCY_CLASS] on libraries used in shared native source setsKT-56143 CInteropDependencyConfiguration and CInteropApiElementsConfiguration are missing attributes defined on targetKT-56285 TCS: Gradle Sync: IdeProjectToProjectCInteropDependencyResolver: Ensure lenient resolutionKT-56204 KotlinTargetHierarchy: Changing naming from ‘any’ to ‘with’ prefixKT-56111 Multiplatform;Composite Builds: Clean builds fail on when ‘hostSpecificMetadata’ is requiredKT-54974 TCS: Gradle Sync: Implement IdeKotlinDependencyResolversKT-38712 Gradle configuration's name with word “implementation” is camelcased to “İmplementation” if default locale is TurkishKT-54975 TCS: Gradle Sync: Implement stdlib-common filter for platform source setsKT-48839 Sources.jar of the root artifact of MPP library includes source files from test sourcesetsKT-55492 TCS: Gradle Sync: Sources and Documentation as extra ‘classpath’KT-55237 TCS: Gradle Sync: Support stdlib-native sourcesKT-55475 TCS: Gradle Sync: Fine tune jvmAndAndroid source setsKT-55189 TCS: Gradle Sync: Support icons (native, js) and global librariesKT-55218 KotlinTargetHierarchy: Disambiguate declaring targets vs including targetsKT-55112 TCS: Gradle Sync: Resolve Source DependenciesKT-54977 TCS: Gradle Sync: Implement debugging toolsKT-54948 TCS: Gradle Sync: Port IdeaKpmPlatformDependencyResolver to TCSKT-55289 TCS: Gradle Sync: Prototypical sources jar resolutionKT-55238 TCS: Gradle Sync: Support commonized native distributionKT-55230 Remove metadata dependencies transformation for runtimeOnly scopeKT-53338 Prettify the message about incompatible AGP and KGP versionsKT-55134 MPP / Gradle: Cannot read test tasks stateKT-54506 Test tasks are considered up-to-date after a failure when triggered by allTestsKTIJ-23509 Update latest tested KGP version to 1.8.20-dev-1815KT-54787 Test tasks are not up-to-date when an individual test task called after aggregating test taskKT-54033 Multiplatform/Android Source Set Layout 1: Also support setting source dirs using AGP ApisKT-54202 CInterop Commonization fails on first run when native distribution is not yet commoniziedKT-54135 Add documentation with examples to CompositeMetadataArtifact
Tools. Gradle. Native
KT-37051 MPP Gradle plugin: duplicated cinterop libraries in composite buildKT-55650 Pass through errors from Gradle to XcodeKT-56205 Shared Native Compilation: False positive ‘w: Could not find’ warnings on metadata klibsKT-54969 Support podspec generation for the new K/N artifact DSL
Tools. Incremental Compile
KT-55021 New IC: “The following LookupSymbols are not yet converted to programSymbols” when removing/renaming file facadesKTIJ-21161 Incremental build is taking too long when no files have changed in the projectKT-53832 Enable new incremental compilation by default in GradleKT-55622 MPP: Incremental compilation ignores changes in source set structureKT-55309 IC: Get rid of NonCachingLazyStorageKT-53402 Incremental compilation tries to compile resourcesKT-54791 Incremental compilation in JPS broken in 1.8.20-dev-1815
Tools. JPS
KT-56165 Language version 1.9 and 2.0 is absent in Kotlin Compiler settingsKT-51536 [JPS] Recompile module on facet settings changeKT-53735 JPS / IC: “IOException: The system cannot find the file specified” on WindowsKT-47983 [JPS] Adding compilerSettings to Facet should initiate rebuild of moduleKT-54449 Cyrillic characters in a filename break builds on linux
Tools. Kapt
New Features
KT-53135 Enable JVM IR for KAPT stub generation by defaultKT-41129 kotlin-maven-plugin + kapt - allow aptMode to be set according to docs
Fixes
KT-56635 KAPT / IR: "Unresolved reference: DaggerGeneratedCodeTest_AppComponent " caused by stub generation with Kotlin 1.8.20-BetaKT-56360 Kapt with JVM IR changes fields orderKT-54380 Kapt / IR: Build failed when inheritance by functional interface with suspend modifierKT-54245 JVM IR / Kapt / Serialization: NullPointerException in SerializableIrGenerator.ktKT-33847 Kapt does not included Filer-generated class files on compilation classpathKT-55490 Kapt + JVM IR: “annotation @Foo is missing default values”KT-43786 KAPT: IllegalStateException: SimpleTypeImpl should not be created for error type: ErrorScopeKT-43117 Kapt: “System is already defined in this compilation unit”KT-46966 Kapt: correctErrorTypes: receiver type is NonExistentClassKT-46965 Kapt: correctErrorTypes: custom setter gets Object parameter typeKT-51087 KAPT: @JvmRepeatable annotations are present in inverse order in KAPT stubsKT-54870 KAPT stub generation with JVM_IR backend throws exception for delegated propertiesKT-44350 Kapt Gradle integration tests failing with Android Gradle plugin 7.0KT-54030 Kapt: annotation processor warnings are displayed as errors on JDK 17+KT-32596 kapt replaces class generated by annotation processor with error.NonExistentClass when the class is used as an annotationKT-37586 KAPT: When delegated property use an unknown type (to-be-generated class), correctTypeError will mess up the $delegate field type
Tools. Maven
KT-56697 IC: “Incremental compilation was attempted but failed” Failed to get changed files: java.io.IOException: readPrevChunkAddressKT-55709 Maven: “java.lang.reflect.InaccessibleObjectException: Unable to make field protected java.io.OutputStream java.io.FilterOutputStream.out accessible”KT-29346 Add components.xml to automatically compile kotlin maven projectsKT-13995 Maven: Kotlin compiler plugin should respect model's compile source rootsKT-54822 Maven: Too low-level error message “Parameter specified as non-null is null: method kotlin.text.StringsKt__StringsJVMKt.startsWith, parameter ” from Kotlin Maven plugin invoking compiler when tags are emptyKT-47110 Disable jdk8-specific warnings in kotlin-maven-plugin
Tools. Scripts
KT-54095 It is difficult (if not impossible) to use kotlin compiler plugins with scriptingKT-54461 Warnings and stack traces when executing scripts via kotlin-maven-pluginKT-54733 Scripts: ConcurrentModificationException in *.main.kts scriptsKT-53283 Scripts: main-kts JAR does not relocate embedded SLF4J and jsoup libraries
1.8.0
Analysis API
KT-50255 Analysis API: Implement standalone mode for the Analysis API
Analysis API. FIR
KT-54292 Symbol Light classes: implement PsiVariable.computeConstantValue for light fieldKT-54293 Analysis API: fix constructor symbol creation when its accessed via type alias
Android
KT-53342 TCS: New AndroidSourceSet layout for multiplatformKT-53013 Increase AGP compile version in KGP to 4.1.3KT-54013 Report error when using deprecated Kotlin Android Extensions compiler pluginKT-53709 MPP, Android SSL2: Conflicting warnings for androidTest/kotlin source set folder
Backend. Native. Debug
KT-53561 Invalid LLVM module: “inlinable function call in a function with debug info must have a !dbg location”
Compiler
New Features
KT-52817 Add @JvmSerializableLambda annotation to keep old behavior of non-invokedynamic lambdasKT-54460 Implementation of non-local break and continueKT-53916 Support Xcode 14 and new Objective-C frameworks in Kotlin/Native compilerKT-32208 Generate method annotations into bytecode for suspend lambdas (on invokeSuspend)KT-53438 Introduce a way to get SourceDebugExtension attribute value via JVMTI for profiler and coverage
Performance Improvements
KT-53347 Get rid of excess allocations in parserKT-53689 JVM: Optimize equality on class literalsKT-53119 Improve String Concatenation Lowering
Fixes
KT-53465 Unnecessary checkcast to array of reified type is not optimized since Kotlin 1.6.20KT-49658 NI: False negative TYPE_MISMATCH on nullable type with whenKT-48162 NON_VARARG_SPREAD isn't reported on *toTypedArray() callKT-43493 NI: False negative: no compilation error “Operator ‘==’ cannot be applied to ‘Long’ and ‘Int’” is reported in builder inference lambdasKT-54393 Change in behavior from 1.7.10 to 1.7.20 for java field override.KT-55357 IllegalStateException when reading a class that delegates to a Java class with a definitely-not-null type with a flexible upper boundKT-55068 Kotlin Gradle DSL: No mapping for symbol: VALUE_PARAMETER SCRIPT_IMPLICIT_RECEIVER on JVM IR backendKT-51284 SAM conversion doesn't work if method has context receiversKT-48532 Remove old JVM backendKT-55065 Kotlin Gradle DSL: Reflection cannot find class data for lambda, produced by JVM IR backendKT-53270 K1: implement synthetic Enum.entries propertyKT-52823 Cannot access class Thread.State after upgrading to 1.7 from 1.6.1 using -Xjdk-release=1.8KT-55108 IR interpreter: Error occurred while optimizing an expression: VARARGKT-53547 Missing fun IrBuilderWithScope.irFunctionReferenceKT-54884 “StackOverflowError: null” caused by Enum constant name in constructor of the same Enum constantKT-47475 “IncompatibleClassChangeError: disagree on InnerClasses attribute”: cross-module inlined WhenMappings has mismatched InnerClassesKT-55013 State checker use-after-free with XCode 14.1KT-54802 “VerifyError: Bad type on operand stack” for inline functions on arraysKT-54707 “VerifyError: Bad type on operand stack” in inline call chain on a nullable array valueKT-48678 Coroutine debugger: disable “was optimised out” compiler featureKT-54745 Restore KtToken constructors without tokenId parameter to preserve back compatibilityKT-54650 Binary incompatible ABI change in Kotlin 1.7.20KT-52786 Frontend / K2: IndexOutOfBoundsException when opting in to K2KT-54004 Builder type inference does not work correctly with variable assignment and breaks run-timeKT-54581 JVM: “VerifyError: Bad type on operand stack” with generic inline function and when inside try-catch blockKT-53794 IAE “Unknown visibility: protected/protected and package/” on callable reference to protected member of Java superclassKT-54600 NPE on passing nullable Kotlin lambda as Java's generic SAM interface with super type boundKT-54463 Delegating to a field with a platform type causes java.lang.NoSuchFieldError: value$delegateKT-54509 Ir Interpreter: unable to evaluate string concatenation with “this” as argumentKT-54615 JVM: Internal error in file lowering: java.lang.AssertionError: Error occurred while optimizing an expressionKT-53146 JVM IR: unnecessary checkcast of null leads to NoClassDefFoundError if the type isn't available at runtimeKT-53712 Add mode to prevent generating JVM 1.8+ annotation targets (TYPE_USE, TYPE_PARAMETER)KT-54366 K2: no JVM BE specific diagnostics (in particular CONFLICTING_JVM_DECLARATIONS) in 1.8KT-35187 NullPointerException on compiling suspend inline fun with typealias to suspend function typeKT-54275 K2: “IllegalArgumentException: KtParameter is not a subtype of class KtAnnotationEntry for factory REPEATED_ANNOTATION”KT-53656 “IllegalStateException: typeParameters == null for SimpleFunctionDescriptorImpl” with recursive generic type parametersKT-46727 Report warning on contravariant usages of star projected argument from JavaKT-53197 K2: ‘init’ hides member of supertype ‘UIComponent’ and needs ‘override’ modifierKT-53867 K2: @JvmRecord does not compile to a java recordKT-53964 K2 is unable to work with Java recordsKT-53349 K2: TYPE_MISMATCH caused by non-local returnKT-54100 “Type variable TypeVariable(P) should not be fixed” crash in code with errorsKT-54212 K2: cannot calculate implicit property typeKT-53699 K2: Exception during IR lowering in code with coroutinesKT-54192 Warn about unsupported feature on generic inline class parametersKT-53723 Friend modules aren't getting passed to cache build during box testsKT-53873 K2: Duplicated diagnostics reported from user type ref checkersKT-50909 “VerifyError: Bad type on operand stack” caused by smartcasting for nullable inline class property in classKT-54115 Restore Psi2IrTranslator constructor from 1.7.20KT-53908 K2: Self-referencing generics in Java class causes New Inference Error (IE: class Foo<T extends Foo>)KT-53193 K2: compile error on project that compiles fine with normal 1.7.10KT-54062 K2 Invalid serialization for type-aliased suspend function type with extension receiverKT-53953 Forbid usages of super or super if in fact it accesses an abstract memberKT-47473 NI: Missed UPPER_BOUND_VIOLATED diagnostics if use type aliases with type parametersKT-54049 K2: false positive MANY_IMPL_MEMBER_NOT_IMPLEMENTEDKT-30054 Wrong approximation if nullable anonymous object with implemented interface is usedKT-53751 Postpone IgnoreNullabilityForErasedValueParameters featureKT-53324 Implement Enum.entries lowering on K/NKT-44441 K2: report redeclaration error if there is a Java class with the same name as the Kotlin classKT-53807 No warning about declaringClass on an enum valueKT-53493 K2: val on function parameter counts as just warningKT-53435 K2: “IllegalArgumentException: class KtValueArgument is not a subtype of class KtExpression for factory ANNOTATION_ARGUMENT_MUST_BE_CONST” if string in nested annotation is concatenatedKT-52927 AssertionError: LambdaKotlinCallArgumentImplKT-53922 Make Enum.entries unstable feature to poison binariesKT-53783 Exception during psi2ir when declaring expect data objectKT-53622 [OVERLOAD_RESOLUTION_AMBIGUITY] when enum entry called ‘entries’ is present in K2KT-41670 JVM IR: AbstractMethodError when using inheritance for fun interfacesKT-53178 K2: implement diagnostics for serialization pluginKT-53804 Restore old and incorrect logic of generating InnerClasses attributes for kotlin-stdlibKT-52970 Default value constant in companion object works on JVM and JS, but fails on nativeKT-51114 FIR: Support DNN checksKT-27936 Write InnerClasses attribute for all class names used in a class fileKT-53719 Parsing regression on function call with type arguments and labeled lambdaKT-53261 Evaluate effect from inline for primitive typesKT-53706 K2: Context receivers are not resolved on properties during type resolution stageKT-39492 Kotlin.Metadata's packageName field cannot be an empty stringKT-53664 Ir Interpreter: unable to evaluate name of function reference marked with JvmStatic from another moduleKT-52478 [Native] Partial linkage: Building native binary from cached KLIBs fails if one library depends on removed nested callable member from another oneKT-48822 CompilationException: Back-end (JVM) Internal error: Failed to generate expression: KtProperty - ConcurrentModificationExceptionKT-50281 IllegalStateException: unsupported call of reified inlined functionKT-50083 Different error messages in android and JVM (Intrinsics.checkNotNullParameter).KT-53236 Support Enum.entries codegen on JVM/IR BEKT-41017 FIR: should we support smartcast after null checkKT-53202 “ISE: Descriptor can be left only if it is last” after direct invoke optimization on a capturing lambdaKT-46969 @BuilderInference with nested DSL scopes cause false-positive scope violation in Kotlin 1.5KT-53257 FIR: Improper context receiver argument is chosen when there are two extension receiver candidatesKT-53090 Anonymous function and extension function literals are generated as classes even with -Xlambdas=indyKT-53208 K2: Cannot get annotation for default interface method parameter when compiled with -Xuse-k2KT-53184 K2: NoSuchMethodError on KProperty1.get() referenced via nullable typealiasKT-53198 K2: Return type mismatch: expected kotlin/Unit, actual kotlin/Unit?KT-53100 Optimization needed: (CONSTANT_PRIMITIVE(x: T?)) => xKT-49875 [FIR] Support infering PRIVATE_TO_THIS visibilityKT-53024 Refactor FIR renderer to composable architectureKT-50995 [FIR] Support SAM with receiver pluginKT-53148 K1: introduce warning for inline virtual member in enumKT-49847 Devirtualization fails to eliminate boxing in function reference contextKT-52875 Extension function literal creation with -Xlambdas=indy fails with incorrect argumentsKT-53072 INVALID_IF_AS_EXPRESSION error isn't shown in the IDE (LV 1.8)KT-52985 Native: a function with type T? returned a kotlin.Unit instead of nullKT-52020 FIR warning message includes internal renderingKT-48778 -Xtype-enhancement-improvements-strict-mode not respecting @NonNull annotation for property accesses?
IDE
Fixes
KTIJ-22357 CCE “class org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImpl cannot be cast to class org.jetbrains.kotlin.fir.types.FirResolvedTypeRef” in K2KT-55150 Argument for @NotNull parameter ‘scope’ of org/jetbrains/kotlin/resolve/AnnotationResolverImpl.resolveAnnotationType must not be nullKTIJ-22165 IDE notification to promote users to migrate to the new Kotlin/JS toolchainKTIJ-22166 IDE notification (or something else) about JPS and Maven support for Kotlin/JS is deprecatedKT-53543 Rework light classes for file facadeKT-48773 Investigate the possibility of removing dependency on old JVM backend in light classesKTIJ-19699 IDE: False positive type mismatch in Java code for Kotlin nested class non-direct inheritor from external libraryKT-51101 FIR IDE: Exception on “Show Type Info” actionKTIJ-22295 MPP, IDE: False positive UPPER_BOUND_VIOLATED when JVM module implements the generic interface from MPP module and the type parameter is not equal to itself.KT-51656 FIR IDE: ProgressCancelled exception is masked in the compiler during resolveKT-51315 FIR IDE: move out base modules from fe10 plugin to reuse in k2 pluginKTIJ-22323 K2: ISE during resolve of stdlib calls from the stdlibKTIJ-21391 Generate -> Override methods : don't delegate to abstract methodsKT-53097 Extract common part of light classes to another moduleKTIJ-22354 FIR LC: annotation owner is always nullKTIJ-22157 Kotlin call resolver leaks user code when reporting exception
IDE. Completion
KTIJ-22552 Kotlin: ‘for loop’ postfix completion doesn't work - “Fe10SuggestVariableNameMacro must be not requested from main classloader”KTIJ-22503 Support code completion for data objects
IDE. Debugger
KT-51755 Compilation exception with scripting compilation during debug sessionKTIJ-21963 Debugger / IR: Expression evaluation of the debugger doesn't work
IDE. Decompiler, Indexing, Stubs
KTIJ-22750 Initialize Kotlin stub element types lazilyKTIJ-18094 IDE: “AssertionError: Stub count doesn't match stubbed node length” with minified Android AAR libraryKTIJ-17632 IndexOutOfBoundsException: Cannot decompile a class located in minified AAR
IDE. Gradle Integration
KT-48135 In the IDE import, reuse dependency granular source set KLIBs across multi-project build to avoid duplicate external librariesKTIJ-22345 False positive unresolved reference for members of subclasses of expect classes.KT-53514 HMPP: False positive for None of the following functions can be called with the arguments supplied. with Enum in common moduleKT-51583 Gradle 7.4+ | SamplesVariantRule interference: Could not resolve all files for configuration ‘:kotlinKlibCommonizerClasspath’KTIJ-21077 Dependency matrix does not work with Jetpack compose / multiplatform projects
IDE. Inspections and Intentions
KTIJ-19531 Adapt changes about new rules for method implementation requirementsKTIJ-22087 Support IDE inspections for upcoming data objectsKTIJ-20510 Quick fix to implement and call correct super method in case of inheritance with defaultsKTIJ-20170 Provide quickfix for deprecated resolution to private constructor of sealed classKTIJ-22630 FIR IDE: Lazy resolve exception after invocation of Override members action on value classKT-49643 Intentions: “Implement members” fails when base type function declaration uses unresolved generic types
IDE. JS
KTIJ-22167 Make JS IR default in projects created by wizardKTIJ-22332 Wizard: Kotlin/JS projects: cssSupport DSL should be updated
IDE. KDoc
KTIJ-22324 K2 IDE: implement reference resolve inside KDocs
IDE. Multiplatform
KTIJ-19566 New Project Wizard: Update HMPP-related flags in multiplatform wizards
IDE. Navigation
KT-51314 FIR IDE: show Kotlin declarations in search symbolKTIJ-22755 Find usage for constructor from kotlin library doesn't work for secondary constructor usages
IDE. Script
KTIJ-22598 Add warning for standalone scripts in source rootsKT-54325 .settings.gradle.kts and .init.gradle.kts are reported as standalone scripts
IDE. Structural Search
KTIJ-21986 KSSR: “CodeFragment with non-kotlin context should have fakeContextForJavaFile set: originalContext = null” warning shows up when replacing
IDE. Tests Support
KT-50269 FIR IDE: Allow running tests via gutter
IDE. Wizards
KTIJ-23537 Wizard: projects with Android modules require higher sdkCompileVersionKTIJ-23525 Wizard: Compose multiplatform: project won't build and require higher compileSdkVersionKTIJ-22763 New Project Wizard: remove deprecated Android extensions plugin from Android target in the project constructorKTIJ-22481 Wizard: Kotlin -> Browser application (gradle groove). Build error
JavaScript
Fixes
KT-55097 KJS / IR + IC: Using an internal function from a friend module throws an unbound symbol exceptionKT-54406 Kotlin/JS: build with dependencies fails with “Could not find “kotlin” in [~/.local/share/kotlin/daemon]”KT-53074 Make JS IR BE default in toolchain (gradle & CLI)KT-50589 UTF-8 Instability in kotlin.js.mapKT-54934 KJS / IR + IC: Suspend abstract function stubs are generated with unstable lowered ic signaturesKT-54895 KJS / IR + IC: broken cross module references for function default param wrappersKT-54520 KJS / IR Allow IdSignature clashesKT-54120 JS IR + IC: pointless invalidation of dependent code after modifying companionsKT-53986 KJS / IR + IC: compiler produces different JS file names with IC and without ICKT-54010 JS IR + IC: Force IC cache invalidation after updating language version or featuresKT-53931 KJS / Gradle: Regression with 1.7.20-RC: ReferenceError: println is not definedKT-53968 Kotlin/JS: no UninitializedPropertyAccessException on access to non-initialized lateinit property defined in dependenciesKT-54686 KJS / IR: Incorrect generation of signatures when one of argument is nested classKT-54479 KJS / IR + IC: Adding or removing companion fields leads java.lang.IllegalStateException in the compiler IC infrastructureKT-54382 KJS / IR: Wrong type check for inheritors of suspend functionsKT-54323 KJS / IR + IC: Intrinsics from stdlib may lose their dependencies in incremental rebuildKT-53361 KJS / IR: No debug info is generated for in-line js codeKT-53321 Implement Enum.entries lowering on JS/IRKT-53112 KJS IR turn on IC infra by defaultKT-50503 Kotlin/JS: IR + IC: compileTestDevelopmentExecutableKotlinJs fails with ISE: “Could not find library” after removing module dependencyKT-54011 JS IR + IC: EnumEntries don't work well when IC is enabledKT-53672 KJS / IR: “IndexOutOfBoundsException: Index 0 out of bounds for length 0” caused by function reference to extension function of reified type variableKT-43455 KJS: IR. Incremental compilation problem with unbound symbolsKT-53539 KJS: Exported class inherited non-exported class shows warningKT-53443 KJS/IR: NullPointerException caused by anonymous objects inside lambdasKT-52795 K/JS and K/Native IR-validation/compilation errors for a valid kotlin codeKT-52805 KJS/IR: Invalid call of inline function in also blockKT-51151 KJS / IR: Wrong overloaded generic method with receiver is calledKT-52830 KJS/IR: Sourcemap disabling doesn't workKT-52968 KJS / IR: Buggy generation of overridden methodsKT-53063 KJS / IR + IC: undefined cross module reference for implemented interface functionsKT-51099 KJS / IR + IC: Cache invalidation doesn't check generic class variance annotations (in, out)KT-51090 KJS / IR + IC: Cache invalidation doesn't check suspend qualifierKT-51088 KJS / IR + IC: Cache invalidation doesn't check class qualifiers (data, inline)KT-51083 KJS / IR + IC: Cache invalidation doesn't check inline function which was non inline initiallyKT-51896 KJS / IR + IC: Cache invalidation doesn't trigger rebuild for fake overridden inline functions
Language Design
KT-48385 Deprecate confusing grammar in when-with-subjectKT-48516 Forbid @Synchronized annotation on suspend functionsKT-41886 Ability to require opt-in for interface implementation, but not for usageKT-34943 OVERLOAD_RESOLUTION_AMBIGUITY inconsistent with the equivalent Java codeKT-51334 Implement type-bound label this@Type
Libraries
New Features
KT-21007 Provide Kotlin OSGI Bundle with extensions for JRE8 (and JRE7)KT-54082 Comparable and subtractible TimeMarksKT-52928 Provide copyToRecursively and deleteRecursively extension functions for java.nio.file.PathKT-49425 Update OptIn documentation to reflect latest design changesKT-54005 Allow calling declaringJavaClass on EnumKT-52933 rangeUntil members in built-in types
Performance Improvements
KT-53508 Cache typeOf-related KType instances when kotlin-reflect is used
Fixes
KT-51907 Switch JVM target of the standard libraries to 1.8KT-54835 Document that Iterable.all(emptyCollection) returns TRUE.KT-54168 Expand on natural order in comparator docsKT-53277 Stabilize experimental API for 1.8KT-53864 Review deprecations in stdlib for 1.8KT-47707 Remove the system property and the brittle contains optimization code itselfKT-52336 Different behavior on JVM and Native in stringBuilder.append(charArray, 0, 1)KT-53927 Remove deprecation from ConcurrentModificationException constructorsKT-53152 Introduce EnumEntries to stdlib as backing implementation of Enum.entriesKT-53134 stdlib > object Charsets > not thread safe lazy initializationKT-51063 Gradle project with JPS runner: “JUnitException: Failed to parse version” JUnit runner internal error with JUnitKT-52908 Native: setUnhandledExceptionHook swallows exceptions
Native
KT-51043 Kotlin Native: ObjC-Interop: kotlin.ClassCastException: null cannot be cast to kotlin.Function2KT-50786 Native: prohibit suspend calls inside autoreleasepool {}KT-52834 Implement test infrastructure for K2/Native
Native. C Export
KT-36878 Reverse C Interop: incorrect headers generation for primitive unassigned type arraysKT-53599 [Reverse C Interop] Provide box/unbox API for unsigned primitive typesKT-41904 Kotlin/Native : error: duplicate member for interface and function with the same nameKT-42830 [Reverse C Interop] Add API to get value of boxed primitivesKT-39496 K/N C: optional unsigned types as function parameters crash the compilerKT-39015 Cannot compile native library with nullable inline class
Native. C and ObjC Import
KT-54738 Cocoapods cinterop: linking platform.CoreGraphics packageKT-54001 Kotlin/Native: support header exclusion in cinterop def filesKT-53151 Native: Custom declarations in .def don't work with modules, only headers
Native. ObjC Export
KT-53680 Obj-C refinement annotationsKT-54119 Native: runtime assertion failed due to missing thread state switchKT-42641 Don't export generated component* methods from Kotlin data classes to Obj-C header
Native. Platform Libraries
KT-54225 Native: update to Xcode 14.1KT-54164 Native: commonizer fails on CoreFoundation typesKT-39747 Why is there no WinHttp API in Kotlin/Native's Windows API?
Native. Runtime
KT-49228 Kotlin/Native: Allow to unset unhandled exception hookKT-27305 Fix FILE macro inside RuntimeCheck and RuntimeAssert
Native. Runtime. Memory
KT-54498 Deprecation message of ‘FreezingIsDeprecated’ is not really helpfulKT-53182 New memory manager: Unexpected memory usage on IOS
Native. Stdlib
KT-52429 Small Usability Improvements for Worker API
Reflection
KT-54629 Incorrectly cached class classifierKT-54611 KTypeImpl does not take into account class loader from the classifier propertyKT-48136 Make Reflection.getOrCreateKotlinPackage use cache when kotlin-reflect is usedKT-50705 Use ClassValue to cache KClass objects in kotlin-reflectKT-53454 Properly cache the same class‘s KClass when it’s loaded by multiple classloaders in getOrCreateKotlinClass
Specification
KT-54210 Update Kotlin specification to mention that since 1.8 generics in value classes are allowed
Tools. CLI
KT-54116 Add JVM target bytecode version 19KT-53278 Support values 6 and 8 for -Xjdk-releaseKT-46312 CLI: Kotlin runner should use platform class loader to load JDK modules on Java 9+
Tools. Commonizer
KT-54310 Commonizer fails on 1.8.0-dev K/N distributionsKT-48576 [Commonizer] platform.posix.pselect not commonized in Ktor
Tools. Compiler Plugins
KT-46959 Kotlin Lombok: Support generated builders (@Builder)KT-53683 Unresolved reference compilation error occurs if a file is annotated with @ Singular and has any guava collection type : ImmutableTable, ImmutableList or elseKT-53657 [K2] Unresolved reference compilation error occurs if a field is annotated with @ Singular and has type NavigableMap without explicit types specificationKT-53647 [K2] Unresolved reference compilation error occurs if a field is annotated with @ Singular and has type Iterable<>KT-53724 Param of the @ Singular lombok annotation ignoreNullCollections=true is ignored by kotlin compilerKT-53451 [K2] References to methods generated by @ With lombok annotation can't be resolved with enabled K2 compilerKT-53721 [K2] There is no compilation error while trying to add null as a param of the field with non-null typeKT-53370 Kotlin Lombok compiler plugin can't resolve methods generated for java boolean fields annotated with @ With annotation
Tools. Compiler plugins. Serialization
KT-54878 JVM/IR: java.lang.ClassCastException: class org.jetbrains.kotlin.ir.types.impl.IrStarProjectionImpl cannot be cast to class org.jetbrains.kotlin.ir.types.IrTypeProjection on serializer<Box<*>>()KT-55340 Argument for kotlinx.serialization.UseSerializers does not implement KSerializer or does not provide serializer for concrete typeKT-55296 Improve exceptions in serialization pluginKT-55180 KJS: regression in serialization for Kotlin 1.8.0-betaKT-53157 Recursion detected in a lazy value under LockBasedStorageManager in kotlinx.serializationKT-54297 Regression in serializable classes with star projectionsKT-49660 kotlinx.serialization: IndexOutOfBoundsException for parameterized sealed classKT-43910 JS IR: Serialization with base class: “IndexOutOfBoundsException: Index 0 out of bounds for length 0”
Tools. Daemon
KT-52622 Kotlin/JS, Kotlin/Common compilations start Kotlin daemon incompatible with Kotlin/JVM compilation on JDK 8
Tools. Gradle
New Features
KT-27301 Expose compiler flags via Gradle lazy propertiesKT-53357 Change single build metrics propertyKT-50673 Gradle: KotlinCompile task(s) should use @NormalizeLineEndingsKT-34464 Kotlin build report path not clickable in the IDE
Performance Improvements
KT-51525 [Gradle] Optimize evaluating args for compile tasksKT-52520 Remove usage of reflection from CompilerArgumentsGradleInput
Fixes
KT-48843 Add ability to disable Kotlin daemon fallback strategyKT-55334 kaptGenerateStubs passes wrong android variant module names to compilerKT-55255 Gradle: stdlib version alignment fails build on dynamic stdlib version.KT-55363 [K1.8.0-Beta] Command line parsing treats plugin parameters as source filesKT-54993 Raise kotlin.jvm.target.validation.mode check default level to error when build is running on Gradle 8+KT-54136 Duplicated classes cause build failure if a dependency to kotlin-stdlib specified in an android projectKT-50115 Setting toolchain via Java extension does not configure ‘kotlinOptions.jvmTarget’ value when Kotlin compilation tasks are created eagerlyKT-55222 Migrate AndroidDependencyResolver to the new Gradle APIKT-55119 There is no validation for different jvmTarget and targetCompatibility values in multiplatform projects with jvm target and used java sourcesKT-55102 Compile java task fails with different target version in pure kotlin projectKT-54995 [1.8.0-Beta] compileAppleMainKotlinMetadata fails on default parameters with No value passed for parameter 'mustExist'KT-35003 Automatically set targetCompatibility for kotlin-jvm projects to work with gradle 6 metadataKT-45335 kotlinOptions.jvmTarget conflicts with Gradle variantsKT-48798 Android: going from one to more than one productFlavor causes inputs of commonSourceSet$kotlin_gradle_plugin property of compileKotlin task to changeKT-55019 Gradle sync: UnknownConfigurationException when adding implementation dependencies to a Kotlin with Java compilationKT-55004 jvmTarget value is ignored by depending modules if a task “UsesKotlinJavaToolchain” is configured for all project modules using allProjects {}KT-54888 Add Gradle property to suppress kotlinOptions.freeCompilerArgs modification on execution phaseKT-54399 Undeprecate ‘kotlinOptions’ DSLKT-54306 Change the naming of newly added Compiler*Options classes and interfacesKT-54580 KotlinOptions in AbstractKotlinCompilation class are deprecatedKT-54653 java.lang.NoClassDefFoundError: kotlin/jdk7/AutoCloseableKt exception if a dependency to the kotlin-stdlib is addedKT-52624 Compatibility with Gradle 7.3 releaseKT-54703 Stdlib substitution does not work with JPMS modulesKT-54602 Prevent leaking Gradle Compile DSL types into compiler cli runtimeKT-54439 Project failed to sync Native LaguageSettings to compiler options in afterEvaluateKT-53885 Bump minimal supported Gradle version to 6.8.3KT-53773 Protect and system properties can contain sensitive dataKT-53732 Add custom values limits for build scan reportsKT-52623 Compatibility with Gradle 7.2. releaseKT-51831 Gradle: remove kotlin.compiler.execution.strategy system propertyKT-51679 Change deprecation level to error for KotlinCompile setClasspath/getClasspath methodsKT-54335 Kotlin build report configuration. There is no validation for SINGLE_FILE output if the required kotlin.build.report.single_file property is empty or absentKT-54356 Kotlin build report configuration. Wrong path is used for the property kotlin.internal.single.build.metrics.fileKT-53617 KotlinCompilerExecutionStrategy value is ignored by depending modules if configure once for all project modules using allProjects {}KT-53823 Kotlin Gradle Plugin uses deprecated Gradle API: Provider.forUseAtConfigurationTime()KT-54142 Increase Kotlin Gradle plugin Gradle target API to 7.5KT-50161 Android variant filter breaks KotlinCompile cache compatibilityKT-54113 LanguageSettings to KotlinNativeLink.toolOptions sync are executed on the wrong contextKT-53830 Versions of kotlin-stdlib-jdk8 and kotlin-stdlib-jdk7 aren't overrided if added as transitive dependencies to kotlin-stdlibKT-54112 Missing target input on KotlinNativeLink taskKT-45879 Documentation: Wrong kotlin languageVersion “1.6 (EXPERIMENTAL)”KT-54103 Remove JvmTarget.JVM_1_6 from generated Gradle compiler typeKT-52959 KMP code is breaking Gradle project isolationKT-50598 MULTIPLE_KOTLIN_PLUGINS_SPECIFIC_PROJECTS_WARNING is only shown on first buildKT-53246 Gradle: Special characters in paths of errors and warnings should be escapedKT-47730 How to avoid stdlib coming from Kotlin gradle pluginKT-52209 Corrupted cache and non-incremental build if produce caches “in process” and restore then compiling with kotlin daemonKT-41642 “TaskDependencyResolveException: Could not determine the dependencies” when trying to apply stdlibKT-53390 Drop usage of -Xjava-source-roots when passing java sources required for Kotlin compilationKT-52984 Kotlin Gradle plugin is misbehaving by resolving DomainObjectCollection earlyKT-38622 Non-incremental compilation because of R.jar with Android Gradle plugin 3.6KT-38576 AnalysisResult.RetryWithAdditionalRoots crashes during incremental compilation with java classes in classpath
Tools. Gradle. Cocoapods
KT-54314 Cocoapods: Signing pod dependency for Xcode 14KT-54060 Xcode 14: disable bitcode embedding for Apple frameworksKT-53340 Change default linking type for frameworks registered by cocoapods pluginKT-53392 Deprecate and delete downloading pod dependencies by direct linkKT-53695 Build of macOS application fails if a framework is integrated via Cocoapods plugin
Tools. Gradle. JS
KT-53367 KJS: Migrate cssSupport APIKT-45789 KJS / IR: Transitive NPM dependencies are not included in PublicPackageJsonTask outputKT-55099 K/JS: Second declaration of JS target without compiler type report warning incorrectlyKT-52951 [KGP/JS] Browser test target registration via propertiesKT-52950 KJS: Report if yarn.lock was updated during builtKT-53374 KJS / Gradle: Implement IDEA sync detection logic via ValueSource to improve configuration cache supportKT-53381 Kotlin/JS: with erased kotlin-js-store/ and reportNewYarnLock = true the task kotlinUpgradeYarnLock always failsKT-53788 KJS / Gradle: Disable Gradle build cache for KotlinJsDce when development mode is enabledKT-53614 Kotlin/JS upgrade npm dependencies
Tools. Gradle. Multiplatform
New Features
KT-53396 Support ‘implementation platform()’ by gradle kotlin mpp plugin for JVM targetKT-40489 MPP / Gradle: support BOM (enforcedPlatform) artifacts in source set dependencies DSL
Performance Improvements
KT-52726 [MPP] Optimize caching/performance/call-sites of ‘compilationsBySourceSets’
Fixes
KT-54634 MPP: Test Failure causes: KotlinJvmTest$Executor$execute$1 does not define failureKT-35916 Gradle MPP plugin: Configurations for a main compilation and its default source set have different namingKT-46960 Repeated kotlin/native external libraries in projectKT-27292 MPP: jvm { withJava() }: Gradle build: Java source under Kotlin root is resolved while building, but does not produce output class filesKT-34650 Naming clash in MPP+Android: androidTest vs androidAndroidTestKT-54387 Remove MPP alpha stability warningKT-31468 Targets disambiguation doesn't work if a depending multiplatform module uses withJava() modeKT-54090 Take an Apple test device from the device listKT-54301 KotlinToolingVersionOrNull: IllegalArgumentExceptionKT-53256 Implement K/N compiler downloading for KPMKT-45412 KotlinCompilation: Make sure .kotlinSourceSets and .allKotlinSourceSets include the default source setKT-49202 Tests on android target can't be executed in multiplatform project if dependency to kotlin-test framework is provided as a single dependency and tests configured to be executed via Junit5
Tools. Gradle. Native
New Features
KT-43293 Support Gradle configuration caching with Kotlin/NativeKT-53107 Add arm64 support for watchOS targets (Xcode 14)
Fixes
KT-53704 Native cinterop: eager header path calculationKT-54814 Kotlin/Native: Github Actions: Testing watchOSX64 with Xcode 14 — Invalid device: Apple Watch Series 5KT-54627 Native: :commonizeNativeDistribution with configuration cache enabled fails even when set to warn on JDK 17KT-54339 Link tasks fail if Gradle Configuration Cache is enabledKT-53191 Native cinterop sync problem with gradleKT-54583 watchosDeviceArm64 target shouldn't register test tasksKT-52303 Gradle / Native: Build tasks ignore project.buildDirKT-54442 Gradle iOS test tasks fail if a device is not selected explicitlyKT-54177 Gradle: Deprecate enableEndorsedLibs flagKT-47355 Support macos target for FatFramework taskKT-53339 MPP / CocoaPods: The static framework fails to install on a real iOS deviceKT-31573 Missing description for Native Gradle tasksKT-53131 Gradle Sync: “NoSuchElementException: Array contains no element matching the predicate” with CocoaPodsKT-53686 Task assembleReleaseXCFramework fails with “error: the path does not point to a valid framework” if project name contains a dash
Tools. Incremental Compile
KT-54144 New IC: “IllegalStateException: The following LookupSymbols are not yet converted to ProgramSymbols” when changing an inline function with custom JvmNameKT-53871 New IC: “IllegalStateException: The following LookupSymbols are not yet converted to ProgramSymbols” when changing an inline property accessorKT-19804 Relocatable IC caches
Tools. JPS
KT-45474 False positive NO_ELSE_IN_WHEN on sealed class with incremental compilationKT-54228 Switching abstract to sealed classes causes incremental issueKT-38483 JPS: Stopping compilation causes IDE CompilationCanceledExceptionKT-50310 False positive NO_ELSE_IN_WHEN on incremental build when adding sealed classesKT-48813 Move cache version to compilerKTIJ-921 JPS: FileNotFoundException on project build in mixed Kotlin/Scala project
Tools. Kapt
KT-54187 JVM IR + kapt: incorrect modifier final is generated for nested enum in interfaceKT-48827 Remove ‘kapt.use.worker.api’ property
Tools. Scripts
KT-54355 Scripts: Internal compiler error (languageVersion=1.9)KT-53009 Scripting: NDFDE “Descriptor wasn't found for declaration SCRIPT” on using script definition with kotlin from master
Recent ChangeLogs: