Update kotlin monorepo to v2.3.0 #498
Open
+2
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
2.0.0->2.3.02.2.10->2.3.0Release Notes
JetBrains/kotlin (org.jetbrains.kotlin:kotlin-stdlib)
v2.3.0: Kotlin 2.3.0Changelog
Analysis API
KT-80082K2. False positive "Cannot resolve method" for self-bounded generic with wildcard return type in Java interopKT-80303Move:native:analysis-api-klib-readerto:libraries:toolsAnalysis API. Code Compilation
KT-70860K2 IDE / Kotlin Debugger: CCE “java.lang.String cannot be cast to java.lang.Void” on evaluating not-null variable on the line with assigning null to that varKT-78554K2 IDE / Kotlin Debugger: ISE “No override for FUN IR_EXTERNAL_DECLARATION_STUB” on calling toString() for local class instance during evaluationKT-73201K2 IDE: Error while evaluating expressions with local classesAnalysis API. FIR
KT-81378Expected expression 'FirFunctionCallImpl' to be resolved caused bysuspend {}KT-80473Add events for tracking LL activitiesKT-46375Analysis API: Support cross-file class redeclaration checks using indicesKT-80471Analysis API: Deduplicate equivalent call candidates inresolveToCallCandidatesKT-79653[Analysis API] ContextCollector: BODY context of enum classes doesn't contain enum entriesKT-75858K2 AA: False positive 'property must be initialized' on incremental analysis with 'field' usage and semicolon in setterKT-80231AnnotationArgumentsStateKeepers doesn't restore the initial annotation in some casesKT-80233Pull mutation out of AnnotationArgumentsStateKeepersKT-71466LLFirBuiltinsSessionFactoryusescreateCompositeSymbolProviderKT-76432JavaClassUseSiteMemberScope: Expected FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImplAnalysis API. Infrastructure
KT-80717Support IntelliJ Bazel build in the Kotlin Coop development modeAnalysis API. Light Classes
KT-80656Duplicate no-args constructor in PSIKT-60490Symbol Light Classes: Property accessors from a delegated interface don't present in the delegating classKT-79689SymbolLightClassForClassLike.toString() causes PSI tree loadingKT-80690Private interface functions are not present in light classesKT-80256K2: Certain actions in JPA code causes infinite PIEAE: "Element class CompositeElement of type REFERENCE_EXPRESSION (class KtNameReferenceExpressionElementType)"KT-79012Add a high-level overview of light classesAnalysis API. Providers and Caches
Fixes
KT-81476Analysis API:AlreadyDisposedExceptionfrom low-memory cache cleanupKT-80911Analysis API: Execute session invalidation in a non-cancelable sectionKT-81242Analysis API: Add UUID/lifetime properties to LL FIR session structure loggingKT-80622Analysis API: Visualise LL FIR session structure & weightKT-80904Analysis API: "Invalid dangling file module" exception during session invalidationKT-78882K2 AA: Calling containingSymbol on getProgressionLastElement causes exceptionKT-58325Analysis API: CombineLLKotlinStubBasedLibrarySymbolProviders in session dependencies (optimization)KT-77825Analysis API:CheckersComponentconsumes a lot of memory while being unused in LL FIR sessionsKT-76526Incorrect built-in module is provided for non-JVM sources in StandaloneKT-62549Analysis API: Cache callables in combined Kotlin symbol providersKT-70721LL FIR: investigate possibility of movingLLFirFirClassByPsiClassProvider . getClassByPsiClass (PsiClass)to symbol providersKT-72998Analysis API: IntroducegetClassLikeSymbolByPsito LL FIR symbol providersAnalysis API. Standalone
KT-81108AA: java.lang.ClassCastException: class org.jetbrains.kotlin.fir.FirBinaryDependenciesModuleData cannot be cast to class org.jetbrains.kotlin.analysis.low.level.api.fir.projectStructure.LLFirModuleDataKT-80573Potential performance issue on class ID computationKT-80559Try to optimize KotlinStandaloneDeclarationProviderFactory startup for testsKT-71706Analysis API Standalone:StandaloneProjectFactory.createSearchScopeByLibraryRootscreates inefficient file-based search scopesAnalysis API. Stubs and Decompilation
Performance Improvements
KT-77097SupportReplaceWithdeprecation annotation argument via stubsFixes
KT-80350Drop K1 decompilerKT-77082StackOverflowError in CreateFreshTypeVariableSubstitutorStage.shouldBeFlexibleKT-80798Improve stubs tests coverageKT-75318Read context parameter fields from metadata in CallableClsStubBuilderKT-77874AA disagrees with the compiler on descriptions of context parameters from binaries in messages for context argument ambiguity errorsKT-80276Implement native coping for stubsKT-79780Decompiled MultifileClass has Facade kindKT-79398isClsStubCompiledToJvmDefaultImplementation flag is inconsistent for compiled and decompiled stubsKT-79798Prettify stub usages in LL stub-based deserializerKT-78949AbstractLLStubBasedResolutionTest: tests against real stub-based filesKT-80251Inconsistent decompiled and compiled stub for properties with an initializer and a delegateKT-74547Implement decompiler for K2KT-79555Move KotlinFileStubImpl serialization/deserialization to the Analysis APIKT-79487"null DefinitelyNotNullType for 'T'" from decompilerKT-60764Stub Builder: fix differences between K1 and K2 stub building on decompiled filesKT-79484An empty enum class with a member decompiles with a synthetic errorKT-79730Decompiled files have an extraKtsuffixKT-79483data modifier is not present on object modifierKT-75398Local classes from scripts have ClassId in stubsKT-79412Context parameters with type annotations cause inconsistency errors while building stubsAnalysis API. Surface
New Features
KT-80084Provide endpoints for Analysis API to understand when the context sensitive resolution is usedKT-64340Analysis API: no way to get a type of vararg parameterKT-68387AA: provide context for type approximationsPerformance Improvements
KT-80713Optimize KaDeclarationSymbol#visibility for class-like symbolsKT-79097KaFirNamedFunctionSymbol#isSuspend shouldn't trigger resolutionKT-79095isOverride shouldn't trigger resolution if not compiler plugins presentFixes
KT-80234Incorrect value ofisActualfor the implicitlyactualconstructor of annotation classKT-81132Use KaSession instead of a particular KaSessionComponent for context parameter bridgesKT-81129K2: KaSymbolInformationProvider#importableFqName: should return null for dynamic declarationsKT-81128K2: KaSymbolInformationProvider#importableFqName: should return null for error destructuring declarationsKT-81127K2: KaSymbolInformationProvider#importableFqName: should return null for anonymous functionsKT-81126K2: KaSymbolInformationProvider#importableFqName: should return null for enum entry initializer constructorsKT-81125K2: KaSymbolInformationProvider#importableFqName: should return null for property accessorsKT-81124K2: KaSymbolInformationProvider#importableFqName: type alias constructor should have a reference to the type alias and not to the underlying classKT-70127Analysis API: 'KaFirReceiverParameterSymbol' does not implement 'KaFirSymbol'; leads to exception fromimportableFqNameKT-81123Reimplement KaFirSymbolInformationProvider#importableFqNameKT-81122Drop KaImportOptimizerKT-78093Add bridges for context parametersKT-79772Migrate from 'validityAsserted' to 'withValidityAssertion'KT-79328K2 AA, isUsedAsExpression: Unhandled Non-KtExpression parent of KtExpression: class org.jetbrains.kotlin.psi.KtImportDirectiveKT-80366IllegalStateException from KaFirStopWorldCacheCleanerKT-80274Merge AbstractMultiModuleSymbolByPsiTest to AbstractSymbolByPsiTestKT-80352KaBaseResolutionScope.contains(PsiElement) always returns false for Android light classes (e.g. synthetic R.java classes)KT-80178Incorrect modality for an abstract interface function with a redundantopenmodifierKT-79129[Analysis API]KaFe10TypeCreator.buildClassTypecannot build builtin types by class idsKT-79143AA:argumentMappingcontains an expression that is not an argumentKT-59857KaExpressionTypeProvider#returnType shouldn't throw an exception for class like declarationsKT-79667Enable resolve on java record components in standalone modeKT-73050KaFirSymbolRelationProvider#expectsForActual: suspicius logic for KaReceiverParameterSymbolKT-78904KaBaseWriteActionStartedChecker throws when no additional WA was doneKT-79281Add KDoc toKaTypePointer#restoreKT-78597KaUseSiteVisibilityChecker returns false for internal functions exposed via implicit receiverKT-71705FIR api impl: Postfix increment expression'sexpressionTypeis Unit when incrementing array elementKT-75057Analysis API: Reference to object through typealias in invoke operator call leads to original typeBackend. Native. Debug
KT-79848Flaky debugger tests in opt.debug/cache.*/GC.CMS/GC.sch.ad/alloc.custom configurationBackend. Wasm
New Features
KT-59032Support instantiation of annotation classes on WASMFixes
KT-76204K/Wasm: support generating a wasm module per kotlin module/klibKT-79357K/Wasm: store data for string literals in utf8 for Latin1KT-82075K/Wasm: kotlin.wasm.internal.getSimpleName crashes on iOS Safari older than 26KT-79244[Wasm] Drop K1-specific tests, testrunners and test directivesKT-69621K/Wasm: Consider enabling support for KClass.qualifiedName by defaultKT-80397K/Wasm: turn on by default using a new version of the exception handling proposal for wasm-wasi targetKT-81372K/Wasm: JsException: Exception was thrown while running JavaScript code on Safari 18.2/18.3KT-80018K/Wasm: exceptions don't work properly in JavaScriptCore (vm inside Safari, WebKit)KT-66072K/Wasm: improve how exceptions work in JS interopKT-80106devServer in Kotlin/Wasm overwrites defaults, causing missing static pathsKT-80210Wasm: "Unexpected non-external class: kotlin.Nothing" caused by JsExport with JsPromiseKT-80555WASM IC: Can't link symbol on kotlinx.coroutines on fresh masterKT-80415WasmJs Number Elvis Operator CrashKT-76509WasmJS: ReferenceError: Temporal is not defined caused by "Redundant reference to unused external results"KT-79317[Wasm] Do not throw CCE for ExcludedFromCodegen declarationsKT-78036K/Wasm: generate a message with "expected" and "actual" types in case of CCECompiler
New Features
KT-80461K2: false positive NO_ELSE_IN_WHEN for complex sealed hierarchyKT-77676K/N: enable typechecks and the casts optimization pass in debug mode by defaultKT-79185Support local type aliasesKT-80837Warn about extension function with a context shadowed by memberKT-80768Warning on overloading by a superset of context parameters in class contextKT-80031Check spotbugs's@CheckReturnValuein Kotlin's unused return value checkerKT-79380Native: add performance measurement for the rest of backend phasesKT-79381Native: add performance measurement of LLVM phasesKT-80222Implement the prohibition of always-falseischecks for definitely incompatible typesKT-79295Parse and build raw FIR from new short and full forms of positional destructuring with square bracketsKT-74810Support typealiased/mapped Java types in unused return value checkerKT-71244Incorporate existing@CheckReturnValueannotation(s) into Kotlin's unused return value checkerKT-79922Record 'MustUse/ExplicitlyIgnorable' state for overrides even in disabled RVC modeKT-79920Store 'Explicitly ignorable' state of function/property in the metadataKT-79690Implement a USELESS_ELVIS_LEFT_IS_NULL with elvis expressionKT-79296Implement/adapt diagnostics for new destructuringKT-79298Report errors on new destructuring syntax in K1Performance Improvements
KT-81617Native: casts optimizations pass explodes on deep nested loopsKT-80554Kotlin/Native: investigate performance hit from always-on llvm pass profilingKT-81340K/N: severe compilation time degradation after turning on casts optimization passKT-80370Add NO_INLINE attribute to some of runtime functionsKT-80167K/N: condense the nodes and edges in DevirtualizationAnalysis constraint graphKT-79535Revert incorrect SAM conversion enhancements brought to K2Fixes
KT-79979K2: ClassCastException when overriding extension property with delegationKT-82590ClassCastException when instantiating class with generics implemented by fun interface and lambdaKT-78881K2: False positive "Assigned value is never read" in composable functionKT-79276Dexing fails with "Cannot read field X because is null" with 2.2.0KT-79547"UnsupportedOperationException: Not supported" with inlining and value classesKT-79442"Multiple annotations of type kotlin.coroutines.jvm.internal.DebugMetadata": 2.2.0-Beta1 generates broken code with JVM default suspend methods in interfacesKT-80744Kotlin failure on lambda with type parameterKT-81618"Number of arguments should not be less than number of parameters" on JVM on Kotlin 2.3.0-Beta1KT-82869Green-to-Red change in 2.3 after prioritizing non-suspend-function-type overloadsKT-79611"IllegalStateException: couldn't find inline method": Exception during incremental compilationKT-78895Consider dropping isLocalInFunction and FirClassLikeDeclaration.isLocalKT-82040Native: ClassCastException: PointerInputChangeKT-81924K2: "Cannot infer type for this parameter", "Overload resolution ambiguity between candidates"KT-80864K2: MissingVal cannot be reassigneddiagnostic for Java final fields (crashes in runtime withIllegalAccessError)KT-71420Report error when reified type parameter is inferred to intersection typeKT-79451Rework approach to recursive types approximationKT-78413Kotlin Debugger: value classes as context parameters have incorrect names in Variables View during debuggingKT-82138Debugger: Cannot evaluate JvmInline value class parameterKT-82381ArrayIndexOutOfBoundsException while FirDiagnosticsCompilerResultsReporter tries to print code as part of a warning logKT-81068Corrupted Unicode paths passed or used in the compilerKT-79783KDoc parser: Links aren't rendered if the line has an indent of 4 or moreKT-80549Call of Java method with type parameter bounds: Expected FirResolvedTypeRef with ConeKotlinType but was FirJavaTypeRefKT-82132False-positive type mismatch with -language-version 2.2KT-81988K2: Any?.toString() causes NPE inside lambda with JavaKT-81652Native: ClassCastException: ApplicationForegroundStateListener.CompanionKT-76479Backend. JVM: Report errors on exposure of types in inline functionsKT-82022K/N: Unexpected "Annotation@JvmInlineis missing on actual declaration" warning with value classesKT-80250ISE: flow for PostponedLambdaExitNode not initialized - traversing nodes in wrong order?KT-76344Drop language version 1.9 for non-JVM platformsKT-76343Drop language version 1.8KT-80330K2: NPE at org.jetbrains.kotlin.fir.resolve.calls.FirCallResolver.createResolvedNamedReferenceKT-80400K2: AbstractMethodError on fun interface implementation inheriting from an interface compiled with -jvm-default=disableKT-9111Improve diagnostic for call with access to outer class from nested classKT-78280Implement the sourcelessKtDiagnosticsKT-74999K2: KotlinNothingValueException within Extension FunctionKT-81254"AssertionError: There should be at least one non-stub type to compute common supertype": Parser issue during generic type inferenceKT-53237NI: Frontend ignores generic bound when inferring typesKT-81186Only allow local type aliases in REPL/scripts until full stabilizationKT-80929IC Native: Undefined symbols on ktorKT-81657K2: put warning about "exposing package-private in internal" under experimental language featureKT-81241Konanc exit while lowering org.jetbrains.kotlin.ir.util.IrUtilsKt.remapTypeParametersKT-74819K2: False-positive overload resolution ambiguity for flatMap inside PCLAKT-81547Stabilize DFA-based exhaustivenessKT-79274Frontend implementation of name-based destructuringKT-79506Contract for getter and setter doesn't work if a property is called from another moduleKT-58988K2: Deprecate exposing package-private parameter of internal methodKT-80711IC Native: NPE during link on ktorKT-77727Move some of the extra checkers to the default listKT-76136Switch latest stable version in Kotlin project to 2.3KT-81257Native: "Unexpected boolean predicate" when generating 'static_cache'KT-81525Report REDUNDANT_SPREAD_OPERATOR on (*) instead of argument expressionKT-81522Fix Light TreeSPREAD_OPERATORdiagnostic positioningKT-77008K2: Incorrectly force casting to a wrong typeKT-78127K2: Too precise inference for if/when with expected type in assignmentKT-80208K2: ClassCastException: "class java.util.ArrayList cannot be cast to class java.lang.Void" type inference picks Void for generic functionKT-75797Native: find a way to handle generates C bridges in inline functionsKT-78819K2: False positive ABSTRACT_MEMBER_NOT_IMPLEMENTED in KJK hierarchyKT-80003Kotlin/Native: deprecate eager GlobalData initializationKT-79231Inconsistent InnerClass entry flags for abstract inner enumKT-20677Improve diagnostic about implicit default constructor absence for expected annotation classKT-81385Missing error of nullable expression in class literal in case of reified type parameterKT-81251Smartcast doesn't work for an effectively private inline functionKT-81245Automatic smart cast on properties with EBF is allowed on inlined property accessorsKT-81222Custom getter is allowed on a property with redundant EBFKT-80795Wrong type cast is added for IMPLICIT_COERCION_TO_UNITKT-81141Fix FirUnsupportedArrayLiteralChecker to forbid array literals inside non-annotation contextsKT-81383Return type of anonymous function used asrunargument is incorrectly inferred toNothingKT-80577"Return type mismatch" for self-referential types used as generic parametersKT-75215KDoc: references from@paramtag are rendered as plain textKT-79887K2 Compiler Internal Error in 'FirFakeOverrideGenerator.checkStatusIsResolved' MethodKT-78125false-negative shadowed contextual overload warning on local declarationsKT-81198Move type and type parameter annotations from jvm_metadata.proto to metadata.protoKT-81057Wrong handling of boxing during redundant casts optimizationKT-81191K2: "null cannot be cast to non-null type ConeTypeParameterLookupTag" with invalid codeKT-80285IJ monorepo: broken compilation after 2.2.20-RC updateKT-81115Allow converting lambda with explicit parameter when assigning to variable of an extension function typeKT-74588Redundant checkNotNull intrinsics instructions for Java generic methodsKT-78390UnmuteFusStatisticsIT.testKotlinxPlugins()after AtomicFU updateskotlin-metadata-jvmKT-79369Forbid typealiasing for all compiler-required annotationsKT-69294K2: ReportCONSTRUCTOR_OR_SUPERTYPE_ON_TYPEALIAS_WITH_TYPE_PROJECTION_ERRORinstead ofEXPANDED_TYPE_CANNOT_BE_INHERITEDafter switching to LV 2.2KT-81064Wrong safe call null check handling during redundant casts optimizationKT-80871StackOverflowError on AnnotationTarget.TYPEKT-80908K2: Compiling type annotation with self-annotated vararg fail with exceptionKT-81018ISE "IR class for Foo not found" on missing dependency when lowering SAM constructorKT-80936NON_PUBLIC_CALL_FROM_PUBLIC_INLINE :@PublishedApidoesn't work for fun interfacesKT-75748StackOverflowError when reading array from metadata annotationsKT-80606KotlinIllegalArgumentExceptionWithAttachments when using property itself in explicit backing field initializationKT-80940K2: Exception in FIR2IR with AnnotationTarget.TYPE with self-annotated non-vararg default argument and usage in child moduleKT-80538KaFirDiagnostic.EmptyRange doesn't work in most of the casesKT-80524Class is not abstract and does not implement abstract member when compiling with kotlinc-jklibKT-80597Apply fix for CVE-2024-7254 to our fork of protobuf 2.6.1KT-80849K2:ConstValueProviderImpldoesn't distinguish files with same name and packageKT-80602Exhaustiveness checker improvements for 2.3KT-80735Support || return/throw shortcut in unsed return value checkerKT-79651Report a warning about an unused return value only on the function nameKT-80719False positive: "Redundant visibility modifier": when overriding protected methods as "public"KT-80434K2: DSL marker doesn't work with lambda fieldsKT-80383Getter without a body is allowed on a property with an explicit backing fieldKT-80446Explicit visibility modifiers are allowed on EBFKT-80378ClassCastException on callable reference to a property with EBFKT-80377Fir2Ir: "Cannot determine expected receiver type" for callable reference to a property with EBF outside of classKT-80455K2: StackOverflowError in when exhaustiveness checker on red codeKT-72862[Native caches] Umbrella for failing codegen/box tests for corner cases in synthetic accessorsKT-20278NO_TYPE_ARGUMENTS_ON_RHS: Confusing diagnostic for inner class of generic outer classKT-80418Property with EBF with functional type isn't resolved if its type is AnyKT-80469Functional type from property is always used for explicit backing fieldKT-80535Missing INITIALIZER_TYPE_MISMATCH for EBFKT-80445Private visibility is possible for a property with EBFKT-80164Move name generation for unnamed context parameters to frontendKT-80684Line breaks are lost in multi-line diagnostic messages since 2.3.0KT-78112RETURN_VALUE_NOT_USED is reported for local function even if it isn't marked with annotation in CHECKER modeKT-48311Incorrect LINENUMBER after if with a suspend callKT-80688Bad SourceDebugExtension caused by enhanced coroutines debuggingKT-73851Native: compilation fails with ClassCastException with genericSafeCasts=trueKT-77593Add a warning when@IgnorableReturnValueis inconsistent between expect/actual functionsKT-79386Confusing error message when named parameters are used for java method callsKT-80600K2: Private and final modifiers are allowed on setter of open delegated propertyKT-77101Invoke on callable reference is considered ignorableKT-79923Remove lookup of@IgnorableReturnValueannotation from FirReturnValueOverrideCheckerKT-80517Synthetic kotlin.Any members in data classes are missing@MustUseReturnValueKT-80194VAR_TYPE_MISMATCH_ON_OVERRIDE: doesn't mention the inferred typeKT-80484K2: ClassCastException due to fake source for implicit lambda parameter (RedundantNullableChecker)KT-80592UninitializedPropertyAccessExceptionwhen anayzing annotations on members of anonymous classesKT-80399Anonymous Kotlin class incorrectly warns about deprecated java override despite '@Deprecated' annotationKT-79610Adding CocoaPod to Kotlin/Native MPP triggers IR serialization failure and commonizer errorsKT-79951Infinite loop in parsing incomplete full form destructuringKT-79866kotlinc 2.2.0 silently emits 'NonExistentClass' instead of reporting an errorKT-79777Argument type mismatch on value of complex type with a captured raw type argumentKT-78664False positive VARIABLE_NEVER_READ and ASSIGNED_VALUE_IS_NEVER_READ on function type variable with splited declaration and assignmentKT-79496False positive "when must be exhaustive" in triangle interface/class hierarchyKT-79774KtDestructuringDeclaration.getLPar & getRPar are brokenKT-80391K2: Only one context parameter is mentioned in the [NO_CONTEXT_ARGUMENT] diagnosticKT-79785ktypew:kotlin.collections.List already exists error using Swift ExportKT-78879"Sealed types cannot be instantiated": Can't instantiate Java-defined sealed Class from KotlinKT-21598Extension is shadowed by member should not be reported when member is deprecated with HIDDEN levelKT-79622FUNCTION_EXPECTED: Misleading 'expression cannot be invoked as a function' when inaccessible with private lambdaKT-80255[EXTENSION_FUNCTION_IN_EXTERNAL_DECLARATION] can be attached to the receiver type of a functional typeKT-79816Java Interfaces implemented by delegation have non-null return checksKT-80177Improve message of RECEIVER_SHADOWED_BY_CONTEXT_PARAMETER in case of member extensionKT-79770There is no RECEIVER_SHADOWED_BY_CONTEXT_PARAMETER if the usage of fun is from inside the classKT-79430False positive EXTENSION_SHADOWED_BY_MEMBER on overridden member extensionKT-62934Incorrect line mapping inside inline lambda after non-local returnKT-79545K2: no error on crossinline lambda usage in anonymous object base constructor callKT-79643HAS_NEXT_FUNCTION_AMBIGUITY and NEXT_AMBIGUITY diagnostics are always ignored in favor of HAS_NEXT_FUNCTION_NONE_APPLICABLE and NEXT_NONE_APPLICABLEKT-79327Modifier 'private' is not applicable to 'value parameter' is reported for context parametersKT-76453K2 IDE: autocomplete freezeKT-77182A function in a file annotated with@file:MustUseReturnValue doesn't produce a warning when it is used from compiled codeKT-78541Jspecify: Unsound platform type despite@NullMarkedfor an override with a generic-subclass return typeKT-79672'when expression must be exhaustive' even after using 'require()'KT-71306K2 IDE / Kotlin Debugger: “Cannot find local variable 'block' with type kotlin.jvm.functions.Function0” on evaluating lambda arg inside inline functionKT-76991K2 IDE / Kotlin Debugger: ISE “Couldn't find declaration file for” on evaluating local fun when the scope has also inline fun from another file callKT-79877K2 IDE / Kotlin Debugger: failed evaluations of a code fragment capturing local data classKT-77401[FIR]ParameterNameTypeAttribute.namedoesn't support@ParameterNamewith compile-time constant property argumentKT-79682Fix partially uninitialized locals after coroutine spills insertionKT-79562NPE when passing non-lambda argument of nullable non-suspend function type into function that accepts nullable suspend function typeKT-79693NotImplementedError: An operation is not implemented: Unknown file with KMP separate compilationKT-79662Unused return value checker doesn't work for com.google.errorprone.annotations.CheckReturnValueKT-79781Missing MISSING_DEPENDENCY_CLASS when using type alias with inaccessible RHSKT-77772Only report exposed type on qualifier if it's resolved to an objectKT-79765K2. Do not report ignore return value for unresolved referenceKT-79017False negative REDECLARATION on private nested classKT-79519Nested type alias is unreachable from another moduleKT-72039StackOverflowError on calling keySet on a Kotlin subclass of Java subclass of ConcurrentHashMapKT-75843K2: incorrect line numbers in an if-expression with a super-callKT-77504Add a warning when@IgnorableReturnValueis inconsistent on overridesKT-78389Perform version 2.3 boostrappingKT-79092Crash on default argument in function in fun interfaceKT-77729Package-level@NullMarkeddoes not work when kotlinc sees .java source filesKT-79013False negativeNOT_YET_SUPPORTED_IN_INLINEon inline local functions inside inline functionsKT-79139False positive CONFLICTING_OVERLOADS for context parameters instead of receiversKT-35305Address the overload conflict resolution between unsigned and non-primitive typesKT-42096No diagnostic reported oninlinemodifier on an enum entryKT-79355Failed to fix the problem of desugaredincwith new reverse implies returns contractKT-79277Implies returns contract doesn't affect the return type of the function if it is in the argument positionKT-79271Implies returns contract doesn't impact exhaustivenessKT-79218SMARTCAST_IMPOSSIBLE for top‑level extension‑property getter despite returnsNotNull contractKT-79220returnsNotNull contract ignored on extension function with nullable receiverKT-79354IllegalStateException: Debug metadata version mismatch. Expected: 1, got 2 with compiler 2.2.20-Beta1 and stdlib 2.2.0KT-77986K2: False negative: "Local classes are not yet supported in inline functions"KT-79456Redeclaration conflict checks of private top-level classifiers rely on an incorrect containing fileKT-79125RVC full mode: delegated interfaces are not checkedKT-63720Coroutine debugger: do not optimise out local variablesKT-78595type variable leak on a generic property as a call argument given an unstable smart castKT-79076'IllegalStateException: Cannot serialize error type: ERROR CLASS: Uninferred type' with Exposed column using recursive generic typeKT-59807K2: Replicate the MUST_BE_LATEINIT logic from K1KT-76782K2: Incorrect resolve into unrelated invoke operator with wrong diagnosticKT-78066TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER error message does not account for context parametersKT-76065Drop JavaTypeParameterDefaultRepresentationWithDNN featureKT-77808Inference: recheck the code about DNN-related hacksKT-24202NOTHING_TO_OVERRIDE if super-class reference misses generic argumentsKT-78909K2: Missing diagnostics [CYCLIC_INHERITANCE_HIERARCHY] for recursive class inheritance leads to StackOverflowErrorKT-75969java.lang.IllegalArgumentException: source must not be null on red codeKT-76902Omit type-use annotations from diagnosticsKT-17460Diagnostics and intention on suspend function that is overriden with non-suspend one.KT-56665K2: false positive RECURSIVE_TYPEALIAS_EXPANSIONKT-78932Contracts are allowed for open and overridden property accessorsKT-77203FIR: Consider adding destructured type to all COMPONENT_FUNCTION_* diagnosticsKT-77685"IllegalArgumentException: Sequence contains more than one matching element"KT-78452Drop redundant frontend structures after fir2ir conversionKT-70507Should parentheses prevent from plus/set operator desugaring?Compose compiler
New features
98d3907Introduce a compose group analysis module that produces a proguard/R8 mapping from group keys in bytecode.Fixes
b/419049140Disabled memoization intryblocksKT-81081Generate Compose-specific proguard mappings when Compose compiler plugin is applied.b/431025881[Compose] Clean up runtime version checkerb/365922168Addjava.util.Localeto the list of known stable classesb/407549020Introduce a registry of known stable markersb/417989445Added a diagnostic to restrict usages ofrunCatchingin@ComposablefunctionsKT-80294Fix crash with inline@Composablefunction referenceb/430140896Fix IrSourcePrinter output for when branch check and typechecksCMP-9167iOS: Platform declaration clash: The following functions have the same IR signatureIDE. Gradle Integration
KT-46273MPP: Don't fail import for case of missed platform in source set structureKT-46417[UNRESOLVED_REFERENCE] For project to project dependencies of native platform test source setsKT-44845After update to Kotlin 1.4.30 all external dependencies is unresolved in IDE with kotlin.mpp.enableGranularSourceSetsMetadata=trueKT-46142K/N distribution is unavailable from IDE with multiplatform hierarchical project structure enabledIR. Actualizer
KT-77337IrNoExpectSymbolsHandlerfinds expect class reference after enabling annotation traversal in IRKT-80002Investigate the need for map copying in IrCommonToPlatformDependencyExtractor.ktKT-80131KMP Separate Compilation: No override for FUN IR_EXTERNAL_DECLARATION_STUB name:KT-80064KMP Separate Compilation: ClassCastException: class org.jetbrains.kotlin.ir.symbols.impl.IrTypeAliasSymbolImpl cannot be cast to class org.jetbrains.kotlin.ir.symbols.IrClassSymbolKT-80051KMP Separate Compilation: Actualization of common dependencies failed on 'PROPERTY FAKE_OVERRIDE name:modCount visibility:protected modality:FINAL [fake_override,var]'KT-79998KMP Separate Compilation: java.lang.IllegalStateException: No override for FUN IR_EXTERNAL_DECLARATION_STUB name:IR. Inlining
New Features
KT-70360KLIBs: Uniformly handletypeOf()calls at 1st/2nd stages of compilationPerformance Improvements
KT-69497Crossinline lambda is allocated on K/N & JSFixes
KT-78673Make fakeOverrideLocalGenericBase not using red codeKT-78537[Inliner] Incorrect KFunction.name of a reference to inlined local functionKT-74892Investigate passing inline lambda as argument of another inline functionKT-81673False warnings about ABI change in dependencies in library mode in 2.3.0-Beta1KT-81713[Inliner] Compilation of inline function with recursive call applied to TODO() fails with an internal errorKT-80653[IR Inliner] Space: "Local declarations should've been popped out by this point"KT-78392CommonPrefix: Add a way of stopping execution when one of the phases is unsuccessfulKT-80927[Native] Review intrinsics with PublishedApiKT-81070[Inliner] kotlin/Any is unboundKT-80628KLIB inliner: Not enough information about the "full" modeKT-69516Double-inlining for Native: Enable visibility checks after 1st phase of inliningKT-79334Unify intrinsics used on 1st phase of IR inliner in KLIB-based compilersKT-80610KLIB inliner: Always apply cross-module inlining to pre-processed inline functionsKT-80565KLIB Inliner: Add a special annotation to prohibit inlining of marked inline functions in stdlib on 1st compilation phaseKT-80883[Inliner] Run pre-serialization lowerings in all testrunnersKT-77876IrVisibilityChecker: Different set of exceptions for 1st and 2nd compilation stagesKT-80693[IC] Split IC invalidation tests for cross-module IR InlinerKT-79718KLIB inliner: Emit warning on generation ofpublicsynthetic accessor when running in "explicit API mode"KT-80226[IR Inliner] Generate constructor accessors as constructors, not static functionsKT-80692[IC] Split IC invalidation tests for intra-module IR InlinerKT-77103[Inliner] IrLocalDelegatedProperty was not serialized, while its symbol and IrRichPropertyReference were.KT-80537The expected error is not emitted from FirJsKlibSyntheticAccessorsTestGenerated and NativeKlibSyntheticAccessorsTestGeneratedKT-78903Unifycodegen/boxInlinetests withcodegen/boxKT-78989Add missing PL tests for inline functions/property accessorsKT-79771kotlinx-coroutines-core: Public synthetic accessor generated with enabled KLIB IR inlinerKT-79680IrConstructorSymbolImpl is unboundin lambdaWithoutNonLocalControlflow.ktKT-70849Ensure correct debug info for intra-module IR inlining on the first compilation phaseKT-79800JS BE errors with default values when IR inliner is enabledKT-79352Remove excessive validations fromValidateAfterAll...on the first stageKT-76599MigrateIrValidationAfterInliningAllFunctionsPhaseto the first stage of compilationKT-78245Synthetic Accessors incorrectly copies default valuesKT-72594[JS][Native] Add IrInliningFacade to test runnersIR. Interpreter
KT-72356K2 Native: IllegalStateException when annotation has the same source range as a constant in another fileKT-72881K2: incorrect empty array as annotation argument when parameter has default valueIR. Tree
Fixes
KT-79371Fix handling of broken SAM conversion in PL with enabled Rich ReferencesKT-81952"IllegalStateException: Callable reference with vararg should not appear at this stage" for callable references to functions with generic vararg parametersKT-79739Static synthetic accessors inside generic classes access its type parametersKT-78100Track and annotate internal annotations with@PublishedApito enable annotation visibility validationKT-80825DropIrSerializationSettings.reuseExistingSignaturesForSymbolssettingKT-79807Broken IR tree i