From 2885df14ee07b9fa9d57d176606bca8ac90bd194 Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Mon, 15 May 2023 17:08:21 +0200 Subject: [PATCH] [LL FIR] rewrite status phase transformer Now we will try to avoid redundant calculation: * Class-like declarations can be calculated without super types * Overridden search logic not is out of lock Unfortunately, right now it is not safe to use StatusResolveMode.FunctionWithSpecificName and StatusResolveMode.PropertyWithSpecificName because lazyResolveToPhaseWithCallableMembers can lead to an incorrect state of scope. Example: ``` open class A { open fun a() {} open fun b() {} } class C : A() ``` Steps: 1. Resolve constructor of C to STATUS 2. Now we want to call lazyResolveToPhaseWithCallableMembers on C, and this call will do nothing because this class and all its declarations (only constructor) are already in STATUS phase, so class A won't be resolved as expected ^KT-56551 --- .../transformers/LLFirStatusLazyResolver.kt | 170 ++++++++++++++---- ...onClassWithJavaTarget.out_of_src_roots.txt | 12 +- .../annotationClassWithJavaTarget.txt | 12 +- .../testdata/lazyResolve/classes/actual.txt | 48 ++--- .../classes/annotationWithTarget.txt | 36 ++-- .../classes/classWithTypeParameters.txt | 12 +- .../classes/hierarchyWithOverride.txt | 144 +++++++-------- .../hierarchyWithOverrideAndNestedClass.txt | 72 ++++---- .../hierarchyWithOverrideAndNestedClass2.txt | 108 +++++------ .../hierarchyWithOverrideAndNestedClass3.txt | 48 ++--- .../hierarchyWithOverrideAndNestedClass4.txt | 156 ++++++++-------- .../lazyResolve/classes/nestedClass.txt | 40 ++--- .../nestedClassWithPropertiesOverrides.txt | 44 ++--- .../classes/simpleLoopInOverride.txt | 12 +- .../classes/simpleLoopInOverride2.txt | 12 +- .../lazyResolve/cyclicNestedHierarchy.txt | 24 +-- .../lazyResolve/cyclicNestedHierarchy2.txt | 24 +-- .../annotationWithNamedFunctionArgument.txt | 12 +- .../nestedCompilerRequiredAnnotations.txt | 72 ++++---- .../testdata/lazyResolve/nestedTypeAlias.txt | 16 +- .../testdata/lazyResolve/superTypes.txt | 48 ++--- .../testdata/lazyResolve/superTypesLoop.txt | 60 +++---- .../lazyResolve/typeParameterOfClass.txt | 24 +-- .../FirStatusResolveTransformer.kt | 45 +++-- .../resolve/transformers/FirStatusResolver.kt | 22 ++- 25 files changed, 701 insertions(+), 572 deletions(-) diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirStatusLazyResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirStatusLazyResolver.kt index 330eaaaf6c3..845b2e56294 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirStatusLazyResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirStatusLazyResolver.kt @@ -5,9 +5,10 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers -import org.jetbrains.kotlin.analysis.low.level.api.fir.api.collectDesignationWithFile import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.LLFirResolveTarget +import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.LLFirSingleResolveTarget import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.asResolveTarget +import org.jetbrains.kotlin.analysis.low.level.api.fir.api.tryCollectDesignationWithFile import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.LLFirPhaseUpdater import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkDeclarationStatusIsResolved @@ -19,10 +20,11 @@ import org.jetbrains.kotlin.fir.expressions.FirStatement import org.jetbrains.kotlin.fir.resolve.ScopeSession import org.jetbrains.kotlin.fir.resolve.transformers.FirStatusResolveTransformer import org.jetbrains.kotlin.fir.resolve.transformers.StatusComputationSession +import org.jetbrains.kotlin.fir.resolve.transformers.StatusComputationSession.StatusComputationStatus import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirTowerDataContextCollector import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase -import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhaseWithCallableMembers import org.jetbrains.kotlin.fir.visitors.transformSingle +import org.jetbrains.kotlin.name.Name internal object LLFirStatusLazyResolver : LLFirLazyResolver(FirResolvePhase.STATUS) { override fun resolve( @@ -32,7 +34,14 @@ internal object LLFirStatusLazyResolver : LLFirLazyResolver(FirResolvePhase.STAT scopeSession: ScopeSession, towerDataContextCollector: FirTowerDataContextCollector?, ) { - val resolver = LLFirStatusTargetResolver(target, lockProvider, session, scopeSession) + val resolver = LLFirStatusTargetResolver( + target = target, + lockProvider = lockProvider, + session = session, + scopeSession = scopeSession, + resolveMode = target.resolveMode(), + ) + resolver.resolveDesignation() } @@ -44,20 +53,56 @@ internal object LLFirStatusLazyResolver : LLFirLazyResolver(FirResolvePhase.STAT if (target !is FirAnonymousInitializer) { target.checkPhase(resolverPhase) } + if (target is FirMemberDeclaration) { checkDeclarationStatusIsResolved(target) } + checkNestedDeclarationsAreResolved(target) } } +private sealed class StatusResolveMode(val resolveSupertypes: Boolean) { + abstract fun shouldBeResolved(callableDeclaration: FirCallableDeclaration): Boolean + + object OnlyTarget : StatusResolveMode(resolveSupertypes = false) { + override fun shouldBeResolved(callableDeclaration: FirCallableDeclaration): Boolean = false + } + + object AllCallables : StatusResolveMode(resolveSupertypes = true) { + override fun shouldBeResolved(callableDeclaration: FirCallableDeclaration): Boolean = true + } + + class FunctionWithSpecificName(val name: Name) : StatusResolveMode(resolveSupertypes = true) { + override fun shouldBeResolved(callableDeclaration: FirCallableDeclaration): Boolean { + return callableDeclaration is FirSimpleFunction && callableDeclaration.name == name + } + } + + class PropertyWithSpecificName(val name: Name) : StatusResolveMode(resolveSupertypes = true) { + override fun shouldBeResolved(callableDeclaration: FirCallableDeclaration): Boolean { + return callableDeclaration is FirProperty && callableDeclaration.name == name + } + } +} + +private fun LLFirResolveTarget.resolveMode(): StatusResolveMode = when (this) { + is LLFirSingleResolveTarget -> when (target) { + is FirClassLikeDeclaration -> StatusResolveMode.OnlyTarget + else -> StatusResolveMode.AllCallables + } + + else -> StatusResolveMode.AllCallables +} + private class LLFirStatusTargetResolver( target: LLFirResolveTarget, lockProvider: LLFirLockProvider, session: FirSession, scopeSession: ScopeSession, - private val statusComputationSession: StatusComputationSession = StatusComputationSession() -) : LLFirTargetResolver(target, lockProvider, FirResolvePhase.STATUS, isJumpingPhase = true) { + private val statusComputationSession: StatusComputationSession = StatusComputationSession(), + private val resolveMode: StatusResolveMode, +) : LLFirTargetResolver(target, lockProvider, FirResolvePhase.STATUS, isJumpingPhase = false) { private val transformer = Transformer(session, scopeSession) override fun withFile(firFile: FirFile, action: () -> Unit) { @@ -66,8 +111,13 @@ private class LLFirStatusTargetResolver( @Deprecated("Should never be called directly, only for override purposes, please use withRegularClass", level = DeprecationLevel.ERROR) override fun withRegularClassImpl(firClass: FirRegularClass, action: () -> Unit) { - firClass.lazyResolveToPhase(resolverPhase.previous) - resolveClass(firClass, action) + doResolveWithoutLock(firClass) + transformer.storeClass(firClass) { + action() + firClass + } + + transformer.statusComputationSession.endComputing(firClass) } private fun resolveClassTypeParameters(klass: FirClass) { @@ -75,24 +125,60 @@ private class LLFirStatusTargetResolver( } private fun resolveCallableMembers(klass: FirClass) { - // we need the types to be resolved here to compute visibility - // implicit types will not be handled (see bug in the compiler KT-55446) - klass.lazyResolveToPhaseWithCallableMembers(resolverPhase.previous) for (member in klass.declarations) { - if (member !is FirCallableDeclaration) continue + if (member !is FirCallableDeclaration || !resolveMode.shouldBeResolved(member)) continue + + // we need the types to be resolved here to compute visibility + // implicit types will not be handled (see bug in the compiler KT-55446) + member.lazyResolveToPhase(resolverPhase.previous) performResolve(member) } } - override fun doResolveWithoutLock(target: FirElementWithResolveState): Boolean { - return when (target) { - is FirRegularClass -> { - resolveClass(target, action = {}) - true - } - else -> { - false + override fun doResolveWithoutLock(target: FirElementWithResolveState): Boolean = when { + target is FirRegularClass -> { + if (transformer.statusComputationSession[target].requiresComputation) { + target.lazyResolveToPhase(resolverPhase.previous) + resolveClass(target) } + + true + } + + target is FirSimpleFunction -> { + performResolveWithOverriddenCallables( + target, + { transformer.statusResolver.getOverriddenFunctions(it, transformer.containingClass) }, + { element, overridden -> transformer.transformSimpleFunction(element, overridden) }, + ) + + true + } + + target is FirProperty -> { + performResolveWithOverriddenCallables( + target, + { transformer.statusResolver.getOverriddenProperties(it, transformer.containingClass) }, + { element, overridden -> transformer.transformProperty(element, overridden) }, + ) + + true + } + + else -> { + false + } + } + + private inline fun performResolveWithOverriddenCallables( + target: T, + getOverridden: (T) -> List, + crossinline transform: (T, List) -> Unit, + ) { + if (target.resolvePhase >= resolverPhase) return + val overriddenDeclarations = getOverridden(target) + performCustomResolveUnderLock(target) { + transform(target, overriddenDeclarations) } } @@ -107,9 +193,12 @@ private class LLFirStatusTargetResolver( } } - private fun resolveClass(firClass: FirRegularClass, action: () -> Unit) { + private fun resolveClass(firClass: FirRegularClass) { transformer.statusComputationSession.startComputing(firClass) - transformer.forceResolveStatusesOfSupertypes(firClass) + + if (resolveMode.resolveSupertypes) { + transformer.forceResolveStatusesOfSupertypes(firClass) + } performCustomResolveUnderLock(firClass) { transformer.transformClassStatus(firClass) @@ -120,20 +209,18 @@ private class LLFirStatusTargetResolver( } } - transformer.storeClass(firClass) { - resolveCallableMembers(firClass) - firClass - } + if (resolveMode.resolveSupertypes) { + transformer.storeClass(firClass) { + resolveCallableMembers(firClass) + firClass + } - transformer.storeClass(firClass) { - action() - firClass + transformer.statusComputationSession.endComputing(firClass) + } else { + transformer.statusComputationSession.computeOnlyClassStatus(firClass) } - - transformer.statusComputationSession.endComputing(firClass) } - private inner class Transformer( session: FirSession, scopeSession: ScopeSession, @@ -147,11 +234,24 @@ private class LLFirStatusTargetResolver( } override fun resolveClassForSuperType(regularClass: FirRegularClass): Boolean { - if (regularClass.resolvePhase >= resolverPhase) return true - regularClass.lazyResolveToPhase(resolverPhase.previous) + if (regularClass.resolvePhase >= resolverPhase) { + // We can avoid resolve in the case of all declarations in super class are already resolved + val declarations = regularClass.declarations + if (declarations.isNotEmpty() && declarations.all { it.resolvePhase >= resolverPhase }) { + return true + } + } + + val target = regularClass.tryCollectDesignationWithFile()?.asResolveTarget() ?: return false + val resolver = LLFirStatusTargetResolver( + target, + lockProvider, + session, + scopeSession, + statusComputationSession, + resolveMode = resolveMode, + ) - val designation = regularClass.collectDesignationWithFile().asResolveTarget() - val resolver = LLFirStatusTargetResolver(designation, lockProvider, session, scopeSession, statusComputationSession) resolver.resolveDesignation() return true } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/annotationClassWithJavaTarget.out_of_src_roots.txt b/analysis/low-level-api-fir/testdata/lazyResolve/annotationClassWithJavaTarget.out_of_src_roots.txt index d7aa0c92785..f72218f809d 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/annotationClassWithJavaTarget.out_of_src_roots.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/annotationClassWithJavaTarget.out_of_src_roots.txt @@ -62,7 +62,7 @@ STATUS: FILE: [ResolvedTo(IMPORTS)] annotationClassWithJavaTarget.kt [ResolvedTo(BODY_RESOLVE)] annotations container @[Types](ElementType#.TYPE_USE#) public final [ResolvedTo(STATUS)] annotation class ResolveMe : R|kotlin/Annotation| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor(): R|ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor(): R|ResolveMe| { LAZY_super } @@ -72,7 +72,7 @@ EXPECT_ACTUAL_MATCHING: FILE: [ResolvedTo(IMPORTS)] annotationClassWithJavaTarget.kt [ResolvedTo(BODY_RESOLVE)] annotations container @[Types](ElementType#.TYPE_USE#) public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] annotation class ResolveMe : R|kotlin/Annotation| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor(): R|ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor(): R|ResolveMe| { LAZY_super } @@ -82,7 +82,7 @@ ARGUMENTS_OF_ANNOTATIONS: FILE: [ResolvedTo(IMPORTS)] annotationClassWithJavaTarget.kt [ResolvedTo(BODY_RESOLVE)] annotations container @[Types](ElementType#.TYPE_USE#) public final [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] annotation class ResolveMe : R|kotlin/Annotation| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor(): R|ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor(): R|ResolveMe| { LAZY_super } @@ -92,7 +92,7 @@ CONTRACTS: FILE: [ResolvedTo(IMPORTS)] annotationClassWithJavaTarget.kt [ResolvedTo(BODY_RESOLVE)] annotations container @[Types](ElementType#.TYPE_USE#) public final [ResolvedTo(CONTRACTS)] annotation class ResolveMe : R|kotlin/Annotation| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor(): R|ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor(): R|ResolveMe| { LAZY_super } @@ -102,7 +102,7 @@ IMPLICIT_TYPES_BODY_RESOLVE: FILE: [ResolvedTo(IMPORTS)] annotationClassWithJavaTarget.kt [ResolvedTo(BODY_RESOLVE)] annotations container @[Types](ElementType#.TYPE_USE#) public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] annotation class ResolveMe : R|kotlin/Annotation| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor(): R|ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor(): R|ResolveMe| { LAZY_super } @@ -112,7 +112,7 @@ ANNOTATIONS_ARGUMENTS_MAPPING: FILE: [ResolvedTo(IMPORTS)] annotationClassWithJavaTarget.kt [ResolvedTo(BODY_RESOLVE)] annotations container @[Types]() public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] annotation class ResolveMe : R|kotlin/Annotation| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor(): R|ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor(): R|ResolveMe| { LAZY_super } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/annotationClassWithJavaTarget.txt b/analysis/low-level-api-fir/testdata/lazyResolve/annotationClassWithJavaTarget.txt index 1b1085e8cc4..64d98703a75 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/annotationClassWithJavaTarget.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/annotationClassWithJavaTarget.txt @@ -62,7 +62,7 @@ STATUS: FILE: [ResolvedTo(IMPORTS)] annotationClassWithJavaTarget.kt [ResolvedTo(BODY_RESOLVE)] annotations container @R|java/lang/annotation/Target|[Types](ElementType#.TYPE_USE#) public final [ResolvedTo(STATUS)] annotation class ResolveMe : R|kotlin/Annotation| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor(): R|ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor(): R|ResolveMe| { LAZY_super } @@ -72,7 +72,7 @@ EXPECT_ACTUAL_MATCHING: FILE: [ResolvedTo(IMPORTS)] annotationClassWithJavaTarget.kt [ResolvedTo(BODY_RESOLVE)] annotations container @R|java/lang/annotation/Target|[Types](ElementType#.TYPE_USE#) public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] annotation class ResolveMe : R|kotlin/Annotation| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor(): R|ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor(): R|ResolveMe| { LAZY_super } @@ -82,7 +82,7 @@ ARGUMENTS_OF_ANNOTATIONS: FILE: [ResolvedTo(IMPORTS)] annotationClassWithJavaTarget.kt [ResolvedTo(BODY_RESOLVE)] annotations container @R|java/lang/annotation/Target|[Types](Q|java/lang/annotation/ElementType|.TYPE_USE#) public final [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] annotation class ResolveMe : R|kotlin/Annotation| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor(): R|ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor(): R|ResolveMe| { LAZY_super } @@ -92,7 +92,7 @@ CONTRACTS: FILE: [ResolvedTo(IMPORTS)] annotationClassWithJavaTarget.kt [ResolvedTo(BODY_RESOLVE)] annotations container @R|java/lang/annotation/Target|[Types](Q|java/lang/annotation/ElementType|.TYPE_USE#) public final [ResolvedTo(CONTRACTS)] annotation class ResolveMe : R|kotlin/Annotation| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor(): R|ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor(): R|ResolveMe| { LAZY_super } @@ -102,7 +102,7 @@ IMPLICIT_TYPES_BODY_RESOLVE: FILE: [ResolvedTo(IMPORTS)] annotationClassWithJavaTarget.kt [ResolvedTo(BODY_RESOLVE)] annotations container @R|java/lang/annotation/Target|[Types](Q|java/lang/annotation/ElementType|.TYPE_USE#) public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] annotation class ResolveMe : R|kotlin/Annotation| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor(): R|ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor(): R|ResolveMe| { LAZY_super } @@ -112,7 +112,7 @@ ANNOTATIONS_ARGUMENTS_MAPPING: FILE: [ResolvedTo(IMPORTS)] annotationClassWithJavaTarget.kt [ResolvedTo(BODY_RESOLVE)] annotations container @R|java/lang/annotation/Target|[Types](value = vararg(Q|java/lang/annotation/ElementType|.#)) public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] annotation class ResolveMe : R|kotlin/Annotation| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor(): R|ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor(): R|ResolveMe| { LAZY_super } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/classes/actual.txt b/analysis/low-level-api-fir/testdata/lazyResolve/classes/actual.txt index 9a2402e7508..2cd5c8f6767 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/classes/actual.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/classes/actual.txt @@ -146,14 +146,14 @@ STATUS: FILE: [ResolvedTo(IMPORTS)] actual.kt [ResolvedTo(BODY_RESOLVE)] annotations container public final actual [ResolvedTo(STATUS)] class Actual : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=Actual] constructor(): R|Actual| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Actual] constructor(): R|Actual| { LAZY_super } - public final [ResolvedTo(STATUS)] fun memberFun(): R|kotlin/Unit| { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun memberFun(): R|kotlin/Unit| { LAZY_BLOCK } - public final [ResolvedTo(STATUS)] val a: = LAZY_EXPRESSION - public [ResolvedTo(STATUS)] [ContainingClassKey=Actual] get(): + public? final? [ResolvedTo(RAW_FIR)] val a: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Actual] get(): public? final? actual [ResolvedTo(RAW_FIR)] class NestedActual : R|kotlin/Any| { public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedActual] constructor(): R|Actual.NestedActual| { @@ -170,14 +170,14 @@ EXPECT_ACTUAL_MATCHING: FILE: [ResolvedTo(IMPORTS)] actual.kt [ResolvedTo(BODY_RESOLVE)] annotations container public final actual [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [ExpectForActualAttributeKey={}] class Actual : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=Actual] constructor(): R|Actual| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Actual] constructor(): R|Actual| { LAZY_super } - public final [ResolvedTo(STATUS)] fun memberFun(): R|kotlin/Unit| { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun memberFun(): R|kotlin/Unit| { LAZY_BLOCK } - public final [ResolvedTo(STATUS)] val a: = LAZY_EXPRESSION - public [ResolvedTo(STATUS)] [ContainingClassKey=Actual] get(): + public? final? [ResolvedTo(RAW_FIR)] val a: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Actual] get(): public? final? actual [ResolvedTo(RAW_FIR)] class NestedActual : R|kotlin/Any| { public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedActual] constructor(): R|Actual.NestedActual| { @@ -194,14 +194,14 @@ ARGUMENTS_OF_ANNOTATIONS: FILE: [ResolvedTo(IMPORTS)] actual.kt [ResolvedTo(BODY_RESOLVE)] annotations container public final actual [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] [ExpectForActualAttributeKey={}] class Actual : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=Actual] constructor(): R|Actual| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Actual] constructor(): R|Actual| { LAZY_super } - public final [ResolvedTo(STATUS)] fun memberFun(): R|kotlin/Unit| { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun memberFun(): R|kotlin/Unit| { LAZY_BLOCK } - public final [ResolvedTo(STATUS)] val a: = LAZY_EXPRESSION - public [ResolvedTo(STATUS)] [ContainingClassKey=Actual] get(): + public? final? [ResolvedTo(RAW_FIR)] val a: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Actual] get(): public? final? actual [ResolvedTo(RAW_FIR)] class NestedActual : R|kotlin/Any| { public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedActual] constructor(): R|Actual.NestedActual| { @@ -218,14 +218,14 @@ CONTRACTS: FILE: [ResolvedTo(IMPORTS)] actual.kt [ResolvedTo(BODY_RESOLVE)] annotations container public final actual [ResolvedTo(CONTRACTS)] [ExpectForActualAttributeKey={}] class Actual : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=Actual] constructor(): R|Actual| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Actual] constructor(): R|Actual| { LAZY_super } - public final [ResolvedTo(STATUS)] fun memberFun(): R|kotlin/Unit| { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun memberFun(): R|kotlin/Unit| { LAZY_BLOCK } - public final [ResolvedTo(STATUS)] val a: = LAZY_EXPRESSION - public [ResolvedTo(STATUS)] [ContainingClassKey=Actual] get(): + public? final? [ResolvedTo(RAW_FIR)] val a: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Actual] get(): public? final? actual [ResolvedTo(RAW_FIR)] class NestedActual : R|kotlin/Any| { public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedActual] constructor(): R|Actual.NestedActual| { @@ -242,14 +242,14 @@ IMPLICIT_TYPES_BODY_RESOLVE: FILE: [ResolvedTo(IMPORTS)] actual.kt [ResolvedTo(BODY_RESOLVE)] annotations container public final actual [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ExpectForActualAttributeKey={}] class Actual : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=Actual] constructor(): R|Actual| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Actual] constructor(): R|Actual| { LAZY_super } - public final [ResolvedTo(STATUS)] fun memberFun(): R|kotlin/Unit| { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun memberFun(): R|kotlin/Unit| { LAZY_BLOCK } - public final [ResolvedTo(STATUS)] val a: = LAZY_EXPRESSION - public [ResolvedTo(STATUS)] [ContainingClassKey=Actual] get(): + public? final? [ResolvedTo(RAW_FIR)] val a: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Actual] get(): public? final? actual [ResolvedTo(RAW_FIR)] class NestedActual : R|kotlin/Any| { public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedActual] constructor(): R|Actual.NestedActual| { @@ -266,14 +266,14 @@ ANNOTATIONS_ARGUMENTS_MAPPING: FILE: [ResolvedTo(IMPORTS)] actual.kt [ResolvedTo(BODY_RESOLVE)] annotations container public final actual [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] [ExpectForActualAttributeKey={}] class Actual : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=Actual] constructor(): R|Actual| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Actual] constructor(): R|Actual| { LAZY_super } - public final [ResolvedTo(STATUS)] fun memberFun(): R|kotlin/Unit| { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun memberFun(): R|kotlin/Unit| { LAZY_BLOCK } - public final [ResolvedTo(STATUS)] val a: = LAZY_EXPRESSION - public [ResolvedTo(STATUS)] [ContainingClassKey=Actual] get(): + public? final? [ResolvedTo(RAW_FIR)] val a: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Actual] get(): public? final? actual [ResolvedTo(RAW_FIR)] class NestedActual : R|kotlin/Any| { public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedActual] constructor(): R|Actual.NestedActual| { diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/classes/annotationWithTarget.txt b/analysis/low-level-api-fir/testdata/lazyResolve/classes/annotationWithTarget.txt index a36574d1a5f..0e07309a55a 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/classes/annotationWithTarget.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/classes/annotationWithTarget.txt @@ -134,12 +134,12 @@ STATUS: FILE: [ResolvedTo(IMPORTS)] annotationWithTarget.kt [ResolvedTo(BODY_RESOLVE)] annotations container @R|kotlin/annotation/Target|[Types](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.CLASS|) @R|Anno|[Types](LAZY_EXPRESSION) public final [ResolvedTo(STATUS)] annotation class ResolveMe : R|kotlin/Annotation| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=/ResolveMe.value] value: R|kotlin/Int|): R|ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/ResolveMe.value] value: Int): R|ResolveMe| { LAZY_super } - public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val value: R|kotlin/Int| = R|/value| - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] get(): R|kotlin/Int| + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val value: Int = R|/value| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] get(): Int } public? final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| { @@ -156,12 +156,12 @@ EXPECT_ACTUAL_MATCHING: FILE: [ResolvedTo(IMPORTS)] annotationWithTarget.kt [ResolvedTo(BODY_RESOLVE)] annotations container @R|kotlin/annotation/Target|[Types](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.CLASS|) @R|Anno|[Types](LAZY_EXPRESSION) public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] annotation class ResolveMe : R|kotlin/Annotation| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=/ResolveMe.value] value: R|kotlin/Int|): R|ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/ResolveMe.value] value: Int): R|ResolveMe| { LAZY_super } - public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val value: R|kotlin/Int| = R|/value| - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] get(): R|kotlin/Int| + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val value: Int = R|/value| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] get(): Int } public? final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| { @@ -178,12 +178,12 @@ ARGUMENTS_OF_ANNOTATIONS: FILE: [ResolvedTo(IMPORTS)] annotationWithTarget.kt [ResolvedTo(BODY_RESOLVE)] annotations container @R|kotlin/annotation/Target|[Types](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.CLASS|) @R|Anno|[Types](String(string)) public final [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] annotation class ResolveMe : R|kotlin/Annotation| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=/ResolveMe.value] value: R|kotlin/Int|): R|ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/ResolveMe.value] value: Int): R|ResolveMe| { LAZY_super } - public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val value: R|kotlin/Int| = R|/value| - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] get(): R|kotlin/Int| + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val value: Int = R|/value| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] get(): Int } public? final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| { @@ -200,12 +200,12 @@ CONTRACTS: FILE: [ResolvedTo(IMPORTS)] annotationWithTarget.kt [ResolvedTo(BODY_RESOLVE)] annotations container @R|kotlin/annotation/Target|[Types](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.CLASS|) @R|Anno|[Types](String(string)) public final [ResolvedTo(CONTRACTS)] annotation class ResolveMe : R|kotlin/Annotation| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=/ResolveMe.value] value: R|kotlin/Int|): R|ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/ResolveMe.value] value: Int): R|ResolveMe| { LAZY_super } - public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val value: R|kotlin/Int| = R|/value| - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] get(): R|kotlin/Int| + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val value: Int = R|/value| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] get(): Int } public? final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| { @@ -222,12 +222,12 @@ IMPLICIT_TYPES_BODY_RESOLVE: FILE: [ResolvedTo(IMPORTS)] annotationWithTarget.kt [ResolvedTo(BODY_RESOLVE)] annotations container @R|kotlin/annotation/Target|[Types](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.CLASS|) @R|Anno|[Types](String(string)) public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] annotation class ResolveMe : R|kotlin/Annotation| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=/ResolveMe.value] value: R|kotlin/Int|): R|ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/ResolveMe.value] value: Int): R|ResolveMe| { LAZY_super } - public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val value: R|kotlin/Int| = R|/value| - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] get(): R|kotlin/Int| + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val value: Int = R|/value| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] get(): Int } public? final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| { @@ -244,12 +244,12 @@ ANNOTATIONS_ARGUMENTS_MAPPING: FILE: [ResolvedTo(IMPORTS)] annotationWithTarget.kt [ResolvedTo(BODY_RESOLVE)] annotations container @R|kotlin/annotation/Target|[Types](allowedTargets = vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.CLASS|)) @R|Anno|[Types](s = String(string)) public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] annotation class ResolveMe : R|kotlin/Annotation| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=/ResolveMe.value] value: R|kotlin/Int|): R|ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/ResolveMe.value] value: Int): R|ResolveMe| { LAZY_super } - public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val value: R|kotlin/Int| = R|/value| - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] get(): R|kotlin/Int| + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val value: Int = R|/value| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] get(): Int } public final [ResolvedTo(STATUS)] annotation class Anno : R|kotlin/Annotation| { diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/classes/classWithTypeParameters.txt b/analysis/low-level-api-fir/testdata/lazyResolve/classes/classWithTypeParameters.txt index 95e33328194..235879ad7c5 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/classes/classWithTypeParameters.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/classes/classWithTypeParameters.txt @@ -62,7 +62,7 @@ STATUS: FILE: [ResolvedTo(IMPORTS)] classWithTypeParameters.kt [ResolvedTo(BODY_RESOLVE)] annotations container public final [ResolvedTo(STATUS)] class ResolveMe<[ResolvedTo(STATUS)] T : R|kotlin/Int|, [ResolvedTo(STATUS)] K> : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor<[ResolvedTo(STATUS)] T : R|kotlin/Int|, [ResolvedTo(STATUS)] K>(): R|ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor<[ResolvedTo(STATUS)] T : R|kotlin/Int|, [ResolvedTo(STATUS)] K>(): R|ResolveMe| { LAZY_super } @@ -72,7 +72,7 @@ EXPECT_ACTUAL_MATCHING: FILE: [ResolvedTo(IMPORTS)] classWithTypeParameters.kt [ResolvedTo(BODY_RESOLVE)] annotations container public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] class ResolveMe<[ResolvedTo(EXPECT_ACTUAL_MATCHING)] T : R|kotlin/Int|, [ResolvedTo(EXPECT_ACTUAL_MATCHING)] K> : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor<[ResolvedTo(EXPECT_ACTUAL_MATCHING)] T : R|kotlin/Int|, [ResolvedTo(EXPECT_ACTUAL_MATCHING)] K>(): R|ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor<[ResolvedTo(EXPECT_ACTUAL_MATCHING)] T : R|kotlin/Int|, [ResolvedTo(EXPECT_ACTUAL_MATCHING)] K>(): R|ResolveMe| { LAZY_super } @@ -82,7 +82,7 @@ ARGUMENTS_OF_ANNOTATIONS: FILE: [ResolvedTo(IMPORTS)] classWithTypeParameters.kt [ResolvedTo(BODY_RESOLVE)] annotations container public final [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] class ResolveMe<[ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] T : R|kotlin/Int|, [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] K> : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor<[ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] T : R|kotlin/Int|, [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] K>(): R|ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor<[ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] T : R|kotlin/Int|, [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] K>(): R|ResolveMe| { LAZY_super } @@ -92,7 +92,7 @@ CONTRACTS: FILE: [ResolvedTo(IMPORTS)] classWithTypeParameters.kt [ResolvedTo(BODY_RESOLVE)] annotations container public final [ResolvedTo(CONTRACTS)] class ResolveMe<[ResolvedTo(CONTRACTS)] T : R|kotlin/Int|, [ResolvedTo(CONTRACTS)] K> : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor<[ResolvedTo(CONTRACTS)] T : R|kotlin/Int|, [ResolvedTo(CONTRACTS)] K>(): R|ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor<[ResolvedTo(CONTRACTS)] T : R|kotlin/Int|, [ResolvedTo(CONTRACTS)] K>(): R|ResolveMe| { LAZY_super } @@ -102,7 +102,7 @@ IMPLICIT_TYPES_BODY_RESOLVE: FILE: [ResolvedTo(IMPORTS)] classWithTypeParameters.kt [ResolvedTo(BODY_RESOLVE)] annotations container public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] class ResolveMe<[ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] T : R|kotlin/Int|, [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] K> : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor<[ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] T : R|kotlin/Int|, [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] K>(): R|ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor<[ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] T : R|kotlin/Int|, [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] K>(): R|ResolveMe| { LAZY_super } @@ -112,7 +112,7 @@ ANNOTATIONS_ARGUMENTS_MAPPING: FILE: [ResolvedTo(IMPORTS)] classWithTypeParameters.kt [ResolvedTo(BODY_RESOLVE)] annotations container public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] class ResolveMe<[ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] T : R|kotlin/Int|, [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] K> : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor<[ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] T : R|kotlin/Int|, [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] K>(): R|ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor<[ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] T : R|kotlin/Int|, [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] K>(): R|ResolveMe| { LAZY_super } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverride.txt b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverride.txt index 3e311de5bf8..e5b89802d9a 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverride.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverride.txt @@ -181,180 +181,180 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt STATUS: FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt [ResolvedTo(BODY_RESOLVE)] annotations container - public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { - public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String } - public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { - public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean } public abstract [ResolvedTo(STATUS)] class Usage : R|Foo2| { - public [ResolvedTo(STATUS)] [ContainingClassKey=Usage] constructor(): R|Usage| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Usage] constructor(): R|Usage| { LAZY_super<> } - public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } } EXPECT_ACTUAL_MATCHING: FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt [ResolvedTo(BODY_RESOLVE)] annotations container - public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { - public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String } - public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { - public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean } public abstract [ResolvedTo(EXPECT_ACTUAL_MATCHING)] class Usage : R|Foo2| { - public [ResolvedTo(STATUS)] [ContainingClassKey=Usage] constructor(): R|Usage| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Usage] constructor(): R|Usage| { LAZY_super<> } - public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } } ARGUMENTS_OF_ANNOTATIONS: FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt [ResolvedTo(BODY_RESOLVE)] annotations container - public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { - public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String } - public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { - public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean } public abstract [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] class Usage : R|Foo2| { - public [ResolvedTo(STATUS)] [ContainingClassKey=Usage] constructor(): R|Usage| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Usage] constructor(): R|Usage| { LAZY_super<> } - public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } } CONTRACTS: FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt [ResolvedTo(BODY_RESOLVE)] annotations container - public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { - public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String } - public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { - public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean } public abstract [ResolvedTo(CONTRACTS)] class Usage : R|Foo2| { - public [ResolvedTo(STATUS)] [ContainingClassKey=Usage] constructor(): R|Usage| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Usage] constructor(): R|Usage| { LAZY_super<> } - public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } } IMPLICIT_TYPES_BODY_RESOLVE: FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt [ResolvedTo(BODY_RESOLVE)] annotations container - public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { - public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String } - public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { - public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean } public abstract [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] class Usage : R|Foo2| { - public [ResolvedTo(STATUS)] [ContainingClassKey=Usage] constructor(): R|Usage| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Usage] constructor(): R|Usage| { LAZY_super<> } - public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } } ANNOTATIONS_ARGUMENTS_MAPPING: FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt [ResolvedTo(BODY_RESOLVE)] annotations container - public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { - public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String } - public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { - public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean } public abstract [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] class Usage : R|Foo2| { - public [ResolvedTo(STATUS)] [ContainingClassKey=Usage] constructor(): R|Usage| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Usage] constructor(): R|Usage| { LAZY_super<> } - public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass.txt b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass.txt index 31a6042307e..f3b16af2146 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass.txt @@ -427,13 +427,13 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt STATUS: FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt [ResolvedTo(BODY_RESOLVE)] annotations container - public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { - public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { @@ -462,7 +462,7 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt } public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { - public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { LAZY_super<> } @@ -498,13 +498,13 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt EXPECT_ACTUAL_MATCHING: FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt [ResolvedTo(BODY_RESOLVE)] annotations container - public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { - public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { @@ -533,7 +533,7 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt } public abstract [ResolvedTo(EXPECT_ACTUAL_MATCHING)] class OuterClass : R|Foo1| { - public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { LAZY_super<> } @@ -569,13 +569,13 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt ARGUMENTS_OF_ANNOTATIONS: FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt [ResolvedTo(BODY_RESOLVE)] annotations container - public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { - public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { @@ -604,7 +604,7 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt } public abstract [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] class OuterClass : R|Foo1| { - public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { LAZY_super<> } @@ -640,13 +640,13 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt CONTRACTS: FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt [ResolvedTo(BODY_RESOLVE)] annotations container - public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { - public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { @@ -675,7 +675,7 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt } public abstract [ResolvedTo(CONTRACTS)] class OuterClass : R|Foo1| { - public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { LAZY_super<> } @@ -711,13 +711,13 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt IMPLICIT_TYPES_BODY_RESOLVE: FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt [ResolvedTo(BODY_RESOLVE)] annotations container - public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { - public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { @@ -746,7 +746,7 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt } public abstract [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] class OuterClass : R|Foo1| { - public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { LAZY_super<> } @@ -782,13 +782,13 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt ANNOTATIONS_ARGUMENTS_MAPPING: FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt [ResolvedTo(BODY_RESOLVE)] annotations container - public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { - public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { @@ -817,7 +817,7 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt } public abstract [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] class OuterClass : R|Foo1| { - public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { LAZY_super<> } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass2.txt b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass2.txt index e18621a2f21..e2f587ed7f7 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass2.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass2.txt @@ -427,13 +427,13 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt STATUS: FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt [ResolvedTo(BODY_RESOLVE)] annotations container - public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { - public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { @@ -443,13 +443,13 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt } } - public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { - public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean } public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { @@ -462,7 +462,7 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt } public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { - public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { LAZY_super<> } @@ -476,11 +476,11 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt } public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { - public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { LAZY_super<> } - public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } } @@ -498,13 +498,13 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt EXPECT_ACTUAL_MATCHING: FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt [ResolvedTo(BODY_RESOLVE)] annotations container - public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { - public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { @@ -514,13 +514,13 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt } } - public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { - public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean } public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { @@ -533,7 +533,7 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt } public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { - public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { LAZY_super<> } @@ -547,11 +547,11 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt } public abstract [ResolvedTo(EXPECT_ACTUAL_MATCHING)] class NestedClass : R|Foo2| { - public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { LAZY_super<> } - public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } } @@ -585,13 +585,13 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt } } - public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { - public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean } public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { @@ -618,11 +618,11 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt } public abstract [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] class NestedClass : R|Foo2| { - public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { LAZY_super<> } - public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } } @@ -656,13 +656,13 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt } } - public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { - public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean } public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { @@ -689,11 +689,11 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt } public abstract [ResolvedTo(CONTRACTS)] class NestedClass : R|Foo2| { - public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { LAZY_super<> } - public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } } @@ -727,13 +727,13 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt } } - public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { - public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean } public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { @@ -760,11 +760,11 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt } public abstract [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] class NestedClass : R|Foo2| { - public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { LAZY_super<> } - public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } } @@ -798,13 +798,13 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt } } - public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { - public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean } public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { @@ -831,11 +831,11 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt } public abstract [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] class NestedClass : R|Foo2| { - public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { LAZY_super<> } - public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass3.txt b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass3.txt index 9f2d4bae651..b35b2ed39db 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass3.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass3.txt @@ -427,13 +427,13 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt STATUS: FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt [ResolvedTo(BODY_RESOLVE)] annotations container - public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { - public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { @@ -462,16 +462,16 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt } public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { - public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { LAZY_super<> } public final [ResolvedTo(STATUS)] class SimpleNestedClass : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { LAZY_super } - public final [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } } @@ -498,13 +498,13 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt EXPECT_ACTUAL_MATCHING: FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt [ResolvedTo(BODY_RESOLVE)] annotations container - public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { - public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { @@ -533,16 +533,16 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt } public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { - public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { LAZY_super<> } public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] class SimpleNestedClass : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { LAZY_super } - public final [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } } @@ -609,11 +609,11 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt } public final [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] class SimpleNestedClass : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { LAZY_super } - public final [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } } @@ -680,11 +680,11 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt } public final [ResolvedTo(CONTRACTS)] class SimpleNestedClass : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { LAZY_super } - public final [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } } @@ -751,11 +751,11 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt } public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] class SimpleNestedClass : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { LAZY_super } - public final [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } } @@ -822,11 +822,11 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt } public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] class SimpleNestedClass : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { LAZY_super } - public final [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass4.txt b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass4.txt index 59abe2fcb4e..b91ced477e8 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass4.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass4.txt @@ -427,13 +427,13 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt STATUS: FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt [ResolvedTo(BODY_RESOLVE)] annotations container - public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { - public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { @@ -443,13 +443,13 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt } } - public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { - public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean } public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { @@ -462,7 +462,7 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt } public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { - public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { LAZY_super<> } @@ -475,21 +475,21 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt } - public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { - public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + public? abstract [ResolvedTo(SUPER_TYPES)] class NestedClass : R|Foo2| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { LAZY_super<> } - public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } } public abstract [ResolvedTo(STATUS)] class AnotherNestedClass : R|OuterClass.NestedClass| { - public [ResolvedTo(STATUS)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super } - public open override [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } } @@ -498,13 +498,13 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt EXPECT_ACTUAL_MATCHING: FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt [ResolvedTo(BODY_RESOLVE)] annotations container - public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { - public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { @@ -514,13 +514,13 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt } } - public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { - public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean } public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { @@ -533,7 +533,7 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt } public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { - public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { LAZY_super<> } @@ -546,21 +546,21 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt } - public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { - public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + public? abstract [ResolvedTo(SUPER_TYPES)] class NestedClass : R|Foo2| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { LAZY_super<> } - public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } } public abstract [ResolvedTo(EXPECT_ACTUAL_MATCHING)] class AnotherNestedClass : R|OuterClass.NestedClass| { - public [ResolvedTo(STATUS)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super } - public open override [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } } @@ -585,13 +585,13 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt } } - public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { - public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean } public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { @@ -617,21 +617,21 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt } - public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { - public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + public? abstract [ResolvedTo(SUPER_TYPES)] class NestedClass : R|Foo2| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { LAZY_super<> } - public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } } public abstract [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] class AnotherNestedClass : R|OuterClass.NestedClass| { - public [ResolvedTo(STATUS)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super } - public open override [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } } @@ -656,13 +656,13 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt } } - public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { - public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean } public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { @@ -688,21 +688,21 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt } - public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { - public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + public? abstract [ResolvedTo(SUPER_TYPES)] class NestedClass : R|Foo2| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { LAZY_super<> } - public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } } public abstract [ResolvedTo(CONTRACTS)] class AnotherNestedClass : R|OuterClass.NestedClass| { - public [ResolvedTo(STATUS)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super } - public open override [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } } @@ -727,13 +727,13 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt } } - public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { - public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean } public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { @@ -759,21 +759,21 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt } - public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { - public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + public? abstract [ResolvedTo(SUPER_TYPES)] class NestedClass : R|Foo2| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { LAZY_super<> } - public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } } public abstract [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] class AnotherNestedClass : R|OuterClass.NestedClass| { - public [ResolvedTo(STATUS)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super } - public open override [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } } @@ -798,13 +798,13 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt } } - public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { - public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| - public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| - public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean } public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { @@ -830,21 +830,21 @@ FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt } - public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { - public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + public? abstract [ResolvedTo(SUPER_TYPES)] class NestedClass : R|Foo2| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { LAZY_super<> } - public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } } public abstract [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] class AnotherNestedClass : R|OuterClass.NestedClass| { - public [ResolvedTo(STATUS)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super } - public open override [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/classes/nestedClass.txt b/analysis/low-level-api-fir/testdata/lazyResolve/classes/nestedClass.txt index b9e152a59c5..5cabc68ea14 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/classes/nestedClass.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/classes/nestedClass.txt @@ -175,25 +175,25 @@ FILE: [ResolvedTo(IMPORTS)] nestedClass.kt STATUS: FILE: [ResolvedTo(IMPORTS)] nestedClass.kt [ResolvedTo(BODY_RESOLVE)] annotations container - public open [ResolvedTo(STATUS)] class TopLevelClass : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=TopLevelClass] constructor(): R|TopLevelClass| { + public? open [ResolvedTo(SUPER_TYPES)] class TopLevelClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=TopLevelClass] constructor(): R|TopLevelClass| { LAZY_super } } - public open [ResolvedTo(STATUS)] class AnotherTopLevelClass : R|TopLevelClass| { - public [ResolvedTo(STATUS)] [ContainingClassKey=AnotherTopLevelClass] constructor(): R|AnotherTopLevelClass| { - LAZY_super + public? open [ResolvedTo(SUPER_TYPES)] class AnotherTopLevelClass : R|TopLevelClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherTopLevelClass] constructor(): R|AnotherTopLevelClass| { + LAZY_super } } public final [ResolvedTo(STATUS)] class OuterClass : R|AnotherTopLevelClass| { - public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super } public final [ResolvedTo(STATUS)] class NestedClass : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { LAZY_super } @@ -204,25 +204,25 @@ FILE: [ResolvedTo(IMPORTS)] nestedClass.kt EXPECT_ACTUAL_MATCHING: FILE: [ResolvedTo(IMPORTS)] nestedClass.kt [ResolvedTo(BODY_RESOLVE)] annotations container - public open [ResolvedTo(STATUS)] class TopLevelClass : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=TopLevelClass] constructor(): R|TopLevelClass| { + public? open [ResolvedTo(SUPER_TYPES)] class TopLevelClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=TopLevelClass] constructor(): R|TopLevelClass| { LAZY_super } } - public open [ResolvedTo(STATUS)] class AnotherTopLevelClass : R|TopLevelClass| { - public [ResolvedTo(STATUS)] [ContainingClassKey=AnotherTopLevelClass] constructor(): R|AnotherTopLevelClass| { - LAZY_super + public? open [ResolvedTo(SUPER_TYPES)] class AnotherTopLevelClass : R|TopLevelClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherTopLevelClass] constructor(): R|AnotherTopLevelClass| { + LAZY_super } } public final [ResolvedTo(STATUS)] class OuterClass : R|AnotherTopLevelClass| { - public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super } public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] class NestedClass : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { LAZY_super } @@ -251,7 +251,7 @@ FILE: [ResolvedTo(IMPORTS)] nestedClass.kt } public final [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] class NestedClass : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { LAZY_super } @@ -280,7 +280,7 @@ FILE: [ResolvedTo(IMPORTS)] nestedClass.kt } public final [ResolvedTo(CONTRACTS)] class NestedClass : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { LAZY_super } @@ -309,7 +309,7 @@ FILE: [ResolvedTo(IMPORTS)] nestedClass.kt } public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] class NestedClass : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { LAZY_super } @@ -338,7 +338,7 @@ FILE: [ResolvedTo(IMPORTS)] nestedClass.kt } public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] class NestedClass : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { LAZY_super } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/classes/nestedClassWithPropertiesOverrides.txt b/analysis/low-level-api-fir/testdata/lazyResolve/classes/nestedClassWithPropertiesOverrides.txt index 6db652df8f2..f8ad427e807 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/classes/nestedClassWithPropertiesOverrides.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/classes/nestedClassWithPropertiesOverrides.txt @@ -152,16 +152,16 @@ STATUS: FILE: [ResolvedTo(IMPORTS)] nestedClassWithPropertiesOverrides.kt [ResolvedTo(BODY_RESOLVE)] annotations container public abstract [ResolvedTo(STATUS)] interface OV : R|kotlin/Any| { - public abstract [ResolvedTo(STATUS)] val originalExpressions: R|A| - public [ResolvedTo(STATUS)] [ContainingClassKey=OV] get(): R|A| + public? final? [ResolvedTo(RAW_FIR)] val originalExpressions: A + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OV] get(): A public final [ResolvedTo(STATUS)] class ResolveMe : R|OV| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor(): R|OV.ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor(): R|OV.ResolveMe| { LAZY_super<> } - public open override [ResolvedTo(STATUS)] val originalExpressions: R|A| - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] get(): R|A| + public? open? override [ResolvedTo(RAW_FIR)] val originalExpressions: A + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] get(): A } @@ -177,16 +177,16 @@ EXPECT_ACTUAL_MATCHING: FILE: [ResolvedTo(IMPORTS)] nestedClassWithPropertiesOverrides.kt [ResolvedTo(BODY_RESOLVE)] annotations container public abstract [ResolvedTo(STATUS)] interface OV : R|kotlin/Any| { - public abstract [ResolvedTo(STATUS)] val originalExpressions: R|A| - public [ResolvedTo(STATUS)] [ContainingClassKey=OV] get(): R|A| + public? final? [ResolvedTo(RAW_FIR)] val originalExpressions: A + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OV] get(): A public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] class ResolveMe : R|OV| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor(): R|OV.ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor(): R|OV.ResolveMe| { LAZY_super<> } - public open override [ResolvedTo(STATUS)] val originalExpressions: R|A| - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] get(): R|A| + public? open? override [ResolvedTo(RAW_FIR)] val originalExpressions: A + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] get(): A } @@ -206,12 +206,12 @@ FILE: [ResolvedTo(IMPORTS)] nestedClassWithPropertiesOverrides.kt public [ResolvedTo(STATUS)] [ContainingClassKey=OV] get(): R|A| public final [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] class ResolveMe : R|OV| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor(): R|OV.ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor(): R|OV.ResolveMe| { LAZY_super<> } - public open override [ResolvedTo(STATUS)] val originalExpressions: R|A| - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] get(): R|A| + public? open? override [ResolvedTo(RAW_FIR)] val originalExpressions: A + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] get(): A } @@ -231,12 +231,12 @@ FILE: [ResolvedTo(IMPORTS)] nestedClassWithPropertiesOverrides.kt public [ResolvedTo(STATUS)] [ContainingClassKey=OV] get(): R|A| public final [ResolvedTo(CONTRACTS)] class ResolveMe : R|OV| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor(): R|OV.ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor(): R|OV.ResolveMe| { LAZY_super<> } - public open override [ResolvedTo(STATUS)] val originalExpressions: R|A| - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] get(): R|A| + public? open? override [ResolvedTo(RAW_FIR)] val originalExpressions: A + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] get(): A } @@ -256,12 +256,12 @@ FILE: [ResolvedTo(IMPORTS)] nestedClassWithPropertiesOverrides.kt public [ResolvedTo(STATUS)] [ContainingClassKey=OV] get(): R|A| public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] class ResolveMe : R|OV| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor(): R|OV.ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor(): R|OV.ResolveMe| { LAZY_super<> } - public open override [ResolvedTo(STATUS)] val originalExpressions: R|A| - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] get(): R|A| + public? open? override [ResolvedTo(RAW_FIR)] val originalExpressions: A + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] get(): A } @@ -281,12 +281,12 @@ FILE: [ResolvedTo(IMPORTS)] nestedClassWithPropertiesOverrides.kt public [ResolvedTo(STATUS)] [ContainingClassKey=OV] get(): R|A| public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] class ResolveMe : R|OV| { - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] constructor(): R|OV.ResolveMe| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] constructor(): R|OV.ResolveMe| { LAZY_super<> } - public open override [ResolvedTo(STATUS)] val originalExpressions: R|A| - public [ResolvedTo(STATUS)] [ContainingClassKey=ResolveMe] get(): R|A| + public? open? override [ResolvedTo(RAW_FIR)] val originalExpressions: A + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ResolveMe] get(): A } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/classes/simpleLoopInOverride.txt b/analysis/low-level-api-fir/testdata/lazyResolve/classes/simpleLoopInOverride.txt index 4b4f4f497fc..b3aa1afd435 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/classes/simpleLoopInOverride.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/classes/simpleLoopInOverride.txt @@ -98,7 +98,7 @@ STATUS: FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt [ResolvedTo(BODY_RESOLVE)] annotations container public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { - public abstract override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| } public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { @@ -114,7 +114,7 @@ EXPECT_ACTUAL_MATCHING: FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt [ResolvedTo(BODY_RESOLVE)] annotations container public abstract [ResolvedTo(EXPECT_ACTUAL_MATCHING)] interface Foo1 : /Foo2> { - public abstract override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| } public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { @@ -130,7 +130,7 @@ ARGUMENTS_OF_ANNOTATIONS: FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt [ResolvedTo(BODY_RESOLVE)] annotations container public abstract [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] interface Foo1 : /Foo2> { - public abstract override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| } public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { @@ -146,7 +146,7 @@ CONTRACTS: FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt [ResolvedTo(BODY_RESOLVE)] annotations container public abstract [ResolvedTo(CONTRACTS)] interface Foo1 : /Foo2> { - public abstract override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| } public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { @@ -162,7 +162,7 @@ IMPLICIT_TYPES_BODY_RESOLVE: FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt [ResolvedTo(BODY_RESOLVE)] annotations container public abstract [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] interface Foo1 : /Foo2> { - public abstract override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| } public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { @@ -178,7 +178,7 @@ ANNOTATIONS_ARGUMENTS_MAPPING: FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt [ResolvedTo(BODY_RESOLVE)] annotations container public abstract [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] interface Foo1 : /Foo2> { - public abstract override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| } public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/classes/simpleLoopInOverride2.txt b/analysis/low-level-api-fir/testdata/lazyResolve/classes/simpleLoopInOverride2.txt index b64dc80be6f..45118b0bab9 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/classes/simpleLoopInOverride2.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/classes/simpleLoopInOverride2.txt @@ -98,7 +98,7 @@ STATUS: FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt [ResolvedTo(BODY_RESOLVE)] annotations container public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { - public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| } public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { @@ -114,7 +114,7 @@ EXPECT_ACTUAL_MATCHING: FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt [ResolvedTo(BODY_RESOLVE)] annotations container public abstract [ResolvedTo(EXPECT_ACTUAL_MATCHING)] interface Foo1 : /Foo2> { - public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| } public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { @@ -130,7 +130,7 @@ ARGUMENTS_OF_ANNOTATIONS: FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt [ResolvedTo(BODY_RESOLVE)] annotations container public abstract [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] interface Foo1 : /Foo2> { - public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| } public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { @@ -146,7 +146,7 @@ CONTRACTS: FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt [ResolvedTo(BODY_RESOLVE)] annotations container public abstract [ResolvedTo(CONTRACTS)] interface Foo1 : /Foo2> { - public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| } public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { @@ -162,7 +162,7 @@ IMPLICIT_TYPES_BODY_RESOLVE: FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt [ResolvedTo(BODY_RESOLVE)] annotations container public abstract [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] interface Foo1 : /Foo2> { - public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| } public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { @@ -178,7 +178,7 @@ ANNOTATIONS_ARGUMENTS_MAPPING: FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt [ResolvedTo(BODY_RESOLVE)] annotations container public abstract [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] interface Foo1 : /Foo2> { - public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| } public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/cyclicNestedHierarchy.txt b/analysis/low-level-api-fir/testdata/lazyResolve/cyclicNestedHierarchy.txt index dfba6fc1cdd..1fa50e00b6c 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/cyclicNestedHierarchy.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/cyclicNestedHierarchy.txt @@ -140,8 +140,8 @@ STATUS: FILE: [ResolvedTo(IMPORTS)] cyclicNestedHierarchy.kt [ResolvedTo(BODY_RESOLVE)] annotations container public open [ResolvedTo(STATUS)] class C : /D> { - public [ResolvedTo(STATUS)] [ContainingClassKey=C] constructor(): R|C| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=C] constructor(): R|C| { + LAZY_super } public? open [ResolvedTo(SUPER_TYPES)] class CC : kotlin/Any> { @@ -163,8 +163,8 @@ EXPECT_ACTUAL_MATCHING: FILE: [ResolvedTo(IMPORTS)] cyclicNestedHierarchy.kt [ResolvedTo(BODY_RESOLVE)] annotations container public open [ResolvedTo(EXPECT_ACTUAL_MATCHING)] class C : /D> { - public [ResolvedTo(STATUS)] [ContainingClassKey=C] constructor(): R|C| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=C] constructor(): R|C| { + LAZY_super } public? open [ResolvedTo(SUPER_TYPES)] class CC : kotlin/Any> { @@ -186,8 +186,8 @@ ARGUMENTS_OF_ANNOTATIONS: FILE: [ResolvedTo(IMPORTS)] cyclicNestedHierarchy.kt [ResolvedTo(BODY_RESOLVE)] annotations container public open [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] class C : /D> { - public [ResolvedTo(STATUS)] [ContainingClassKey=C] constructor(): R|C| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=C] constructor(): R|C| { + LAZY_super } public? open [ResolvedTo(SUPER_TYPES)] class CC : kotlin/Any> { @@ -209,8 +209,8 @@ CONTRACTS: FILE: [ResolvedTo(IMPORTS)] cyclicNestedHierarchy.kt [ResolvedTo(BODY_RESOLVE)] annotations container public open [ResolvedTo(CONTRACTS)] class C : /D> { - public [ResolvedTo(STATUS)] [ContainingClassKey=C] constructor(): R|C| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=C] constructor(): R|C| { + LAZY_super } public? open [ResolvedTo(SUPER_TYPES)] class CC : kotlin/Any> { @@ -232,8 +232,8 @@ IMPLICIT_TYPES_BODY_RESOLVE: FILE: [ResolvedTo(IMPORTS)] cyclicNestedHierarchy.kt [ResolvedTo(BODY_RESOLVE)] annotations container public open [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] class C : /D> { - public [ResolvedTo(STATUS)] [ContainingClassKey=C] constructor(): R|C| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=C] constructor(): R|C| { + LAZY_super } public? open [ResolvedTo(SUPER_TYPES)] class CC : kotlin/Any> { @@ -255,8 +255,8 @@ ANNOTATIONS_ARGUMENTS_MAPPING: FILE: [ResolvedTo(IMPORTS)] cyclicNestedHierarchy.kt [ResolvedTo(BODY_RESOLVE)] annotations container public open [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] class C : /D> { - public [ResolvedTo(STATUS)] [ContainingClassKey=C] constructor(): R|C| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=C] constructor(): R|C| { + LAZY_super } public? open [ResolvedTo(SUPER_TYPES)] class CC : kotlin/Any> { diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/cyclicNestedHierarchy2.txt b/analysis/low-level-api-fir/testdata/lazyResolve/cyclicNestedHierarchy2.txt index faece875d02..3cf2d588d59 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/cyclicNestedHierarchy2.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/cyclicNestedHierarchy2.txt @@ -153,8 +153,8 @@ FILE: [ResolvedTo(IMPORTS)] cyclicNestedHierarchy2.kt } public open [ResolvedTo(STATUS)] class D : /C.CC> { - public [ResolvedTo(STATUS)] [ContainingClassKey=D] constructor(): R|D| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=D] constructor(): R|D| { + LAZY_super } } @@ -176,8 +176,8 @@ FILE: [ResolvedTo(IMPORTS)] cyclicNestedHierarchy2.kt } public open [ResolvedTo(EXPECT_ACTUAL_MATCHING)] class D : /C.CC> { - public [ResolvedTo(STATUS)] [ContainingClassKey=D] constructor(): R|D| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=D] constructor(): R|D| { + LAZY_super } } @@ -199,8 +199,8 @@ FILE: [ResolvedTo(IMPORTS)] cyclicNestedHierarchy2.kt } public open [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] class D : /C.CC> { - public [ResolvedTo(STATUS)] [ContainingClassKey=D] constructor(): R|D| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=D] constructor(): R|D| { + LAZY_super } } @@ -222,8 +222,8 @@ FILE: [ResolvedTo(IMPORTS)] cyclicNestedHierarchy2.kt } public open [ResolvedTo(CONTRACTS)] class D : /C.CC> { - public [ResolvedTo(STATUS)] [ContainingClassKey=D] constructor(): R|D| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=D] constructor(): R|D| { + LAZY_super } } @@ -245,8 +245,8 @@ FILE: [ResolvedTo(IMPORTS)] cyclicNestedHierarchy2.kt } public open [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] class D : /C.CC> { - public [ResolvedTo(STATUS)] [ContainingClassKey=D] constructor(): R|D| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=D] constructor(): R|D| { + LAZY_super } } @@ -268,8 +268,8 @@ FILE: [ResolvedTo(IMPORTS)] cyclicNestedHierarchy2.kt } public open [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] class D : /C.CC> { - public [ResolvedTo(STATUS)] [ContainingClassKey=D] constructor(): R|D| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=D] constructor(): R|D| { + LAZY_super } } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/errors/annotationWithNamedFunctionArgument.txt b/analysis/low-level-api-fir/testdata/lazyResolve/errors/annotationWithNamedFunctionArgument.txt index 69ee2611e91..f471f611c5f 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/errors/annotationWithNamedFunctionArgument.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/errors/annotationWithNamedFunctionArgument.txt @@ -62,7 +62,7 @@ STATUS: FILE: [ResolvedTo(IMPORTS)] annotationWithNamedFunctionArgument.kt [ResolvedTo(BODY_RESOLVE)] annotations container @[Types](LAZY_EXPRESSION) public final [ResolvedTo(STATUS)] class TopLevelClass : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=TopLevelClass] constructor(): R|TopLevelClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=TopLevelClass] constructor(): R|TopLevelClass| { LAZY_super } @@ -72,7 +72,7 @@ EXPECT_ACTUAL_MATCHING: FILE: [ResolvedTo(IMPORTS)] annotationWithNamedFunctionArgument.kt [ResolvedTo(BODY_RESOLVE)] annotations container @[Types](LAZY_EXPRESSION) public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] class TopLevelClass : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=TopLevelClass] constructor(): R|TopLevelClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=TopLevelClass] constructor(): R|TopLevelClass| { LAZY_super } @@ -84,7 +84,7 @@ FILE: [ResolvedTo(IMPORTS)] annotationWithNamedFunctionArgument.kt @[Types](ERROR_EXPR(Incorrect invoke receiver)local final? [ResolvedTo(RAW_FIR)] fun a(): String { } .invoke#()) public final [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] class TopLevelClass : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=TopLevelClass] constructor(): R|TopLevelClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=TopLevelClass] constructor(): R|TopLevelClass| { LAZY_super } @@ -96,7 +96,7 @@ FILE: [ResolvedTo(IMPORTS)] annotationWithNamedFunctionArgument.kt @[Types](ERROR_EXPR(Incorrect invoke receiver)local final? [ResolvedTo(RAW_FIR)] fun a(): String { } .invoke#()) public final [ResolvedTo(CONTRACTS)] class TopLevelClass : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=TopLevelClass] constructor(): R|TopLevelClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=TopLevelClass] constructor(): R|TopLevelClass| { LAZY_super } @@ -108,7 +108,7 @@ FILE: [ResolvedTo(IMPORTS)] annotationWithNamedFunctionArgument.kt @[Types](ERROR_EXPR(Incorrect invoke receiver)local final? [ResolvedTo(RAW_FIR)] fun a(): String { } .invoke#()) public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] class TopLevelClass : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=TopLevelClass] constructor(): R|TopLevelClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=TopLevelClass] constructor(): R|TopLevelClass| { LAZY_super } @@ -118,7 +118,7 @@ ANNOTATIONS_ARGUMENTS_MAPPING: FILE: [ResolvedTo(IMPORTS)] annotationWithNamedFunctionArgument.kt [ResolvedTo(BODY_RESOLVE)] annotations container @[Types]() public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] class TopLevelClass : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=TopLevelClass] constructor(): R|TopLevelClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=TopLevelClass] constructor(): R|TopLevelClass| { LAZY_super } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/nestedCompilerRequiredAnnotations.txt b/analysis/low-level-api-fir/testdata/lazyResolve/nestedCompilerRequiredAnnotations.txt index 576acb2b229..b51708f2c85 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/nestedCompilerRequiredAnnotations.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/nestedCompilerRequiredAnnotations.txt @@ -383,17 +383,17 @@ FILE: [ResolvedTo(IMPORTS)] nestedCompilerRequiredAnnotations.kt } @R|kotlin/Deprecated|[Types](String(FirstClass)) @R|Anno|[Types](LAZY_EXPRESSION) public final [ResolvedTo(STATUS)] class FirstClass : R|kotlin/Any| { - @R|kotlin/Deprecated|[Types](String(constructor)) @R|Anno|[Types](LAZY_EXPRESSION) public [ResolvedTo(STATUS)] [ContainingClassKey=FirstClass] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=/FirstClass.a] @R|Anno|[Types](LAZY_EXPRESSION) a: R|kotlin/Int|): R|FirstClass| { + @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=FirstClass] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/FirstClass.a] @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) a: Int): R|FirstClass| { LAZY_super } - @R|kotlin/Deprecated|[Types](String(constructorProperty)) public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val a: R|kotlin/Int| = R|/a| - public [ResolvedTo(STATUS)] [ContainingClassKey=FirstClass] get(): R|kotlin/Int| + @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val a: Int = R|/a| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=FirstClass] get(): Int - @R|kotlin/Deprecated|[Types](String(memberFunction)) @R|Anno|[Types](LAZY_EXPRESSION) public final [ResolvedTo(STATUS)] fun memberFunction(): R|kotlin/Unit| { LAZY_BLOCK } + @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] fun memberFunction(): R|kotlin/Unit| { LAZY_BLOCK } - @R|kotlin/Deprecated|[Types](String(memberProperty)) @R|Anno|[Types](LAZY_EXPRESSION) public final [ResolvedTo(STATUS)] val memberProperty: = LAZY_EXPRESSION - public [ResolvedTo(STATUS)] [ContainingClassKey=FirstClass] get(): + @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] val memberProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=FirstClass] get(): @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] class NestedClass : R|kotlin/Any| { @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/FirstClass.NestedClass.a] @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) a: Int): R|FirstClass.NestedClass| { @@ -445,17 +445,17 @@ FILE: [ResolvedTo(IMPORTS)] nestedCompilerRequiredAnnotations.kt } @R|kotlin/Deprecated|[Types](String(FirstClass)) @R|Anno|[Types](LAZY_EXPRESSION) public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] class FirstClass : R|kotlin/Any| { - @R|kotlin/Deprecated|[Types](String(constructor)) @R|Anno|[Types](LAZY_EXPRESSION) public [ResolvedTo(STATUS)] [ContainingClassKey=FirstClass] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=/FirstClass.a] @R|Anno|[Types](LAZY_EXPRESSION) a: R|kotlin/Int|): R|FirstClass| { + @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=FirstClass] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/FirstClass.a] @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) a: Int): R|FirstClass| { LAZY_super } - @R|kotlin/Deprecated|[Types](String(constructorProperty)) public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val a: R|kotlin/Int| = R|/a| - public [ResolvedTo(STATUS)] [ContainingClassKey=FirstClass] get(): R|kotlin/Int| + @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val a: Int = R|/a| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=FirstClass] get(): Int - @R|kotlin/Deprecated|[Types](String(memberFunction)) @R|Anno|[Types](LAZY_EXPRESSION) public final [ResolvedTo(STATUS)] fun memberFunction(): R|kotlin/Unit| { LAZY_BLOCK } + @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] fun memberFunction(): R|kotlin/Unit| { LAZY_BLOCK } - @R|kotlin/Deprecated|[Types](String(memberProperty)) @R|Anno|[Types](LAZY_EXPRESSION) public final [ResolvedTo(STATUS)] val memberProperty: = LAZY_EXPRESSION - public [ResolvedTo(STATUS)] [ContainingClassKey=FirstClass] get(): + @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] val memberProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=FirstClass] get(): @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] class NestedClass : R|kotlin/Any| { @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/FirstClass.NestedClass.a] @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) a: Int): R|FirstClass.NestedClass| { @@ -507,17 +507,17 @@ FILE: [ResolvedTo(IMPORTS)] nestedCompilerRequiredAnnotations.kt } @R|kotlin/Deprecated|[Types](String(FirstClass)) @R|Anno|[Types](String(FirstClass)) public final [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] class FirstClass : R|kotlin/Any| { - @R|kotlin/Deprecated|[Types](String(constructor)) @R|Anno|[Types](LAZY_EXPRESSION) public [ResolvedTo(STATUS)] [ContainingClassKey=FirstClass] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=/FirstClass.a] @R|Anno|[Types](LAZY_EXPRESSION) a: R|kotlin/Int|): R|FirstClass| { + @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=FirstClass] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/FirstClass.a] @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) a: Int): R|FirstClass| { LAZY_super } - @R|kotlin/Deprecated|[Types](String(constructorProperty)) public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val a: R|kotlin/Int| = R|/a| - public [ResolvedTo(STATUS)] [ContainingClassKey=FirstClass] get(): R|kotlin/Int| + @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val a: Int = R|/a| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=FirstClass] get(): Int - @R|kotlin/Deprecated|[Types](String(memberFunction)) @R|Anno|[Types](LAZY_EXPRESSION) public final [ResolvedTo(STATUS)] fun memberFunction(): R|kotlin/Unit| { LAZY_BLOCK } + @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] fun memberFunction(): R|kotlin/Unit| { LAZY_BLOCK } - @R|kotlin/Deprecated|[Types](String(memberProperty)) @R|Anno|[Types](LAZY_EXPRESSION) public final [ResolvedTo(STATUS)] val memberProperty: = LAZY_EXPRESSION - public [ResolvedTo(STATUS)] [ContainingClassKey=FirstClass] get(): + @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] val memberProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=FirstClass] get(): @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] class NestedClass : R|kotlin/Any| { @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/FirstClass.NestedClass.a] @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) a: Int): R|FirstClass.NestedClass| { @@ -569,17 +569,17 @@ FILE: [ResolvedTo(IMPORTS)] nestedCompilerRequiredAnnotations.kt } @R|kotlin/Deprecated|[Types](String(FirstClass)) @R|Anno|[Types](String(FirstClass)) public final [ResolvedTo(CONTRACTS)] class FirstClass : R|kotlin/Any| { - @R|kotlin/Deprecated|[Types](String(constructor)) @R|Anno|[Types](LAZY_EXPRESSION) public [ResolvedTo(STATUS)] [ContainingClassKey=FirstClass] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=/FirstClass.a] @R|Anno|[Types](LAZY_EXPRESSION) a: R|kotlin/Int|): R|FirstClass| { + @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=FirstClass] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/FirstClass.a] @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) a: Int): R|FirstClass| { LAZY_super } - @R|kotlin/Deprecated|[Types](String(constructorProperty)) public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val a: R|kotlin/Int| = R|/a| - public [ResolvedTo(STATUS)] [ContainingClassKey=FirstClass] get(): R|kotlin/Int| + @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val a: Int = R|/a| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=FirstClass] get(): Int - @R|kotlin/Deprecated|[Types](String(memberFunction)) @R|Anno|[Types](LAZY_EXPRESSION) public final [ResolvedTo(STATUS)] fun memberFunction(): R|kotlin/Unit| { LAZY_BLOCK } + @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] fun memberFunction(): R|kotlin/Unit| { LAZY_BLOCK } - @R|kotlin/Deprecated|[Types](String(memberProperty)) @R|Anno|[Types](LAZY_EXPRESSION) public final [ResolvedTo(STATUS)] val memberProperty: = LAZY_EXPRESSION - public [ResolvedTo(STATUS)] [ContainingClassKey=FirstClass] get(): + @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] val memberProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=FirstClass] get(): @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] class NestedClass : R|kotlin/Any| { @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/FirstClass.NestedClass.a] @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) a: Int): R|FirstClass.NestedClass| { @@ -631,17 +631,17 @@ FILE: [ResolvedTo(IMPORTS)] nestedCompilerRequiredAnnotations.kt } @R|kotlin/Deprecated|[Types](String(FirstClass)) @R|Anno|[Types](String(FirstClass)) public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] class FirstClass : R|kotlin/Any| { - @R|kotlin/Deprecated|[Types](String(constructor)) @R|Anno|[Types](LAZY_EXPRESSION) public [ResolvedTo(STATUS)] [ContainingClassKey=FirstClass] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=/FirstClass.a] @R|Anno|[Types](LAZY_EXPRESSION) a: R|kotlin/Int|): R|FirstClass| { + @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=FirstClass] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/FirstClass.a] @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) a: Int): R|FirstClass| { LAZY_super } - @R|kotlin/Deprecated|[Types](String(constructorProperty)) public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val a: R|kotlin/Int| = R|/a| - public [ResolvedTo(STATUS)] [ContainingClassKey=FirstClass] get(): R|kotlin/Int| + @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val a: Int = R|/a| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=FirstClass] get(): Int - @R|kotlin/Deprecated|[Types](String(memberFunction)) @R|Anno|[Types](LAZY_EXPRESSION) public final [ResolvedTo(STATUS)] fun memberFunction(): R|kotlin/Unit| { LAZY_BLOCK } + @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] fun memberFunction(): R|kotlin/Unit| { LAZY_BLOCK } - @R|kotlin/Deprecated|[Types](String(memberProperty)) @R|Anno|[Types](LAZY_EXPRESSION) public final [ResolvedTo(STATUS)] val memberProperty: = LAZY_EXPRESSION - public [ResolvedTo(STATUS)] [ContainingClassKey=FirstClass] get(): + @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] val memberProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=FirstClass] get(): @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] class NestedClass : R|kotlin/Any| { @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/FirstClass.NestedClass.a] @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) a: Int): R|FirstClass.NestedClass| { @@ -693,17 +693,17 @@ FILE: [ResolvedTo(IMPORTS)] nestedCompilerRequiredAnnotations.kt } @R|kotlin/Deprecated|[Types](message = String(FirstClass)) @R|Anno|[Types](s = String(FirstClass)) public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] class FirstClass : R|kotlin/Any| { - @R|kotlin/Deprecated|[Types](String(constructor)) @R|Anno|[Types](LAZY_EXPRESSION) public [ResolvedTo(STATUS)] [ContainingClassKey=FirstClass] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=/FirstClass.a] @R|Anno|[Types](LAZY_EXPRESSION) a: R|kotlin/Int|): R|FirstClass| { + @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=FirstClass] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/FirstClass.a] @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) a: Int): R|FirstClass| { LAZY_super } - @R|kotlin/Deprecated|[Types](String(constructorProperty)) public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val a: R|kotlin/Int| = R|/a| - public [ResolvedTo(STATUS)] [ContainingClassKey=FirstClass] get(): R|kotlin/Int| + @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val a: Int = R|/a| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=FirstClass] get(): Int - @R|kotlin/Deprecated|[Types](String(memberFunction)) @R|Anno|[Types](LAZY_EXPRESSION) public final [ResolvedTo(STATUS)] fun memberFunction(): R|kotlin/Unit| { LAZY_BLOCK } + @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] fun memberFunction(): R|kotlin/Unit| { LAZY_BLOCK } - @R|kotlin/Deprecated|[Types](String(memberProperty)) @R|Anno|[Types](LAZY_EXPRESSION) public final [ResolvedTo(STATUS)] val memberProperty: = LAZY_EXPRESSION - public [ResolvedTo(STATUS)] [ContainingClassKey=FirstClass] get(): + @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] val memberProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=FirstClass] get(): @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] class NestedClass : R|kotlin/Any| { @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/FirstClass.NestedClass.a] @Deprecated[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) a: Int): R|FirstClass.NestedClass| { diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/nestedTypeAlias.txt b/analysis/low-level-api-fir/testdata/lazyResolve/nestedTypeAlias.txt index f31dcdca571..96adb5b98ef 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/nestedTypeAlias.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/nestedTypeAlias.txt @@ -188,8 +188,8 @@ STATUS: FILE: [ResolvedTo(IMPORTS)] nestedTypeAlias.kt [ResolvedTo(BODY_RESOLVE)] annotations container public final [ResolvedTo(STATUS)] class OuterClass<[ResolvedTo(STATUS)] T1> : R|SuperForOuter| { - public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor<[ResolvedTo(STATUS)] T1>(): R|OuterClass| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor<[ResolvedTo(STATUS)] T1>(): R|OuterClass| { + LAZY_super } public? final? [ResolvedTo(SUPER_TYPES)] class NestedClass<[ResolvedTo(SUPER_TYPES)] T2> : R|Another| { @@ -208,8 +208,8 @@ FILE: [ResolvedTo(IMPORTS)] nestedTypeAlias.kt } } - public open [ResolvedTo(STATUS)] class SuperForOuter : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=SuperForOuter] constructor(): R|SuperForOuter| { + public? open [ResolvedTo(SUPER_TYPES)] class SuperForOuter : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SuperForOuter] constructor(): R|SuperForOuter| { LAZY_super } @@ -219,8 +219,8 @@ EXPECT_ACTUAL_MATCHING: FILE: [ResolvedTo(IMPORTS)] nestedTypeAlias.kt [ResolvedTo(BODY_RESOLVE)] annotations container public final [ResolvedTo(STATUS)] class OuterClass<[ResolvedTo(STATUS)] T1> : R|SuperForOuter| { - public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor<[ResolvedTo(STATUS)] T1>(): R|OuterClass| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor<[ResolvedTo(STATUS)] T1>(): R|OuterClass| { + LAZY_super } public? final? [ResolvedTo(SUPER_TYPES)] class NestedClass<[ResolvedTo(SUPER_TYPES)] T2> : R|Another| { @@ -239,8 +239,8 @@ FILE: [ResolvedTo(IMPORTS)] nestedTypeAlias.kt } } - public open [ResolvedTo(STATUS)] class SuperForOuter : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=SuperForOuter] constructor(): R|SuperForOuter| { + public? open [ResolvedTo(SUPER_TYPES)] class SuperForOuter : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SuperForOuter] constructor(): R|SuperForOuter| { LAZY_super } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/superTypes.txt b/analysis/low-level-api-fir/testdata/lazyResolve/superTypes.txt index 0bb8d7e75e1..60c50d1f5df 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/superTypes.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/superTypes.txt @@ -133,8 +133,8 @@ FILE: [ResolvedTo(IMPORTS)] superTypes.kt STATUS: FILE: [ResolvedTo(IMPORTS)] superTypes.kt [ResolvedTo(BODY_RESOLVE)] annotations container - public open [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=A] constructor(): R|A| { + public? open [ResolvedTo(SUPER_TYPES)] class A : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] constructor(): R|A| { LAZY_super } @@ -146,8 +146,8 @@ FILE: [ResolvedTo(IMPORTS)] superTypes.kt } public open [ResolvedTo(STATUS)] class resolveMe : R|A| { - public [ResolvedTo(STATUS)] [ContainingClassKey=resolveMe] constructor(): R|resolveMe| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=resolveMe] constructor(): R|resolveMe| { + LAZY_super } } @@ -155,8 +155,8 @@ FILE: [ResolvedTo(IMPORTS)] superTypes.kt EXPECT_ACTUAL_MATCHING: FILE: [ResolvedTo(IMPORTS)] superTypes.kt [ResolvedTo(BODY_RESOLVE)] annotations container - public open [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=A] constructor(): R|A| { + public? open [ResolvedTo(SUPER_TYPES)] class A : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] constructor(): R|A| { LAZY_super } @@ -168,8 +168,8 @@ FILE: [ResolvedTo(IMPORTS)] superTypes.kt } public open [ResolvedTo(EXPECT_ACTUAL_MATCHING)] class resolveMe : R|A| { - public [ResolvedTo(STATUS)] [ContainingClassKey=resolveMe] constructor(): R|resolveMe| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=resolveMe] constructor(): R|resolveMe| { + LAZY_super } } @@ -177,8 +177,8 @@ FILE: [ResolvedTo(IMPORTS)] superTypes.kt ARGUMENTS_OF_ANNOTATIONS: FILE: [ResolvedTo(IMPORTS)] superTypes.kt [ResolvedTo(BODY_RESOLVE)] annotations container - public open [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=A] constructor(): R|A| { + public? open [ResolvedTo(SUPER_TYPES)] class A : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] constructor(): R|A| { LAZY_super } @@ -190,8 +190,8 @@ FILE: [ResolvedTo(IMPORTS)] superTypes.kt } public open [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] class resolveMe : R|A| { - public [ResolvedTo(STATUS)] [ContainingClassKey=resolveMe] constructor(): R|resolveMe| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=resolveMe] constructor(): R|resolveMe| { + LAZY_super } } @@ -199,8 +199,8 @@ FILE: [ResolvedTo(IMPORTS)] superTypes.kt CONTRACTS: FILE: [ResolvedTo(IMPORTS)] superTypes.kt [ResolvedTo(BODY_RESOLVE)] annotations container - public open [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=A] constructor(): R|A| { + public? open [ResolvedTo(SUPER_TYPES)] class A : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] constructor(): R|A| { LAZY_super } @@ -212,8 +212,8 @@ FILE: [ResolvedTo(IMPORTS)] superTypes.kt } public open [ResolvedTo(CONTRACTS)] class resolveMe : R|A| { - public [ResolvedTo(STATUS)] [ContainingClassKey=resolveMe] constructor(): R|resolveMe| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=resolveMe] constructor(): R|resolveMe| { + LAZY_super } } @@ -221,8 +221,8 @@ FILE: [ResolvedTo(IMPORTS)] superTypes.kt IMPLICIT_TYPES_BODY_RESOLVE: FILE: [ResolvedTo(IMPORTS)] superTypes.kt [ResolvedTo(BODY_RESOLVE)] annotations container - public open [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=A] constructor(): R|A| { + public? open [ResolvedTo(SUPER_TYPES)] class A : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] constructor(): R|A| { LAZY_super } @@ -234,8 +234,8 @@ FILE: [ResolvedTo(IMPORTS)] superTypes.kt } public open [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] class resolveMe : R|A| { - public [ResolvedTo(STATUS)] [ContainingClassKey=resolveMe] constructor(): R|resolveMe| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=resolveMe] constructor(): R|resolveMe| { + LAZY_super } } @@ -243,8 +243,8 @@ FILE: [ResolvedTo(IMPORTS)] superTypes.kt ANNOTATIONS_ARGUMENTS_MAPPING: FILE: [ResolvedTo(IMPORTS)] superTypes.kt [ResolvedTo(BODY_RESOLVE)] annotations container - public open [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=A] constructor(): R|A| { + public? open [ResolvedTo(SUPER_TYPES)] class A : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] constructor(): R|A| { LAZY_super } @@ -256,8 +256,8 @@ FILE: [ResolvedTo(IMPORTS)] superTypes.kt } public open [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] class resolveMe : R|A| { - public [ResolvedTo(STATUS)] [ContainingClassKey=resolveMe] constructor(): R|resolveMe| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=resolveMe] constructor(): R|resolveMe| { + LAZY_super } } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/superTypesLoop.txt b/analysis/low-level-api-fir/testdata/lazyResolve/superTypesLoop.txt index eb8bf83da37..8d02173fcf6 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/superTypesLoop.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/superTypesLoop.txt @@ -170,8 +170,8 @@ STATUS: FILE: [ResolvedTo(IMPORTS)] superTypesLoop.kt [ResolvedTo(BODY_RESOLVE)] annotations container public open [ResolvedTo(STATUS)] class resolveMe : R|C| { - public [ResolvedTo(STATUS)] [ContainingClassKey=resolveMe] constructor(): R|resolveMe| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=resolveMe] constructor(): R|resolveMe| { + LAZY_super } } @@ -187,9 +187,9 @@ FILE: [ResolvedTo(IMPORTS)] superTypesLoop.kt } } - public open [ResolvedTo(STATUS)] class C : /A> { - public [ResolvedTo(STATUS)] [ContainingClassKey=C] constructor(): R|C| { - LAZY_super + public? open [ResolvedTo(SUPER_TYPES)] class C : /A> { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=C] constructor(): R|C| { + LAZY_super } } @@ -198,8 +198,8 @@ EXPECT_ACTUAL_MATCHING: FILE: [ResolvedTo(IMPORTS)] superTypesLoop.kt [ResolvedTo(BODY_RESOLVE)] annotations container public open [ResolvedTo(EXPECT_ACTUAL_MATCHING)] class resolveMe : R|C| { - public [ResolvedTo(STATUS)] [ContainingClassKey=resolveMe] constructor(): R|resolveMe| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=resolveMe] constructor(): R|resolveMe| { + LAZY_super } } @@ -215,9 +215,9 @@ FILE: [ResolvedTo(IMPORTS)] superTypesLoop.kt } } - public open [ResolvedTo(STATUS)] class C : /A> { - public [ResolvedTo(STATUS)] [ContainingClassKey=C] constructor(): R|C| { - LAZY_super + public? open [ResolvedTo(SUPER_TYPES)] class C : /A> { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=C] constructor(): R|C| { + LAZY_super } } @@ -226,8 +226,8 @@ ARGUMENTS_OF_ANNOTATIONS: FILE: [ResolvedTo(IMPORTS)] superTypesLoop.kt [ResolvedTo(BODY_RESOLVE)] annotations container public open [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] class resolveMe : R|C| { - public [ResolvedTo(STATUS)] [ContainingClassKey=resolveMe] constructor(): R|resolveMe| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=resolveMe] constructor(): R|resolveMe| { + LAZY_super } } @@ -243,9 +243,9 @@ FILE: [ResolvedTo(IMPORTS)] superTypesLoop.kt } } - public open [ResolvedTo(STATUS)] class C : /A> { - public [ResolvedTo(STATUS)] [ContainingClassKey=C] constructor(): R|C| { - LAZY_super + public? open [ResolvedTo(SUPER_TYPES)] class C : /A> { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=C] constructor(): R|C| { + LAZY_super } } @@ -254,8 +254,8 @@ CONTRACTS: FILE: [ResolvedTo(IMPORTS)] superTypesLoop.kt [ResolvedTo(BODY_RESOLVE)] annotations container public open [ResolvedTo(CONTRACTS)] class resolveMe : R|C| { - public [ResolvedTo(STATUS)] [ContainingClassKey=resolveMe] constructor(): R|resolveMe| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=resolveMe] constructor(): R|resolveMe| { + LAZY_super } } @@ -271,9 +271,9 @@ FILE: [ResolvedTo(IMPORTS)] superTypesLoop.kt } } - public open [ResolvedTo(STATUS)] class C : /A> { - public [ResolvedTo(STATUS)] [ContainingClassKey=C] constructor(): R|C| { - LAZY_super + public? open [ResolvedTo(SUPER_TYPES)] class C : /A> { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=C] constructor(): R|C| { + LAZY_super } } @@ -282,8 +282,8 @@ IMPLICIT_TYPES_BODY_RESOLVE: FILE: [ResolvedTo(IMPORTS)] superTypesLoop.kt [ResolvedTo(BODY_RESOLVE)] annotations container public open [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] class resolveMe : R|C| { - public [ResolvedTo(STATUS)] [ContainingClassKey=resolveMe] constructor(): R|resolveMe| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=resolveMe] constructor(): R|resolveMe| { + LAZY_super } } @@ -299,9 +299,9 @@ FILE: [ResolvedTo(IMPORTS)] superTypesLoop.kt } } - public open [ResolvedTo(STATUS)] class C : /A> { - public [ResolvedTo(STATUS)] [ContainingClassKey=C] constructor(): R|C| { - LAZY_super + public? open [ResolvedTo(SUPER_TYPES)] class C : /A> { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=C] constructor(): R|C| { + LAZY_super } } @@ -310,8 +310,8 @@ ANNOTATIONS_ARGUMENTS_MAPPING: FILE: [ResolvedTo(IMPORTS)] superTypesLoop.kt [ResolvedTo(BODY_RESOLVE)] annotations container public open [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] class resolveMe : R|C| { - public [ResolvedTo(STATUS)] [ContainingClassKey=resolveMe] constructor(): R|resolveMe| { - LAZY_super + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=resolveMe] constructor(): R|resolveMe| { + LAZY_super } } @@ -327,9 +327,9 @@ FILE: [ResolvedTo(IMPORTS)] superTypesLoop.kt } } - public open [ResolvedTo(STATUS)] class C : /A> { - public [ResolvedTo(STATUS)] [ContainingClassKey=C] constructor(): R|C| { - LAZY_super + public? open [ResolvedTo(SUPER_TYPES)] class C : /A> { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=C] constructor(): R|C| { + LAZY_super } } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/typeParameterOfClass.txt b/analysis/low-level-api-fir/testdata/lazyResolve/typeParameterOfClass.txt index eeb242e0836..16ca3a5c440 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/typeParameterOfClass.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/typeParameterOfClass.txt @@ -74,11 +74,11 @@ STATUS: FILE: [ResolvedTo(IMPORTS)] typeParameterOfClass.kt [ResolvedTo(BODY_RESOLVE)] annotations container public final [ResolvedTo(STATUS)] class MyClass<[ResolvedTo(STATUS)] Type> : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] constructor<[ResolvedTo(STATUS)] Type>(): R|MyClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor<[ResolvedTo(STATUS)] Type>(): R|MyClass| { LAZY_super } - public final [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] t: R|Type|): R|kotlin/Unit| { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] t: Type): R|kotlin/Unit| { LAZY_BLOCK } } @@ -86,11 +86,11 @@ EXPECT_ACTUAL_MATCHING: FILE: [ResolvedTo(IMPORTS)] typeParameterOfClass.kt [ResolvedTo(BODY_RESOLVE)] annotations container public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] class MyClass<[ResolvedTo(EXPECT_ACTUAL_MATCHING)] Type> : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] constructor<[ResolvedTo(EXPECT_ACTUAL_MATCHING)] Type>(): R|MyClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor<[ResolvedTo(EXPECT_ACTUAL_MATCHING)] Type>(): R|MyClass| { LAZY_super } - public final [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] t: R|Type|): R|kotlin/Unit| { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] t: Type): R|kotlin/Unit| { LAZY_BLOCK } } @@ -98,11 +98,11 @@ ARGUMENTS_OF_ANNOTATIONS: FILE: [ResolvedTo(IMPORTS)] typeParameterOfClass.kt [ResolvedTo(BODY_RESOLVE)] annotations container public final [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] class MyClass<[ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] Type> : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] constructor<[ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] Type>(): R|MyClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor<[ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] Type>(): R|MyClass| { LAZY_super } - public final [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] t: R|Type|): R|kotlin/Unit| { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] t: Type): R|kotlin/Unit| { LAZY_BLOCK } } @@ -110,11 +110,11 @@ CONTRACTS: FILE: [ResolvedTo(IMPORTS)] typeParameterOfClass.kt [ResolvedTo(BODY_RESOLVE)] annotations container public final [ResolvedTo(CONTRACTS)] class MyClass<[ResolvedTo(CONTRACTS)] Type> : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] constructor<[ResolvedTo(CONTRACTS)] Type>(): R|MyClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor<[ResolvedTo(CONTRACTS)] Type>(): R|MyClass| { LAZY_super } - public final [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] t: R|Type|): R|kotlin/Unit| { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] t: Type): R|kotlin/Unit| { LAZY_BLOCK } } @@ -122,11 +122,11 @@ IMPLICIT_TYPES_BODY_RESOLVE: FILE: [ResolvedTo(IMPORTS)] typeParameterOfClass.kt [ResolvedTo(BODY_RESOLVE)] annotations container public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] class MyClass<[ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] Type> : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] constructor<[ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] Type>(): R|MyClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor<[ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] Type>(): R|MyClass| { LAZY_super } - public final [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] t: R|Type|): R|kotlin/Unit| { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] t: Type): R|kotlin/Unit| { LAZY_BLOCK } } @@ -134,11 +134,11 @@ ANNOTATIONS_ARGUMENTS_MAPPING: FILE: [ResolvedTo(IMPORTS)] typeParameterOfClass.kt [ResolvedTo(BODY_RESOLVE)] annotations container public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] class MyClass<[ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] Type> : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] constructor<[ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] Type>(): R|MyClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor<[ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] Type>(): R|MyClass| { LAZY_super } - public final [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] t: R|Type|): R|kotlin/Unit| { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] t: Type): R|kotlin/Unit| { LAZY_BLOCK } } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolveTransformer.kt index 9e5bec16ba1..b087fea9828 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolveTransformer.kt @@ -16,10 +16,12 @@ import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.LocalClassesNa import org.jetbrains.kotlin.fir.scopes.FirCompositeScope import org.jetbrains.kotlin.fir.scopes.FirScope import org.jetbrains.kotlin.fir.symbols.impl.FirAnonymousObjectSymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirTypeAliasSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase +import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhaseWithCallableMembers import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.types.coneType import org.jetbrains.kotlin.fir.types.toSymbol @@ -197,7 +199,7 @@ abstract class AbstractFirStatusResolveTransformer( val statusResolver = FirStatusResolver(session, scopeSession) @OptIn(PrivateForInline::class) - protected val containingClass: FirClass? get() = classes.lastOrNull() + val containingClass: FirClass? get() = classes.lastOrNull() protected abstract fun FirDeclaration.needResolveMembers(): Boolean protected abstract fun FirDeclaration.needResolveNestedClassifiers(): Boolean @@ -332,7 +334,11 @@ abstract class AbstractFirStatusResolveTransformer( private fun forceResolveStatusOfCorrespondingClass(typeRef: FirTypeRef) { val superClassSymbol = typeRef.coneType.toSymbol(session) if (isTransformerForLocalDeclarations) { - superClassSymbol?.lazyResolveToPhase(FirResolvePhase.STATUS) + if (superClassSymbol is FirClassSymbol) { + superClassSymbol.lazyResolveToPhaseWithCallableMembers(FirResolvePhase.STATUS) + } else { + superClassSymbol?.lazyResolveToPhase(FirResolvePhase.STATUS) + } } else { superClassSymbol?.lazyResolveToPhase(FirResolvePhase.STATUS.previous) } @@ -413,11 +419,27 @@ abstract class AbstractFirStatusResolveTransformer( override fun transformSimpleFunction( simpleFunction: FirSimpleFunction, - data: FirResolvedDeclarationStatus? + data: FirResolvedDeclarationStatus?, ): FirStatement = whileAnalysing(session, simpleFunction) { - val resolvedStatus = statusResolver.resolveStatus(simpleFunction, containingClass, isLocal = false) + val overriddenFunctions = statusResolver.getOverriddenFunctions(simpleFunction, containingClass) + transformSimpleFunction(simpleFunction, overriddenFunctions, data) + return simpleFunction + } + + fun transformSimpleFunction( + simpleFunction: FirSimpleFunction, + overriddenFunctions: List, + data: FirResolvedDeclarationStatus? = null, + ) { + val resolvedStatus = statusResolver.resolveStatus( + simpleFunction, + containingClass, + isLocal = false, + overriddenFunctions.map { it.status as FirResolvedDeclarationStatus }, + ) + simpleFunction.transformStatus(this, resolvedStatus) - return transformDeclaration(simpleFunction, data) as FirStatement + transformDeclaration(simpleFunction, data) as FirStatement } override fun transformProperty( @@ -425,17 +447,20 @@ abstract class AbstractFirStatusResolveTransformer( data: FirResolvedDeclarationStatus? ): FirStatement = whileAnalysing(session, property) { val overridden = statusResolver.getOverriddenProperties(property, containingClass) + transformProperty(property, overridden) + return property + } - val overriddenProperties = overridden.map { it.status as FirResolvedDeclarationStatus } - - val overriddenSetters = overridden.mapNotNull { + fun transformProperty(property: FirProperty, overriddenProperties: List) { + val overriddenStatuses = overriddenProperties.map { it.status as FirResolvedDeclarationStatus } + val overriddenSetters = overriddenProperties.mapNotNull { val setter = it.setter ?: return@mapNotNull null setter.status as FirResolvedDeclarationStatus } property.transformStatus( this, - statusResolver.resolveStatus(property, containingClass, false, overriddenProperties) + statusResolver.resolveStatus(property, containingClass, false, overriddenStatuses) ) property.getter?.let { transformPropertyAccessor(it, property) } @@ -447,8 +472,6 @@ abstract class AbstractFirStatusResolveTransformer( statusResolver.resolveStatus(it, containingClass, property, isLocal = false) ) } - - return property } override fun transformField( diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolver.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolver.kt index 537ee000053..0b4e4035070 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolver.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolver.kt @@ -120,15 +120,15 @@ class FirStatusResolver( return resolveStatus(property, status, containingClass, null, isLocal, statuses) } - private fun getOverriddenStatuses( + fun getOverriddenFunctions( function: FirSimpleFunction, containingClass: FirClass? - ): List { + ): List { if (containingClass == null) { return emptyList() } - return buildList { + return buildList { val scope = containingClass.unsubstitutedScope( session, scopeSession, @@ -147,17 +147,23 @@ class FirStatusResolver( } ProcessorAction.NEXT } - }.map { - it.status as FirResolvedDeclarationStatus } } - fun resolveStatus(function: FirSimpleFunction, containingClass: FirClass?, isLocal: Boolean): FirResolvedDeclarationStatus { + fun resolveStatus( + function: FirSimpleFunction, + containingClass: FirClass?, + isLocal: Boolean, + overriddenStatuses: List? = null, + ): FirResolvedDeclarationStatus { val status = function.applyExtensionTransformers { transformStatus(it, function, containingClass?.symbol, isLocal) } - val overriddenStatuses = getOverriddenStatuses(function, containingClass) - return resolveStatus(function, status, containingClass, null, isLocal, overriddenStatuses) + + val statuses = overriddenStatuses + ?: getOverriddenFunctions(function, containingClass).map { it.status as FirResolvedDeclarationStatus } + + return resolveStatus(function, status, containingClass, null, isLocal, statuses) } fun resolveStatus(