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(