Changelog
Analysis. API
Performance Improvements
KT-61789K2: optimize getFirForNonKtFileElement for references inside super type referenceKT-59498K2: getOnAirGetTowerContextProvider took too much time due to on air resolveKT-61728Analysis API: optimize AllCandidatesResolver.getAllCandidates
Fixes
KT-61252K2: IDE K2: "By now the annotations argument mapping should have been resolved"KT-62310K2 IDE. False positives errors with external annotationsKT-62397K2 IDE. FP Error in the editor onRequiresOptInannotation from the lib despite the warning levelKT-62705K2: "lazyResolveToPhase(IMPORTS) cannot be called..." from light classesKT-62626IllegalStateException: Cannot build symbol for class org.jetbrains.kotlin.psi.KtScriptInitializerKT-62693K2: IDE K2: "PSI should present for declaration built by Kotlin code"KT-62674K2: "Scope for type ConeClassLikeTypeImpl" is null from transitive dependenciesKT-61889Analysis API: Migrate KtFirReferenceShortener to ContextCollector instead of FirResolveContextCollectorKT-62772Analysis API: No 'org.jetbrains.kotlin.fir.java.FirSyntheticPropertiesStorage'(31) in array owner: LLFirSourcesSession when analysing builtins in a context of common codeKT-61296K2: do not resolve the entire file on lazyResolve call if FirFile is passedKT-60319K2 IDE: "Stability for initialized variable always should be computable"KT-62859K2 IDE: "Evaluate expression" throws exception when calling "Any?.toString()"KT-62421K2: IDE K2: "lazyResolveToPhase(BODY_RESOLVE)cannot be called from a transformer with a phase BODY_RESOLVE."KT-63058K2 IDE: Code completion unexpectedly imports static/companion object methodKT-62588getExpectedType should not calculate type of the expressionKT-61990K2: Unexpected returnTypeRef for FirSyntheticPropertyKT-62625K2: 'FirLazyExpression should be calculated before accessing' for unresolved super typeKT-62071Analysis API: KtFirScopeProvider.getScopeContextForPosition throws exception when ImplicitReceiverValue.implicitScope is nullKT-62691K2: optimize getFirForNonKtFileElement for references inside 'where'KT-62587K2 IDE. FP unresolved reference on accessing nested class in annotation argumentKT-62834K2: missing file node level in control flow builderKT-62768Analysis API: No 'org.jetbrains.kotlin.fir.scopes.impl.FirDelegatedMembersFilter'(44) in array owner: LLFirSourcesSession exception on analysing common codeKT-62874K2: FirLazyExpression should be calculated before accessingKT-62407Analysis API: resolve[this]in KDoc to extension receiverKT-61204K2: "FirLazyExpression should be calculated before accessing in ktor HttpBinApplication"KT-61901Analysis API: Declared member scopes for Java classes are missing static membersKT-61800Analysis API: Provide separate declared member scopes for non-static and static callablesKT-61255Analysis API: Get rid ofvalueOf,valuesandentriesfrom a declared member scopeKT-62466Expected type for functional expression should include inferred typesKT-61203IDE K2: "Expected FirResolvedArgumentList for FirAnnotationCallImpl of FirRegularClassImpl(Source) but FirArgumentListImpl found"KT-61791Analysis API: Implement combinedgetPackagefor combined Kotlin symbol providersKT-62437K2 IDE. Resolution does not work inside lambda expression in constructor argument in supertypesKT-62244K2: Analysis API Standalone: Resolving klib dependencies from binary roots terminates applicationKT-62897K2 IDE. Unresolved declarations from libraries which are doubled inintellijproject librariesKT-61615K2: No 'org.jetbrains.kotlin.fir.analysis.js.checkers.FirJsModuleKind' in array owner: LLFirSourcesSessionKT-59334K2: LLFirImplicitTypesLazyResolver problemsKT-62038K2: Nested classes are missing in symbol light class structure tests for librariesKT-61788Analysis API: Symbol forFirAnonymousInitializercannot be nullKT-62139Analysis API: KtFe10AnalysisSession.createContextDependentCopy does not need validity checkKT-62090Analysis API: introduce an API to get a substitution formed by class inheritanceKT-62268K2 IDE. No autocompletion and IllegalStateException for PairKT-62302Support PsiType -> KtType conversionKT-60325K2 IDE. "IllegalArgumentException: source must not be null" onthrowusage attemptKT-61431K2: KtPropertyAccessorSymbolPointer pointer already disposed for $$result script propertyKT-60957K2: Analysis API: Reference shortener does not work correctly with invoke function calls on propertiesKT-58490K2: LLFirTypeLazyResolver problemsKT-58494K2: LLFirAnnotationArgumentsLazyResolver problemsKT-58492K2: LLFirBodyLazyResolver problemsKT-58769K2: LL FIR: implement platform-dependent session factoriesKT-60343K2 IDE. IllegalArgumentException on passing incorrect type parameter to functionKT-61383K2: 'KtCompilerFacility' fails on code fragment compilation in library sources with duplicated dependenciesKT-61842K2: reduce number of "in-block modification" eventsKT-62012K2: "KtReadActionConfinementLifetimeToken is inaccessible: Called outside analyse method"KT-61371K2: Analysis API standalone: register compiler symbol provider for libraries in standalone modeKT-61422K2 IDE: "No array element type for vararg value parameter: org.jetbrains.kotlin.fir.declarations.impl.FirValueParameterImpl"KT-60611K2: reduce number of "in-block modification" eventsKT-61425Analysis API: Provide a way to get a declared member scope for an enum entry's initializing anonymous objectKT-61405Analysis API: An enum entry should not be aKtSymbolWithMembersKT-60904K2: IDE K2: "For DESTRUCTURING_DECLARATION_ENTRY with text_, one of element types expected, but FirValueParameterSymbol found"KT-61260K2 Scripts: Containing function should be not null for KtParameterKT-61568FIR Analysis API:collectCallCandidatesgives presence to the top level functions in the presence of more suitable overridesKT-60610K2 IDE: move "out of block" processing logic into LL FIRKT-61597Analysis API: KotlinIllegalStateExceptionWithAttachments: expected as maximum oneexpectfor the actual on errorneous code with multiple expectsKT-59793K2: class org.jetbrains.kotlin.fir.declarations.impl.FirErrorImportImpl cannot be cast to class org.jetbrains.kotlin.fir.declarations.FirResolvedImportKT-61599K2: ContextCollector: Support smart cast collectionKT-61689Analysis API: ContextCollector provides incorrect context in scriptsKT-61683Analysis API: resolve ambiguities in kotlin projectKT-61245Analysis API: ContextCollector provides incorrect context for supertype constructor callsKT-60384K2: Opening@JvmNamesource in IDEA: NPE at PsiRawFirBuilder$Visitor.toFirConstructor()KT-60918K2 IDE: "FirDeclaration was not found for class org.jetbrains.kotlin.psi.KtDestructuringDeclarationEntry, fir is null"KT-61013K2 Scripts: LLFirReturnTypeCalculatorWithJump: No designation of local declarationKT-59517K2 IDE: KotlinExceptionWithAttachments: Modules are inconsistentKT-61331K2: add cache restoring in case of existing contextKT-61408K2: IDE K2: "Inconsistency in the cache. Someone without context put a null value in the cache"
Backend. Native. Debug
KT-57365[Native] Incorrect debug info on inline function call site
Backend. Wasm
KT-62147[Kotlin/Wasm] Nothing typed when expression cause a backend errorKT-61958Update SpiderMonkey and return its usage in box tests when they switch to the final opcodes for GC and FTR proposalsKT-60828K/Wasm: return br_on_cast_fail usagesKT-59720K/Wasm: update to final opcodesKT-59084WASM: "RuntimeError: illegal cast" caused by inline class and JsAnyKT-60700[WASM] test FirWasmCodegenBoxTestGenerated.testSuspendUnitConversion failed after KT-60259
Compiler
New Features
KT-62239Allow enum entries without parentheses uniformlyKT-22004Allow to resolve CONFLICTING_OVERLOADS with Deprecated(HIDDEN)KT-11712Smart cast is not applied for invisible setterKT-61077Support provideDelegate inference from var property typeKT-59504K2 compiler does not require resolved 'componentX' functions for the placeholder ('_') variables in the destructuring declarations
Performance Improvements
KT-62619FIR: Checker performance regression due to MISSING_DEPENDENCY checkersKT-62044Do not add nullability annotations to the methods of anonymous classKT-62706Optimize KtSourceElement.findChild()KT-62513Do not add nullability annotations to the methods of local classesKT-61991K2: avoid redundant full body resolution for properties during implicit type phaseKT-61604[K/N] Bitcode dependency linking is slow for large compilationsKT-39054Optimize delegated properties which call get/set on the given KProperty instance on JVMKT-61635K2:getConstructorKeywordcall inPsiRawFirBuilder.toFirConstructorforces AST loadKT-57616K2: Consider optimizing reversed versions of persistent lists in FirTowerDataContext
Fixes
KT-63257K2: FIR2IR inserts incorrect implicit cast for smartcasted variableKT-61459K2: type parameters cannot be parameterized with type argumentsKT-61959K2: Type parameters from outer class leak to nested classKT-61384IrFakeOverrideBuilder incorrectly checks visibility for friend modulesKT-62032K2: Render flexible types as A..B instead of cryptic ft<A, B> in diagnostic messagesKT-59940K2: Disappeared ACTUAL_ANNOTATION_CONFLICTING_DEFAULT_ARGUMENT_VALUEKT-61243K2: Always use declaredMemberScope-s inFirConflictsHelpersinstead ofdeclarationsKT-59430K2: Missing CALLABLE_REFERENCE_RESOLUTION_AMBIGUITYKT-56683K2: No control flow analysis for top-level propertiesKT-62334K2: FIR should not generate delegated functions for methods from java interface with default implementationKT-59590JVM IR: NotImplementedError during rendering of conflicting JVM signatures diagnosticKT-62607K2: "Overload resolution ambiguity between candidates"KT-55096K2: false-positive smartcast after equals check with reassignment in RHS of ==KT-62590Split expect/actual matcher-checker machinery in two separate components: matcher and checkerKT-62120K2: "NoSuchMethodError: java.lang.String" at runtime on class delegating to Java typeKT-62916K2: False positive INCOMPATIBLE_MATCHINGKT-62752expect-actual matcher/checker: return type must be "checking" incompatibilityKT-62137Compiler fails on null tracking (inference) for safe callKT-59744K2: false negative VAL_REASSIGNMENT in case of reassignment inside custom setterKT-58531K2: "Property must be initialized" compile errorKT-62404K2 Scripting for gradle: unresolved name errors on implicit importsKT-62305K2: Missing Fir metadata serialization support for scriptsKT-62197K2 and Apache Commons's MutableLong: Overload resolution ambiguity between candidatesKT-53551suspend functional type with context receiver causes ClassCastExceptionKT-61491K2 AA: Multiple FIR declarations for the same delegated propertyKT-55965K2: NPE via usage of functions that return Nothing but have no return expressionsKT-60942K2: Transitive dependency IR is not deserialized correctlyKT-55319K2: False negative NON_LOCAL_RETURN_NOT_ALLOWED for non-local returns exampleKT-62151K2. overload resolution ambiguity for calls of Java record compact constructorsKT-62944K2: Symbols with context receiver shouldn't be rendered with line breakKT-62394K2: Synthetic property scope doesn't consider java classes in the hierarchyKT-60117K2: ISE “Cannot serialize error type: ERROR CLASS: Cannot infer variable type without initializer / getter / delegate” on compiling lateinit property without initializationKT-61039False positive ABSTRACT_MEMBER_NOT_IMPLEMENTED in K1 when expect actual super types scopes don't matchKT-60042K2: Introduced PRIMARY_CONSTRUCTOR_REQUIRED_FOR_DATA_CLASSKT-59402K2: Missing EXPANSIVE_INHERITANCE and EXPANSIVE_INHERITANCE_IN_JAVAKT-62467K2: Result type of elvis operator should be flexible if rhs is flexibleKT-62126KJS / K2: "InterpreterError: VALUE_PARAMETER" caused by reflection, delegation and languageVersion = 1.9KT-62679K2: drop ARGUMENTS_OF_ANNOTATIONS phaseKT-56615K2: False-negative USELESS_CAST after double smartcastKT-59820K2: Investigate the TODO in FirCastDiagnosticsHelpersKT-61100K2: wrong type for "value" parameter of java annotation constructorKT-62491K2. No'when' expression must be exhaustiveerror when Java sealed class inheritors are not listed inpermitsclauseKT-60095K2: Introduced INCOMPATIBLE_TYPESKT-61598K2: report IR_WITH_UNSTABLE_ABI_COMPILED_CLASSKT-59561K2/MPP reports INCOMPATIBLE_MATCHING when an actual annotation declaration with vararg property is typealias with@SuppressKT-60123K2: PROPERTY_WITH_NO_TYPE_NO_INITIALIZER isn't working in IDE for lateinit property without a typeKT-59935K2: Disappeared PROPERTY_WITH_NO_TYPE_NO_INITIALIZERKT-58455K2(LT). Internal compiler error "UninitializedPropertyAccessException: lateinit property identifier has not been initialized" on missing type parameter in "where" constraintKT-60714K2: Implement resolve to private members from Evaluator in K2KT-59577K2. Enum constant name is not specified in error textKT-60003K2: Disappeared INVALID_CHARACTERS_NATIVE_ERRORKT-62099K2: "Type arguments should be specified for an outer class" error about typealiasKT-60983K2: "Argument type mismatch: actual type is android/view/View.OnApplyWindowInsetsListener but androidx/core/view/OnApplyWindowInsetsListener? was expected"KT-60111K2: Location regressions for operatorsKT-59399K2: Missing JSCODE_NO_JAVASCRIPT_PRODUCEDKT-59388K2: Missing JSCODE_ERRORKT-59435K2: Missing JSCODE_ARGUMENT_SHOULD_BE_CONSTANTKT-60601K2 / Maven: Overload resolution ambiguity between candidates inline methodKT-60778K2: implement MISSING_DEPENDENCY_CLASS(_SUPERCLASS) errorsKT-62581K2: Difference inkindflag in metadataKT-59956K2: Disappeared INAPPLICABLE_OPERATOR_MODIFIERKT-35913Diagnostic error VAL_REASSIGNMENT is not reported multiple timesKT-60059K2: Introduced VAL_REASSIGNMENTKT-59945K2: Disappeared ANONYMOUS_FUNCTION_WITH_NAMEKT-62573K2: incorrect parsing behavior with named functions as expressionsKT-56629K2: an instance of USELESS_CAST was not moved under EnableDfaWarningsInK2 language featureKT-58034Inconsistent resolve for nested objects in presence of a companion object property with the same nameKT-59864K2: Bad locations with delegatesKT-59584K2: Bad startOffset for 'this'KT-61388K2: ISE "Annotations are resolved twice" from CompilerRequiredAnnotationsComputationSession on nested annotationKT-62027"java.lang.IndexOutOfBoundsException: Empty list doesn't contain element at index 0" caused by ClassicExpectActualMatchingContext.kt when annotation@AllowDifferentMembersInActualusedKT-61055K2: Investigate if usage oftoResolvedCallableSymbolis correct at FirDataFlowAnalyzer#processConditionalContractKT-61688K2: FIR renderings of type annotations leak through the diagnostics' messagesKT-61794FIR: MergePostponedLambdaExitsNode.flow remains uninitialized after resolveKT-61068Bounds of type parameters are not enforced during inheritance of inner classes with generic outer classesKT-61065K2:@Suppressannotation is ignored inside preconditions of when-clausesKT-61937K2: implicit script receiver from ScriptDefinition are not visible for invokeKT-61076K2: false-positive conflicting overloads error on suspending function and private Java method from a supertypeKT-61075K2: type inference for delegate expressions with complexly bounded type variables fails on properties with annotated accessorsKT-58579K2: false-positive new inference error on invoking a generic function on Java wildcard type bounded by raw-typed Java inner classKT-62671K2: fir2ir generates a duplicate of delegated function for class from a common moduleKT-60682K2: Disappeared DEPRECATIONKT-62143Error: Identity equality for arguments of types 'kotlin/Int?' and 'kotlin/Nothing?' is prohibitedKT-61517K2: FirModuleDescriptor should correctly provide dependencies from FirModuleDataKT-62578K2:@NoInferannotation doesn't work for deserialized functionsKT-59916K2: Disappeared REPEATED_ANNOTATIONKT-62450K2: Disappeared OPT_IN_USAGE_ERROR for a data class property during the destructuring declarationKT-59997K2: Disappeared OPT_IN_USAGE_ERRORKT-62393K2: FIR doesn't count visibility when creating synthetic property overrideKT-61208EnumEntries mappings are generated incorrectly in the face of incremental compilationKT-61786K2: Remove type enhancement on java final fieldsKT-57811K2: make java static string and int fields not nullKT-62531InvalidProtocolBufferException on reading module metadata compiled by K2 from compilers earlier than 1.8.20 with -Xskip-metadata-version-checkKT-59371K2: Missing MISSING_DEPENDENCY_CLASSKT-61511IrFakeOverride builder: objc overridability condition is not supportedKT-62316K2: CONFLICTING_INHERITED_JVM_DECLARATIONS on List subclass inheriting remove/removeAt from Java superclassKT-60671KMP: check other annotation targets in expect and actual annotations compatibility checkerKT-62451K2: Disappeared OPT_IN_USAGE_ERROR for typealiasKT-62452K2: Violation of OPT_IN_USAGE_ERROR non-propagating opt-in rules for typealiasKT-59927K2: Disappeared INVISIBLE_REFERENCEKT-60104K2: Introduced FUNCTION_CALL_EXPECTEDKT-57513K2: Bound smart casts don't work with StringsKT-62146K2:@Suppressdoes not work with named argumentKT-62475K2: IrExternalModuleFragments contains incorrect data in Fir2IrKT-61983K2: *fir.kt.txt dump uses different naming approach for local varsKT-59970K2: Disappeared NULLABLE_TYPE_IN_CLASS_LITERAL_LHSKT-58216K2 (2.0): when is not checked for exhaustiveness with Java sealed classKT-62036KMP: consider prohibitingactual fake-overridewhen the correspondingexpect classhas default argumentsKT-61205Compose Compiler K2/ios: No file for /App|App(){}[0] when running linkPodDebugFrameworkIosX64KT-58240Support running irText compiler tests against the Native backendKT-59565K2. Internal error "IndexOutOfBoundsException: Index -1 out of bounds for length 0" on incorrect usage of annotation in type parameterKT-59393K2: Missing TYPE_ARGUMENTS_FOR_OUTER_CLASS_WHEN_NESTED_REFERENCEDKT-59954K2: Disappeared REPEATED_MODIFIERKT-62127"NoSuchFieldError: TRUE$delegate" on referencing companion's variable in submoduleKT-57100K2 does not report Conflicting overloads and backend crashes with Exception during IR lowering on conflict overloading with suspend functionKT-62129K2: Verification error on calling an extension from an env with 2+ context receiversKT-59955K2: Disappeared INCOMPATIBLE_MODIFIERSKT-61572[K2/N] Missing diagnostic SUPER_CALL_WITH_DEFAULT_PARAMETERS in test for MPP supercall with default paramsKT-59514K2: New inference error with jspecify and Java interopKT-62263Turn "different expect/actual members" error into a warningKT-62262[K2/N] tests/samples/uikit compilation fails with NPE in checkCanGenerateOverrideInitKT-52213Context receivers: "No mapping for symbol: VALUE_PARAMETER" caused by contextual suspending function type with receiverKT-62114K2: Unresolved reference for smart cast insidewhen(but notif)KT-59373K2: Missing INVISIBLE_MEMBERKT-61844K2: "Expression * of type * cannot be invoked as a function" caused by private propertyKT-60581K2 fails with New inference error for assertThat under strange circumstancesKT-61735[FIR] Assignment to val with flexible type dispatch receiver causes crashKT-59942K2: Disappeared ANNOTATION_PARAMETER_DEFAULT_VALUE_MUST_BE_CONSTANTKT-62058K2: use PRE_RELEASE flag until 2.0-RCKT-59931K2: Disappeared CLASS_LITERAL_LHS_NOT_A_CLASSKT-59377K2: Missing CALL_TO_JS_MODULE_WITHOUT_MODULE_SYSTEMKT-61645K2/KMP: Set stdlib-native before stdlib-commonMain in dependencies for shared native metadata compilationKT-61974K2: "ClassCastException: class cannot be cast to class java.lang.Void" in testKT-61637K2: Store all IR declarations inside Fir2IrDeclarationStorageKT-61924Native: problem with abstract fake override from AnyKT-60921K2: IndexOutOfBoundsException on attempt to cast an element to inner class with type parameterKT-61933K2: "Argument type mismatch: actual type is 'Foo<kotlin/Function0<kotlin/Unit>>' but 'Foo<kotlin/coroutines/SuspendFunction0<kotlin/Unit>>' was expected"KT-59429K2: Missing ABBREVIATED_NOTHING_RETURN_TYPEKT-59420K2: Missing ABBREVIATED_NOTHING_PROPERTY_TYPEKT-59965K2: Disappeared CANNOT_ALL_UNDER_IMPORT_FROM_SINGLETONKT-61732K2: Analysis API: resolve ambiguities in kotlin projectKT-60499K2: Order of synthetic fields is different from K1's orderKT-61773K2 Native: support reporting PRE_RELEASE_CLASSKT-61578[FIR] Resolution to private companion objects does not produceINVISIBLE_REFERENCEdiagnosticKT-62031K2: Render k2-specific flexible types in a more compact way in diagnostic messagesKT-62030K2: Render dot-separated FQNs instead of slash-separated ones in diagnosticsKT-59950K2: Disappeared ILLEGAL_ESCAPEKT-61827K2: Fix rendering ofNO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASSmessageKT-61386IrFakeOverrideBuilder: wrong dispatch receiver typeKT-59907K2: Disappeared RETURN_TYPE_MISMATCHKT-62056K2: Drop FIR_COMPILED_CLASS error in K1KT-61824K2: Don't render internal compiler type annotations in diagnostic messagesKT-61826K2: Fix rendering of SUSPENSION_POINT_INSIDE_CRITICAL_SECTION messageKT-57858@PlatformDependentannotation should be considered in JS and NativeKT-61876K2: FirCommonSessionFactory does not register visibility checker for a library sessionKT-60264K2: while loop body block sometimes replaced with single expressionKT-58542K2: Store abbreviated types in deserialized declarations as attributes for renderingKT-62008K2: Java getter function may be enhanced twiceKT-61921K2: Check for false positive/negative diagnostics caused by wrong handling of typealiasesKT-41997False positive "Value class cannot have properties with backing fields" inside expect classKT-62017K2: ISE "No real overrides for FUN FAKE_OVERRIDE" on calling package-private Java method through anonymous objectKT-58247Incorrect inference of nullable types inside OptionalKT-61309K2: Only named arguments are available for Java annotationsKT-61366IrFakeOverrideBuilder ignores package-private visibilityKT-59899K2: Disappeared EXPECTED_DECLARATION_WITH_BODYKT-59980K2: Disappeared EXPECTED_ENUM_CONSTRUCTORKT-59982K2: Disappeared EXPECTED_CLASS_CONSTRUCTOR_PROPERTY_PARAMETERKT-61499K2: False positive "Const 'val' initializer should be a constant value" when using typealiasKT-62005K2: No conflicting declarations error for constructors of nested classes and member functionsKT-61972K2: FIR2IR crashes on converting data classes in MPP setupKT-60105K2: Introduced UNDERSCORE_USAGE_WITHOUT_BACKTICKSKT-61443K2: Return typeId -1 during JS compilationKT-60075K2: Introduced ACTUAL_WITHOUT_EXPECTKT-61668Put expect/actual diagnostics introduced in 1.9.20 release under 1.9 Language VersionKT-61751IrFakeOverrideBuilder: keep flexible type annotations when remapping/substituting typesKT-61778K2: Overload resolution ambiguity between expect and non-expect in native buildKT-61367K2: Introduce OptIn for FirExpression.coneTypeOrNullKT-61802K2: infinite recursion in constant evaluator causing StackOverflowErrorKT-60043K2: Introduced PROPERTY_AS_OPERATORKT-61691K2: This annotation is not applicable to target 'local variable'KT-59915K2: Disappeared TOO_MANY_ARGUMENTSKT-59925K2: Disappeared VIRTUAL_MEMBER_HIDDENKT-61173K2: FirProperty.hasBackingField is true for an expect valKT-61696K2: Cannot override method of interface if superclass has package-protected method with same signatureKT-59370K2: Missing JS_NAME_CLASHKT-36056[FIR] Fix implementation of try/catch/finally in DFAKT-61719K2. Invisible reference is shown for whole type reference instead of single name referenceKT-60248K2: Type abbreviations are not stored in IRKT-59251KMP/JS: forbid matching actual callable with dynamic return type to expect callable with non-dynamic return typeKT-61510K2: internal declarations are invisible in cyclically dependent modulesKT-60048K2: Introduced MISSING_EXCEPTION_IN_THROWS_ON_SUSPENDKT-59425K2: Missing JS_FAKE_NAME_CLASHKT-61060K2: Rewrite delegate inferenceKT-59529K2: "property delegate must have" caused by class hierarchyKT-55471K2. Unresolved reference for nested type is shown instead of outer classKT-58896K2: Higher priority expect overload candidates in common code lose in overload resolution to non-expectsKT-58476Context receivers: "No mapping for symbol: VALUE_PARAMETER" with context-receiver inside suspended lambda calling another suspended functionKT-60780K2: missing PRE_RELEASE_CLASSKT-59855K2: Replace FirExpression.typeRef with coneTypeKT-59391K2: Missing JS_BUILTIN_NAME_CLASHKT-59392K2: Missing NAME_CONTAINS_ILLEGAL_CHARSKT-59110K2. "NotImplementedError: An operation is not implemented." error on incorrect@TargetannotationKT-53565K2: no WRONG_ANNOTATION_TARGET on when subjectKT-54568K2: Type variables leak into implicititparameter of lambdasKT-60892K2: Implement diagnostics around@OptionalExpectationKT-61029K2: Duplicates when processing direct overridden callablesKT-60917K2: "Unresolved reference" for operator for array valueKT-59367K2: Missing MIXING_SUSPEND_AND_NON_SUSPEND_SUPERTYPESKT-60268K2: lazy annotation classes have wrong modalityKT-61129K2: Implement error suppression warningKT-60536K2: FIR2IR Crash when resolving to companion of internal class with Suppress("INVISIBLE_REFERENCE")KT-55196K2: False-negative CONST_VAL_WITH_NON_CONST_INITIALIZER on boolean .not() callKT-60292K2: annotations on local delegated properties are lostKT-59418K2: Missing DUPLICATE_PARAMETER_NAME_IN_FUNCTION_TYPEKT-59422K2: Missing NON_SOURCE_ANNOTATION_ON_INLINED_LAMBDA_EXPRESSIONKT-57963K2: MPP: Annotation calls should be actualizedKT-61407K2: java.lang.IllegalArgumentException: Stability for initialized variable always should be computableKT-59186K2: False negative CONFLICTING_OVERLOADS in nested functionsKT-54390K2: ClassId for local classes do not match with specificationKT-61277K2: Expand the MIXING_SUSPEND_AND_NON_SUSPEND_SUPERTYPES check to other function kindsKT-61548Compiler crashes with StackOverflowError when mapping typesKT-56757DropIGNORE_BACKEND_K2_LIGHT_TREEdirectiveKT-61330K2: No BinarySourceElement for system librariesKT-61166Inherited platform declaration clash & accidental overrideKT-58764[K2] MakeFirResolvedDeclarationStatus.modalitynot nullableKT-61576[FIR] Private type alias for public class constructor is always visibleKT-60531K2/JS: Report diagnostics before running FIR2IRKT-59900K2: Disappeared NESTED_CLASS_NOT_ALLOWEDKT-59344K2: implement deprecation warnings from KT-53153KT-61067K2. NoAssignments are not expressionsKT-61144FIR2IR: Fix field access for class context receiver from debugger evaluator in K2KT-59914K2: Disappeared RETURN_NOT_ALLOWEDKT-60136Wrong IR is generated for spread call in annotation call when annotation has a vararg parameterKT-56872K2: not all reassignments, operator assignments, increments, decrements are tracked in DFA for try/catch expressionsKT-60397K2/MPP: don't perform enhancement twice when Java method is called from different modulesKT-61640K2: Share declarations from JvmMappedScope between sessions in MPP scenarioKT-59051"ISE: IrSimpleFunctionSymbolImpl is already bound" when implementing multiple interfaces by delegation where one of them overrides equals/hashCodeKT-60380K2: IAE: class org.jetbrains.kotlin.psi.KtLambdaArgument is not a subtype of class org.jetbrains.kotlin.psi.KtExpression for factory TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEMKT-60795K2: missing INCOMPATIBLE_CLASS and corresponding CLI errorKT-59650K2: Get rid ofFirNoReceiverExpressionKT-60555K2. FirJavaClass source field is nullKT-61045K2: Missing return from DELEGATED_PROPERTY_ACCESSOR setterKT-60636KMP: K2 handling of actual typealiases to nullable typesKT-59815K2: Avoid recomputingargumentVariablesKT-61409Kotlin/Native: crash in kmm-production-sample (compose-app) with escape analysis enabledKT-61348K2: Refactor FIR2IR declaration storagesKT-61249Move fir-related code from backend.native moduleKT-59478K2: StackOverflowError on invalid code with nullable unresolvedKT-59893K2: Disappeared WRONG_NUMBER_OF_TYPE_ARGUMENTSKT-60450K2: IOOBE from analyzeAndGetLambdaReturnArgumentsKT-61442K2: Consider stricter filtering on implicit integer coercionKT-61441K2: Wrong overload is chosen with ImplicitIntegerCoercion enabledKT-57076K2 does not report 'More than one overridden descriptor declares a default value'KT-55672K2. Operator name message instead of "Unresolved reference" when operator isn't defined for typeKT-60252K2: Supertype argument is not substituted in fake override receivers and value parametersKT-60687K2: Introduced UNEXPECTED_SAFE_CALLKT-59664Inline modifier can be added to a constructor parameter, but it does not have any effectKT-61312K2: Remove FirExpression.typeRef completely when Compose was migratedKT-60602Fix scripting tests in 2.0 branchKT-60771K2: "Conflicting declarations". Unable to re-declare variable if the first one comes from a destructured elementKT-60760K2: Every FirFunctionCall has an implicit type reference which points to the return type declarationKT-59944K2: Disappeared NON_MEMBER_FUNCTION_NO_BODYKT-60936KMP: check annotations compatibility on members inside expect and actual class scopesKT-60668KMP: check expect and actual annotations match when actual method is fake overrideKT-60250K2: origin is set too many times for elvis operatorKT-60254K2: Extra unset type argument on Java field referenceKT-60245K2: Extra return is generated in always throwing functionKT-59407K2: Missing MISSING_CONSTRUCTOR_KEYWORDKT-57681Request review for all FIR diagnostic messagesKT-57738K2: unresolved class fields and methods in kotlin scriptsKT-60885K2: FixtestSelfUpperBoundInferencetest in LV 2.0 branchKT-59957K2: Missing UNSUPPORTED_SEALED_FUN_INTERFACEKT-60000K2: Missing UNSUPPORTED_INHERITANCE_FROM_JAVA_MEMBER_REFERENCING_KOTLIN_FUNCTIONKT-60886K2: FixtestDirectoryWithRelativePathin LV 2.0 branchKT-60002K2: Missing UNSUPPORTED_SUSPEND_TESTKT-59419K2: Missing MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES_WHEN_NO_EXPLICIT_OVERRIDEKT-60297K2: finally block is not coerced to unitKT-59416K2: Missing EXTERNAL_INTERFACE_AS_REIFIED_TYPE_ARGUMENTKT-59417K2: Missing CALL_FROM_UMD_MUST_BE_JS_MODULE_AND_JS_NON_MODULEKT-59381K2: Missing CALL_TO_JS_NON_MODULE_WITH_MODULE_SYSTEMKT-59384K2: Missing DYNAMIC_NOT_ALLOWEDKT-59406K2: Missing PROPERTY_DELEGATION_BY_DYNAMICKT-57223K2: false-negative INAPPLICABLE_JVM_NAME on non-final properties outside interfacesKT-59413K2: Missing VALUE_CLASS_CANNOT_HAVE_CONTEXT_RECEIVERSKT-59387K2: Missing NO_CONSTRUCTORKT-57803K2. "Kotlin: Only the Kotlin standard library is allowed to use the 'kotlin' package" error missing in 2.0
IDE
Fixes
KT-62777K2 IDE: False positive MISSING_DEPENDENCY_SUPERCLASS for built-ins in non-JVM modulesKT-61195UAST modeling of implicititis inconsistent forEnum.entriesKT-62757SLC: incorrect nullability annotation on aliased typeKT-60318K2: disable SLC for non-JVM platformsKT-62440On the fly resolve with light method context doesn't resolve method type parametersKT-50241Make Symbol Light Classes consistent with Ultra Light ClassesKT-56546LL FIR: fix lazy resolve contract violation in Symbol Light ClassesKT-57550K2: AA: incorrect constant value in file-level annotationKT-61460SLC: unnecessary upper bound wildcards (w/ type alias)KT-61377K2: SLC: wrong retention counterpart for AnnotationRetention.BINARYKT-60603K2: Investigate intellij tests failures in branch 2.0KT-60590Fix light classes related tests in branch 2.0
IDE. Gradle Integration
KT-45775Improve quality of Import
IDE. Multiplatform
KT-63007K2: Analysis API Standalone: klibs are not resovled from common codeKT-61520Sources.jar is not imported for common and intermediate source-sets from the MPP library
IDE. Script
KT-60418K2 scripting: highlighting sometimes failsKT-60987K2: Analysis API: make build.gradle.kts resolution work on build scripts from kotlin projects
IR. Actualizer
KT-62623K2: Ir actualizer leaves inconsistent module links from files
IR. Tree
KT-61934Decouple building fake overrides from symbol table and build schedulingKT-60923IR: Mark IrSymbol.owner with OptIn
JavaScript
KT-61795KJS: Incremental Cache is not invalidated ifuseEsClassescompiler argument was changedKT-62425K/JS: Implement K2 and K1 diagnostics for checking argument passing to js()KT-58685KJS: "IllegalStateException: Not locked" cused by "unlock" called twiceKT-56818KJS: "TypeError: Class constructor * cannot be invoked without 'new'" when extending external classKT-61710K/JS: Implement JS_NAME_CLASH check for top level declarationsKT-61886K/JS: Prepare K/JS tests for JS IR BE diagnosticsKT-60829Fix JS Incremental tests in 2.0 branchKT-60785KJS: Destructured value class in suspend function fails with Uncaught TypeError: can't convert to primitive type errorKT-60635K/JS: Class internal methods may clash with child methods from other module that have the same nameKT-60846FixIncrementalJsKlibCompilerWithScopeExpansionRunnerTestGeneratedtest in 2.0 branch
KMM Plugin
KT-60169Generate gradle version catalog in KMM AS pluginKT-59269Update wizards in KMM AS plugin after 1.9.0 release
Klibs
KT-61767[K/N] Header klibs should keep private underlying properties of value classesKT-60807[klib] Add an option to write out header klibsKT-61097[PL] Don't create an executable if there were errors in PL
Language Design
KT-58921K1/K2: difference in Enum.values resolve priorityKT-61573Emit the compilation warning on expect/actual classes. The warning must mention that expect/actual classes are in BetaKT-62138K1: false positive (?) NO_SET_METHOD for += resolved as a combination of Map.get and plusKT-22841Prohibit different member scopes for non-final expect and its actual
Libraries
KT-62785Drop unnecessary suppresses in stdlib after bootstrap updateKT-58588Optimizations for sequence functions distinct, flattenKT-62004Drop legacy JS compilations of stdlib and kotlin-testKT-61614WASM: Enum hashCode is not final
Native
KT-61642[K/N] Serialize full IdSignatures to cachesKT-62803Konanc has print statement "Produced library API in..." that should be deleted or properly logged at INFO levelKT-61248[K/N] Extract native manglers out ofbackend.nativemodule
Native. Runtime. Memory
KT-57773Kotlin/Native: track memory in big chunks in the GC schedulerKT-61093Kotlin/Native: enable concurrent weak processing by default
Native. Stdlib
KT-60514Add llvm filecheck tests for atomic intrinsics
Native. Testing
KT-62157Native: Migrate FileCheck tests to new native test infra
Reflection
KT-60984K2: java.lang.ClassNotFoundException: kotlin.Array in runtime with Spring Boot testKT-60709Reflection: Not recognized bound receiver in case of 'equals' always returning trueKT-61304Reflection: Calling data classcopymethod via reflection (callBy) fails when the data class has exactly 64 fields
Tools. CLI
KT-62644Don't enable in progressive mode bug-fix features without target versionKT-62350CLI: no color output on Apple silicon MacsKT-61156K2: do not try to run compilation if there were errors during calculation of Java module graphKT-48026Add the compiler X-flag to enable self upper bound type inference
Tools. Compiler Plugin API
KT-61872K2: Adding annotations to metadata from backend plugin doesn't work in the presence of comments on annotated declaration
Tools. Compiler Plugins
KT-60849jvm-abi-gen: do not treat hasConstant property flag as a part of ABI for non-const propertiesKT-53926K2. Don't check serializable properties from supertypes
Tools. Compiler plugins. Serialization
KT-62215Serialization / Native: "IllegalArgumentException: No container found for type parameter" caused by serializing generic classes with a field that uses genericsKT-62522K2 + kotlinx.serialization + Native: NPE when generic base class has inheritor in other module
Tools. Gradle
New Features
Performance Improvements
KT-62318Android Studio sync memory leak in 1.9.20-Beta
Fixes
KT-62650Gradle: Return the usage ofkotlin-compiler-embeddablebackKT-61295KotlinTestReportcapturesProject.buildDirtoo earlyKT-62987Add tests for statistics plugin in Aggregate buildKT-62964Build Gradle plugin against Gradle 8.4 APIKT-61896Gradle: compilation via build tools API doesn't perform Gradle side output backupsKT-61918Removal of an associated compilation from a build script doesn't lead to full recompilationKT-59826Update SimpleKotlinGradleIT#testProjectIsolation to run on Gradle 8KT-61401The reported language version value for KotlinNativeLink tasks in build reports and build scans is inaccurateKT-62024K/Wasm: Binaryen modifying compiler outputKT-61950K/Wasm: Add warning about changed sourceSetsKT-61895KotlinTopLevelExtension.useCompilerVersion is not marked as experimentalKT-56574Implement a prototype of Kotlin JVM compilation pipeline via the build tools APIKT-61206Build system classes may leak into the Build Tools API classloaderKT-61737GradleStyleMessageRenderer.render misses a space between the file and the message whenlocationis (line:column = 0:0)KT-61457Kotlin Gradle Plugin should not use internal deprecated StartParameterInternal.isConfigurationCache
Tools. Gradle. JS
KT-41382NI / KJS / Gradle: TYPE_MISMATCH caused by compilations.getting delegateKT-53077KJS / Gradle: Remove redundant gradle js log on kotlin buildKT-61992KJS / Gradle: KotlinJsTest using KotlinMocha should not show output, and should not run a dry-run every time.KT-56300KJS / Gradle: plugin should not add repositories unconditionallyKT-55620KJS / Gradle: plugin doesn't support repositoriesModeKT-56465MPP: Import with npm dependency fails with "UninitializedPropertyAccessException: lateinit property fileHasher has not been initialized" if there is no selected JavaScript environment for JS targetKT-41578Kotlin/JS: contiuous mode: changes in static resources do not reload browser page
Tools. Gradle. Kapt
KT-22261Annotation Processor - in gradle, kapt configuration is missing extendsFromKT-62518kapt processing is skipped when all annotation processors are indirect dependencies
Tools. Gradle. Multiplatform
KT-62601AS/IntelliJ exception after updating a KMP project with a macos target to Kotlin 1.9.20-RCKT-60734Handle the migration from ios shortcut and source set withgettingKT-59042"Cannot build 'KotlinProjectStructureMetadata' during project configuration phase" when configuration cache enabledKT-62029Kotlin 1.9.20-Beta fails to detect some transitive dependency references in JVM+Android source setKT-61652MPP ConcurrentModificationException on transformCommonMainDependenciesMetadataKT-61622Upgrading to Kotlin 1.9 prevents commonMain sourceset classes from being processed by kapt/ksp (dagger/Hilt)KT-61540K2: KMP/K2: Metadata compilations: Discriminate expect over actual by sorting compile path using refines edgesKT-590201.9.0 Beta Kotlin plugin Gradle sync fails with intermediate JVM + Android source setKT-60860K2: FixKotlinNativeCompileArgumentsTestin 2.0 branchKT-61463KMP: Remove unused 'kpm' code
Tools. Gradle. Native
KT-51553Migrate all Kotlin Gradle plugin/Native tests to new test DSL and add CI configuration to run themKT-61657KonanTarget should implement equals or custom serializationKT-62907Turn on downloading Kotlin Native from maven by defaultKT-61700Native: linkDebugExecutableNative has duplicated freeCompilerArgs
Tools. Incremental Compile
KT-61865Add support for incremental compilation within the in-process execution strategy in the build tools apiKT-61590K2/KMP: Expect actual matching is breaking on the incremental compilationKT-60831Fix IncrementalMultiplatformJvmCompilerRunnerTestGenerated in 2.0 branch
Tools. JPS
KT-60737Investigate/fix JPS-related tests in 2.0 migration branch
Tools. Kapt
KT-60507Kapt: "IllegalAccessError: superclass access check failed" using java 21 toolchainKT-62438Change experimental K2 kapt diagnostic messageKT-61916K2 KAPT. Kapt doesn't generate fully qualified names for annotations used as arguments to other annotationsKT-61879K2 Kapt: java.lang.NoSuchMethodError during stub generationKT-61729K2: KAPT 4: Compiler crash during compilation of Sphinx for AndroidKT-61333K2 Kapt: support REPORT_OUTPUT_FILES compiler modeKT-61761Kapt4ToolIntegrationTestGenerated should not use Kapt3ComponentRegistrar
Tools. Maven
KT-54868Stop publishingkotlin-archetype-jsKT-26156Maven Kotlin Plugin should not WARN when no sources foundKT-60859K2: Fix mavenIncrementalCompilationITtests in 2.0 branch
Tools. Parcelize
KT-57685Support ImmutableCollections in Parcelize plugin
Tools. Scripts
KT-62400K2: Missing annotation resolving for scriptsKT-61727Scripts: Maven artifacts resolution is slow
Tools. Wasm
KT-61973K/Wasm: wasmWasiNodeRun is missedKT-61971K/Wasm: wasmWasiTest should depends on kotlinNodeJsSetup
Checksums
| File | Sha256 |
|---|---|
| kotlin-compiler-2.0.0-Beta1.zip | 4cf6bea0d20463416936a5619293fa1c5931ab649496fe7045c12eedcf4136bd |
| kotlin-native-linux-x86_64-2.0.0-Beta1.tar.gz | 4c0be3089394c977fdeb37a4a4722d06693d288bddec57128db2ee05fdb81212 |
| kotlin-native-macos-x86_64-2.0.0-Beta1.tar.gz | 3a67f1f751230de624a6d39ebcbea3e0034c813b060f9be609aac9966f1d2523 |
| kotlin-native-macos-aarch64-2.0.0-Beta1.tar.gz | 55d4ea61bb4b63649f3ebaf6d34185f55260e36fa6451dd398a6471e19d308e1 |
| kotlin-native-windows-x86_64-2.0.0-Beta1.zip | 7500111aedabc123886f865e014e37a5989aa05ca080a39c8f19540f2e7b2280 |