diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/element/builder/FirElementBuilder.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/element/builder/FirElementBuilder.kt index 72c2fcc919e..d9903b43bc3 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/element/builder/FirElementBuilder.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/element/builder/FirElementBuilder.kt @@ -97,6 +97,10 @@ internal class FirElementBuilder( private fun KtDeclaration.isPartOf(callableDeclaration: KtCallableDeclaration): Boolean = when (this) { is KtPropertyAccessor -> this.property == callableDeclaration + is KtParameter -> { + val ownerFunction = ownerFunction + ownerFunction == callableDeclaration || ownerFunction?.isPartOf(callableDeclaration) == true + } else -> false } @@ -132,6 +136,11 @@ internal fun PsiElement.getNonLocalContainingOrThisDeclaration(predicate: (KtDec propose(parent) } } + is KtParameter -> { + if (predicate(parent)) { + propose(parent) + } + } is KtNamedDeclaration -> { val isKindApplicable = when (parent) { is KtClassOrObject -> !parent.isObjectLiteral() diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/file/structure/FileStructure.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/file/structure/FileStructure.kt index f8eecb1be40..a95e04ba987 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/file/structure/FileStructure.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/file/structure/FileStructure.kt @@ -73,6 +73,7 @@ internal class FileStructure private constructor( } container is KtPropertyAccessor -> container.property + container is KtParameter -> container.ownerFunction else -> null } diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/declarationUtils.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/declarationUtils.kt index 63f2342f1cb..4b32cae7c7e 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/declarationUtils.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/declarationUtils.kt @@ -18,6 +18,7 @@ import org.jetbrains.kotlin.fir.resolve.toSymbol import org.jetbrains.kotlin.fir.types.ConeLookupTagBasedType import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject +import org.jetbrains.kotlin.psi.psiUtil.parameterIndex /** * 'Non-local' stands for not local classes/functions/etc. @@ -123,6 +124,18 @@ private fun KtDeclaration.findSourceNonLocalFirDeclarationByProvider( firPropertyDeclaration.setter } } + this is KtParameter -> { + val ownerFunction = ownerFunction + ?: errorWithFirSpecificEntries("Containing function should be not null for KtParameter", psi = this) + + val firFunctionDeclaration = ownerFunction.findSourceNonLocalFirDeclarationByProvider( + firFileBuilder, + provider, + containerFirFile, + ) as FirFunction + + firFunctionDeclaration.valueParameters[parameterIndex()] + } else -> errorWithFirSpecificEntries("Invalid container", psi = this) } return candidate?.takeIf { it.realPsi == this } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/functions/functionParameter.txt b/analysis/low-level-api-fir/testdata/lazyResolve/functions/functionParameter.txt index 3a2af4290fe..060aef380fe 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/functions/functionParameter.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/functions/functionParameter.txt @@ -1,84 +1,66 @@ RAW_FIR: -FILE: [ResolvedTo(IMPORTS)] functionParameter.kt +FILE: [ResolvedTo(RAW_FIR)] functionParameter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] param: R|kotlin/Int|): R|kotlin/String| { - ^foo String(boo) - } + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] param: Int): { LAZY_BLOCK } IMPORTS: FILE: [ResolvedTo(IMPORTS)] functionParameter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] param: R|kotlin/Int|): R|kotlin/String| { - ^foo String(boo) - } + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] param: Int): { LAZY_BLOCK } COMPILER_REQUIRED_ANNOTATIONS: FILE: [ResolvedTo(IMPORTS)] functionParameter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] param: R|kotlin/Int|): R|kotlin/String| { - ^foo String(boo) - } + public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] fun foo([ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] param: Int): { LAZY_BLOCK } COMPANION_GENERATION: FILE: [ResolvedTo(IMPORTS)] functionParameter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] param: R|kotlin/Int|): R|kotlin/String| { - ^foo String(boo) - } + public? final? [ResolvedTo(COMPANION_GENERATION)] fun foo([ResolvedTo(COMPANION_GENERATION)] param: Int): { LAZY_BLOCK } SUPER_TYPES: FILE: [ResolvedTo(IMPORTS)] functionParameter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] param: R|kotlin/Int|): R|kotlin/String| { - ^foo String(boo) - } + public? final? [ResolvedTo(SUPER_TYPES)] fun foo([ResolvedTo(SUPER_TYPES)] param: Int): { LAZY_BLOCK } TYPES: FILE: [ResolvedTo(IMPORTS)] functionParameter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] param: R|kotlin/Int|): R|kotlin/String| { - ^foo String(boo) - } + public? final? [ResolvedTo(TYPES)] fun foo([ResolvedTo(TYPES)] param: R|kotlin/Int|): { LAZY_BLOCK } STATUS: FILE: [ResolvedTo(IMPORTS)] functionParameter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] param: R|kotlin/Int|): R|kotlin/String| { - ^foo String(boo) - } + public final [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] param: R|kotlin/Int|): { LAZY_BLOCK } EXPECT_ACTUAL_MATCHING: FILE: [ResolvedTo(IMPORTS)] functionParameter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] param: R|kotlin/Int|): R|kotlin/String| { - ^foo String(boo) - } + public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] fun foo([ResolvedTo(EXPECT_ACTUAL_MATCHING)] param: R|kotlin/Int|): { LAZY_BLOCK } ARGUMENTS_OF_ANNOTATIONS: FILE: [ResolvedTo(IMPORTS)] functionParameter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] param: R|kotlin/Int|): R|kotlin/String| { - ^foo String(boo) - } + public final [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] fun foo([ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] param: R|kotlin/Int|): { LAZY_BLOCK } CONTRACTS: FILE: [ResolvedTo(IMPORTS)] functionParameter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] param: R|kotlin/Int|): R|kotlin/String| { + public final [ResolvedTo(CONTRACTS)] fun foo([ResolvedTo(CONTRACTS)] param: R|kotlin/Int|): { ^foo String(boo) } IMPLICIT_TYPES_BODY_RESOLVE: FILE: [ResolvedTo(IMPORTS)] functionParameter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] param: R|kotlin/Int|): R|kotlin/String| { + public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun foo([ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] param: R|kotlin/Int|): R|kotlin/String| { ^foo String(boo) } ANNOTATIONS_ARGUMENTS_MAPPING: FILE: [ResolvedTo(IMPORTS)] functionParameter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] param: R|kotlin/Int|): R|kotlin/String| { + public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] fun foo([ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] param: R|kotlin/Int|): R|kotlin/String| { ^foo String(boo) } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/parameterOfNonLocalSetter.txt b/analysis/low-level-api-fir/testdata/lazyResolve/parameterOfNonLocalSetter.txt index e22cd121669..470fb41e723 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/parameterOfNonLocalSetter.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/parameterOfNonLocalSetter.txt @@ -1,96 +1,84 @@ RAW_FIR: -FILE: [ResolvedTo(IMPORTS)] parameterOfNonLocalSetter.kt +FILE: [ResolvedTo(RAW_FIR)] parameterOfNonLocalSetter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(STATUS)] class X : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=X] constructor(): R|X| { + public? final? [ResolvedTo(RAW_FIR)] class X : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=X] constructor(): R|X| { LAZY_super } - public final [ResolvedTo(BODY_RESOLVE)] var x: R|kotlin/Int| = Int(2) - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=X] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=X] set([ResolvedTo(BODY_RESOLVE)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } + public? final? [ResolvedTo(RAW_FIR)] var x: Int = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=X] get(): Int + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=X] set([ResolvedTo(RAW_FIR)] resolveMe: Int): R|kotlin/Unit| { LAZY_BLOCK } } IMPORTS: FILE: [ResolvedTo(IMPORTS)] parameterOfNonLocalSetter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(STATUS)] class X : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=X] constructor(): R|X| { + public? final? [ResolvedTo(RAW_FIR)] class X : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=X] constructor(): R|X| { LAZY_super } - public final [ResolvedTo(BODY_RESOLVE)] var x: R|kotlin/Int| = Int(2) - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=X] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=X] set([ResolvedTo(BODY_RESOLVE)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } + public? final? [ResolvedTo(RAW_FIR)] var x: Int = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=X] get(): Int + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=X] set([ResolvedTo(RAW_FIR)] resolveMe: Int): R|kotlin/Unit| { LAZY_BLOCK } } COMPILER_REQUIRED_ANNOTATIONS: FILE: [ResolvedTo(IMPORTS)] parameterOfNonLocalSetter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(STATUS)] class X : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=X] constructor(): R|X| { + public? final? [ResolvedTo(RAW_FIR)] class X : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=X] constructor(): R|X| { LAZY_super } - public final [ResolvedTo(BODY_RESOLVE)] var x: R|kotlin/Int| = Int(2) - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=X] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=X] set([ResolvedTo(BODY_RESOLVE)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } + public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] var x: Int = LAZY_EXPRESSION + public? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] [ContainingClassKey=X] get(): Int + public? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] [ContainingClassKey=X] set([ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] resolveMe: Int): R|kotlin/Unit| { LAZY_BLOCK } } COMPANION_GENERATION: FILE: [ResolvedTo(IMPORTS)] parameterOfNonLocalSetter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(STATUS)] class X : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=X] constructor(): R|X| { + public? final? [ResolvedTo(RAW_FIR)] class X : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=X] constructor(): R|X| { LAZY_super } - public final [ResolvedTo(BODY_RESOLVE)] var x: R|kotlin/Int| = Int(2) - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=X] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=X] set([ResolvedTo(BODY_RESOLVE)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } + public? final? [ResolvedTo(COMPANION_GENERATION)] var x: Int = LAZY_EXPRESSION + public? [ResolvedTo(COMPANION_GENERATION)] [ContainingClassKey=X] get(): Int + public? [ResolvedTo(COMPANION_GENERATION)] [ContainingClassKey=X] set([ResolvedTo(COMPANION_GENERATION)] resolveMe: Int): R|kotlin/Unit| { LAZY_BLOCK } } SUPER_TYPES: FILE: [ResolvedTo(IMPORTS)] parameterOfNonLocalSetter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(STATUS)] class X : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=X] constructor(): R|X| { + public? final? [ResolvedTo(SUPER_TYPES)] class X : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=X] constructor(): R|X| { LAZY_super } - public final [ResolvedTo(BODY_RESOLVE)] var x: R|kotlin/Int| = Int(2) - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=X] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=X] set([ResolvedTo(BODY_RESOLVE)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } + public? final? [ResolvedTo(SUPER_TYPES)] var x: Int = LAZY_EXPRESSION + public? [ResolvedTo(SUPER_TYPES)] [ContainingClassKey=X] get(): Int + public? [ResolvedTo(SUPER_TYPES)] [ContainingClassKey=X] set([ResolvedTo(SUPER_TYPES)] resolveMe: Int): R|kotlin/Unit| { LAZY_BLOCK } } TYPES: FILE: [ResolvedTo(IMPORTS)] parameterOfNonLocalSetter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(STATUS)] class X : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=X] constructor(): R|X| { + public? final? [ResolvedTo(TYPES)] class X : R|kotlin/Any| { + public? [ResolvedTo(TYPES)] [ContainingClassKey=X] constructor(): R|X| { LAZY_super } - public final [ResolvedTo(BODY_RESOLVE)] var x: R|kotlin/Int| = Int(2) - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=X] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=X] set([ResolvedTo(BODY_RESOLVE)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } + public? final? [ResolvedTo(TYPES)] var x: R|kotlin/Int| = LAZY_EXPRESSION + public? [ResolvedTo(TYPES)] [ContainingClassKey=X] get(): R|kotlin/Int| + public? [ResolvedTo(TYPES)] [ContainingClassKey=X] set([ResolvedTo(TYPES)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { LAZY_BLOCK } } @@ -102,11 +90,9 @@ FILE: [ResolvedTo(IMPORTS)] parameterOfNonLocalSetter.kt LAZY_super } - public final [ResolvedTo(BODY_RESOLVE)] var x: R|kotlin/Int| = Int(2) - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=X] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=X] set([ResolvedTo(BODY_RESOLVE)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } + public final [ResolvedTo(STATUS)] var x: R|kotlin/Int| = LAZY_EXPRESSION + public [ResolvedTo(STATUS)] [ContainingClassKey=X] get(): R|kotlin/Int| + public [ResolvedTo(STATUS)] [ContainingClassKey=X] set([ResolvedTo(STATUS)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { LAZY_BLOCK } } @@ -118,11 +104,9 @@ FILE: [ResolvedTo(IMPORTS)] parameterOfNonLocalSetter.kt LAZY_super } - public final [ResolvedTo(BODY_RESOLVE)] var x: R|kotlin/Int| = Int(2) - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=X] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=X] set([ResolvedTo(BODY_RESOLVE)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } + public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] var x: R|kotlin/Int| = LAZY_EXPRESSION + public [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [ContainingClassKey=X] get(): R|kotlin/Int| + public [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [ContainingClassKey=X] set([ResolvedTo(EXPECT_ACTUAL_MATCHING)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { LAZY_BLOCK } } @@ -134,11 +118,9 @@ FILE: [ResolvedTo(IMPORTS)] parameterOfNonLocalSetter.kt LAZY_super } - public final [ResolvedTo(BODY_RESOLVE)] var x: R|kotlin/Int| = Int(2) - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=X] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=X] set([ResolvedTo(BODY_RESOLVE)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } + public final [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] var x: R|kotlin/Int| = LAZY_EXPRESSION + public [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] [ContainingClassKey=X] get(): R|kotlin/Int| + public [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] [ContainingClassKey=X] set([ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { LAZY_BLOCK } } @@ -150,10 +132,10 @@ FILE: [ResolvedTo(IMPORTS)] parameterOfNonLocalSetter.kt LAZY_super } - public final [ResolvedTo(BODY_RESOLVE)] var x: R|kotlin/Int| = Int(2) - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=X] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=X] set([ResolvedTo(BODY_RESOLVE)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| + public final [ResolvedTo(CONTRACTS)] var x: R|kotlin/Int| = IntegerLiteral(2) + public [ResolvedTo(CONTRACTS)] [ContainingClassKey=X] get(): R|kotlin/Int| + public [ResolvedTo(CONTRACTS)] [ContainingClassKey=X] set([ResolvedTo(CONTRACTS)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { + ^ Unit# } } @@ -166,10 +148,10 @@ FILE: [ResolvedTo(IMPORTS)] parameterOfNonLocalSetter.kt LAZY_super } - public final [ResolvedTo(BODY_RESOLVE)] var x: R|kotlin/Int| = Int(2) - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=X] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=X] set([ResolvedTo(BODY_RESOLVE)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| + public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] var x: R|kotlin/Int| = IntegerLiteral(2) + public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=X] get(): R|kotlin/Int| + public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=X] set([ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { + ^ Unit# } } @@ -182,10 +164,10 @@ FILE: [ResolvedTo(IMPORTS)] parameterOfNonLocalSetter.kt LAZY_super } - public final [ResolvedTo(BODY_RESOLVE)] var x: R|kotlin/Int| = Int(2) - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=X] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=X] set([ResolvedTo(BODY_RESOLVE)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| + public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] var x: R|kotlin/Int| = IntegerLiteral(2) + public [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] [ContainingClassKey=X] get(): R|kotlin/Int| + public [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] [ContainingClassKey=X] set([ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { + ^ Unit# } } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/primaryConstructorParameter.txt b/analysis/low-level-api-fir/testdata/lazyResolve/primaryConstructorParameter.txt index f2a7be0b0bc..9407f86d3b5 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/primaryConstructorParameter.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/primaryConstructorParameter.txt @@ -1,72 +1,72 @@ RAW_FIR: -FILE: [ResolvedTo(IMPORTS)] primaryConstructorParameter.kt +FILE: [ResolvedTo(RAW_FIR)] primaryConstructorParameter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] a: R|kotlin/Boolean|, [ResolvedTo(BODY_RESOLVE)] param: R|kotlin/Int| = Int(1), [ResolvedTo(BODY_RESOLVE)] c: R|kotlin/Long|): R|A| { - super() + public? final? [ResolvedTo(RAW_FIR)] class A : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] constructor([ResolvedTo(RAW_FIR)] a: Boolean, [ResolvedTo(RAW_FIR)] param: Int = LAZY_EXPRESSION, [ResolvedTo(RAW_FIR)] c: Long): R|A| { + LAZY_super } - public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo(): { LAZY_BLOCK } } IMPORTS: FILE: [ResolvedTo(IMPORTS)] primaryConstructorParameter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] a: R|kotlin/Boolean|, [ResolvedTo(BODY_RESOLVE)] param: R|kotlin/Int| = Int(1), [ResolvedTo(BODY_RESOLVE)] c: R|kotlin/Long|): R|A| { - super() + public? final? [ResolvedTo(RAW_FIR)] class A : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] constructor([ResolvedTo(RAW_FIR)] a: Boolean, [ResolvedTo(RAW_FIR)] param: Int = LAZY_EXPRESSION, [ResolvedTo(RAW_FIR)] c: Long): R|A| { + LAZY_super } - public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo(): { LAZY_BLOCK } } COMPILER_REQUIRED_ANNOTATIONS: FILE: [ResolvedTo(IMPORTS)] primaryConstructorParameter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] a: R|kotlin/Boolean|, [ResolvedTo(BODY_RESOLVE)] param: R|kotlin/Int| = Int(1), [ResolvedTo(BODY_RESOLVE)] c: R|kotlin/Long|): R|A| { - super() + public? final? [ResolvedTo(RAW_FIR)] class A : R|kotlin/Any| { + public? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] [ContainingClassKey=A] constructor([ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] a: Boolean, [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] param: Int = LAZY_EXPRESSION, [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] c: Long): R|A| { + LAZY_super } - public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo(): { LAZY_BLOCK } } COMPANION_GENERATION: FILE: [ResolvedTo(IMPORTS)] primaryConstructorParameter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] a: R|kotlin/Boolean|, [ResolvedTo(BODY_RESOLVE)] param: R|kotlin/Int| = Int(1), [ResolvedTo(BODY_RESOLVE)] c: R|kotlin/Long|): R|A| { - super() + public? final? [ResolvedTo(RAW_FIR)] class A : R|kotlin/Any| { + public? [ResolvedTo(COMPANION_GENERATION)] [ContainingClassKey=A] constructor([ResolvedTo(COMPANION_GENERATION)] a: Boolean, [ResolvedTo(COMPANION_GENERATION)] param: Int = LAZY_EXPRESSION, [ResolvedTo(COMPANION_GENERATION)] c: Long): R|A| { + LAZY_super } - public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo(): { LAZY_BLOCK } } SUPER_TYPES: FILE: [ResolvedTo(IMPORTS)] primaryConstructorParameter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] a: R|kotlin/Boolean|, [ResolvedTo(BODY_RESOLVE)] param: R|kotlin/Int| = Int(1), [ResolvedTo(BODY_RESOLVE)] c: R|kotlin/Long|): R|A| { - super() + public? final? [ResolvedTo(SUPER_TYPES)] class A : R|kotlin/Any| { + public? [ResolvedTo(SUPER_TYPES)] [ContainingClassKey=A] constructor([ResolvedTo(SUPER_TYPES)] a: Boolean, [ResolvedTo(SUPER_TYPES)] param: Int = LAZY_EXPRESSION, [ResolvedTo(SUPER_TYPES)] c: Long): R|A| { + LAZY_super } - public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo(): { LAZY_BLOCK } } TYPES: FILE: [ResolvedTo(IMPORTS)] primaryConstructorParameter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] a: R|kotlin/Boolean|, [ResolvedTo(BODY_RESOLVE)] param: R|kotlin/Int| = Int(1), [ResolvedTo(BODY_RESOLVE)] c: R|kotlin/Long|): R|A| { - super() + public? final? [ResolvedTo(TYPES)] class A : R|kotlin/Any| { + public? [ResolvedTo(TYPES)] [ContainingClassKey=A] constructor([ResolvedTo(TYPES)] a: R|kotlin/Boolean|, [ResolvedTo(TYPES)] param: R|kotlin/Int| = LAZY_EXPRESSION, [ResolvedTo(TYPES)] c: R|kotlin/Long|): R|A| { + LAZY_super } - public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo(): { LAZY_BLOCK } } @@ -74,8 +74,8 @@ STATUS: FILE: [ResolvedTo(IMPORTS)] primaryConstructorParameter.kt [ResolvedTo(RAW_FIR)] annotations container public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] a: R|kotlin/Boolean|, [ResolvedTo(BODY_RESOLVE)] param: R|kotlin/Int| = Int(1), [ResolvedTo(BODY_RESOLVE)] c: R|kotlin/Long|): R|A| { - super() + public [ResolvedTo(STATUS)] [ContainingClassKey=A] constructor([ResolvedTo(STATUS)] a: R|kotlin/Boolean|, [ResolvedTo(STATUS)] param: R|kotlin/Int| = LAZY_EXPRESSION, [ResolvedTo(STATUS)] c: R|kotlin/Long|): R|A| { + LAZY_super } public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } @@ -86,8 +86,8 @@ EXPECT_ACTUAL_MATCHING: FILE: [ResolvedTo(IMPORTS)] primaryConstructorParameter.kt [ResolvedTo(RAW_FIR)] annotations container public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] a: R|kotlin/Boolean|, [ResolvedTo(BODY_RESOLVE)] param: R|kotlin/Int| = Int(1), [ResolvedTo(BODY_RESOLVE)] c: R|kotlin/Long|): R|A| { - super() + public [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [ContainingClassKey=A] constructor([ResolvedTo(EXPECT_ACTUAL_MATCHING)] a: R|kotlin/Boolean|, [ResolvedTo(EXPECT_ACTUAL_MATCHING)] param: R|kotlin/Int| = LAZY_EXPRESSION, [ResolvedTo(EXPECT_ACTUAL_MATCHING)] c: R|kotlin/Long|): R|A| { + LAZY_super } public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } @@ -98,8 +98,8 @@ ARGUMENTS_OF_ANNOTATIONS: FILE: [ResolvedTo(IMPORTS)] primaryConstructorParameter.kt [ResolvedTo(RAW_FIR)] annotations container public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] a: R|kotlin/Boolean|, [ResolvedTo(BODY_RESOLVE)] param: R|kotlin/Int| = Int(1), [ResolvedTo(BODY_RESOLVE)] c: R|kotlin/Long|): R|A| { - super() + public [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] [ContainingClassKey=A] constructor([ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] a: R|kotlin/Boolean|, [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] param: R|kotlin/Int| = LAZY_EXPRESSION, [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] c: R|kotlin/Long|): R|A| { + LAZY_super } public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } @@ -110,7 +110,7 @@ CONTRACTS: FILE: [ResolvedTo(IMPORTS)] primaryConstructorParameter.kt [ResolvedTo(RAW_FIR)] annotations container public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] a: R|kotlin/Boolean|, [ResolvedTo(BODY_RESOLVE)] param: R|kotlin/Int| = Int(1), [ResolvedTo(BODY_RESOLVE)] c: R|kotlin/Long|): R|A| { + public [ResolvedTo(CONTRACTS)] [ContainingClassKey=A] constructor([ResolvedTo(CONTRACTS)] a: R|kotlin/Boolean|, [ResolvedTo(CONTRACTS)] param: R|kotlin/Int| = IntegerLiteral(1), [ResolvedTo(CONTRACTS)] c: R|kotlin/Long|): R|A| { super() } @@ -122,7 +122,7 @@ IMPLICIT_TYPES_BODY_RESOLVE: FILE: [ResolvedTo(IMPORTS)] primaryConstructorParameter.kt [ResolvedTo(RAW_FIR)] annotations container public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] a: R|kotlin/Boolean|, [ResolvedTo(BODY_RESOLVE)] param: R|kotlin/Int| = Int(1), [ResolvedTo(BODY_RESOLVE)] c: R|kotlin/Long|): R|A| { + public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] a: R|kotlin/Boolean|, [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] param: R|kotlin/Int| = IntegerLiteral(1), [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] c: R|kotlin/Long|): R|A| { super() } @@ -134,7 +134,7 @@ ANNOTATIONS_ARGUMENTS_MAPPING: FILE: [ResolvedTo(IMPORTS)] primaryConstructorParameter.kt [ResolvedTo(RAW_FIR)] annotations container public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] a: R|kotlin/Boolean|, [ResolvedTo(BODY_RESOLVE)] param: R|kotlin/Int| = Int(1), [ResolvedTo(BODY_RESOLVE)] c: R|kotlin/Long|): R|A| { + public [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] [ContainingClassKey=A] constructor([ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] a: R|kotlin/Boolean|, [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] param: R|kotlin/Int| = IntegerLiteral(1), [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] c: R|kotlin/Long|): R|A| { super() } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/primaryConstructorProperty.txt b/analysis/low-level-api-fir/testdata/lazyResolve/primaryConstructorProperty.txt index 158604a1460..17a8dfb5455 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/primaryConstructorProperty.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/primaryConstructorProperty.txt @@ -1,90 +1,90 @@ RAW_FIR: -FILE: [ResolvedTo(IMPORTS)] primaryConstructorProperty.kt +FILE: [ResolvedTo(RAW_FIR)] primaryConstructorProperty.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] a: R|kotlin/Boolean|, [ResolvedTo(BODY_RESOLVE)] [CorrespondingProperty=/A.prop] prop: R|kotlin/Int| = Int(42)): R|A| { - super() + public? final? [ResolvedTo(RAW_FIR)] class A : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] constructor([ResolvedTo(RAW_FIR)] a: Boolean, [ResolvedTo(RAW_FIR)] [CorrespondingProperty=/A.prop] prop: Int = LAZY_EXPRESSION): R|A| { + LAZY_super } - public final [ResolvedTo(BODY_RESOLVE)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] get(): R|kotlin/Int| + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val prop: Int = R|/prop| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] get(): Int - public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo(): { LAZY_BLOCK } } IMPORTS: FILE: [ResolvedTo(IMPORTS)] primaryConstructorProperty.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] a: R|kotlin/Boolean|, [ResolvedTo(BODY_RESOLVE)] [CorrespondingProperty=/A.prop] prop: R|kotlin/Int| = Int(42)): R|A| { - super() + public? final? [ResolvedTo(RAW_FIR)] class A : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] constructor([ResolvedTo(RAW_FIR)] a: Boolean, [ResolvedTo(RAW_FIR)] [CorrespondingProperty=/A.prop] prop: Int = LAZY_EXPRESSION): R|A| { + LAZY_super } - public final [ResolvedTo(BODY_RESOLVE)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] get(): R|kotlin/Int| + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val prop: Int = R|/prop| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] get(): Int - public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo(): { LAZY_BLOCK } } COMPILER_REQUIRED_ANNOTATIONS: FILE: [ResolvedTo(IMPORTS)] primaryConstructorProperty.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] a: R|kotlin/Boolean|, [ResolvedTo(BODY_RESOLVE)] [CorrespondingProperty=/A.prop] prop: R|kotlin/Int| = Int(42)): R|A| { - super() + public? final? [ResolvedTo(RAW_FIR)] class A : R|kotlin/Any| { + public? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] [ContainingClassKey=A] constructor([ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] a: Boolean, [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] [CorrespondingProperty=/A.prop] prop: Int = LAZY_EXPRESSION): R|A| { + LAZY_super } - public final [ResolvedTo(BODY_RESOLVE)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] get(): R|kotlin/Int| + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val prop: Int = R|/prop| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] get(): Int - public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo(): { LAZY_BLOCK } } COMPANION_GENERATION: FILE: [ResolvedTo(IMPORTS)] primaryConstructorProperty.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] a: R|kotlin/Boolean|, [ResolvedTo(BODY_RESOLVE)] [CorrespondingProperty=/A.prop] prop: R|kotlin/Int| = Int(42)): R|A| { - super() + public? final? [ResolvedTo(RAW_FIR)] class A : R|kotlin/Any| { + public? [ResolvedTo(COMPANION_GENERATION)] [ContainingClassKey=A] constructor([ResolvedTo(COMPANION_GENERATION)] a: Boolean, [ResolvedTo(COMPANION_GENERATION)] [CorrespondingProperty=/A.prop] prop: Int = LAZY_EXPRESSION): R|A| { + LAZY_super } - public final [ResolvedTo(BODY_RESOLVE)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] get(): R|kotlin/Int| + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val prop: Int = R|/prop| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] get(): Int - public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo(): { LAZY_BLOCK } } SUPER_TYPES: FILE: [ResolvedTo(IMPORTS)] primaryConstructorProperty.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] a: R|kotlin/Boolean|, [ResolvedTo(BODY_RESOLVE)] [CorrespondingProperty=/A.prop] prop: R|kotlin/Int| = Int(42)): R|A| { - super() + public? final? [ResolvedTo(SUPER_TYPES)] class A : R|kotlin/Any| { + public? [ResolvedTo(SUPER_TYPES)] [ContainingClassKey=A] constructor([ResolvedTo(SUPER_TYPES)] a: Boolean, [ResolvedTo(SUPER_TYPES)] [CorrespondingProperty=/A.prop] prop: Int = LAZY_EXPRESSION): R|A| { + LAZY_super } - public final [ResolvedTo(BODY_RESOLVE)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] get(): R|kotlin/Int| + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val prop: Int = R|/prop| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] get(): Int - public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo(): { LAZY_BLOCK } } TYPES: FILE: [ResolvedTo(IMPORTS)] primaryConstructorProperty.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] a: R|kotlin/Boolean|, [ResolvedTo(BODY_RESOLVE)] [CorrespondingProperty=/A.prop] prop: R|kotlin/Int| = Int(42)): R|A| { - super() + public? final? [ResolvedTo(TYPES)] class A : R|kotlin/Any| { + public? [ResolvedTo(TYPES)] [ContainingClassKey=A] constructor([ResolvedTo(TYPES)] a: R|kotlin/Boolean|, [ResolvedTo(TYPES)] [CorrespondingProperty=/A.prop] prop: R|kotlin/Int| = LAZY_EXPRESSION): R|A| { + LAZY_super } - public final [ResolvedTo(BODY_RESOLVE)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] get(): R|kotlin/Int| + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val prop: Int = R|/prop| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] get(): Int - public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo(): { LAZY_BLOCK } } @@ -92,12 +92,12 @@ STATUS: FILE: [ResolvedTo(IMPORTS)] primaryConstructorProperty.kt [ResolvedTo(RAW_FIR)] annotations container public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] a: R|kotlin/Boolean|, [ResolvedTo(BODY_RESOLVE)] [CorrespondingProperty=/A.prop] prop: R|kotlin/Int| = Int(42)): R|A| { - super() + public [ResolvedTo(STATUS)] [ContainingClassKey=A] constructor([ResolvedTo(STATUS)] a: R|kotlin/Boolean|, [ResolvedTo(STATUS)] [CorrespondingProperty=/A.prop] prop: R|kotlin/Int| = LAZY_EXPRESSION): R|A| { + LAZY_super } - public final [ResolvedTo(BODY_RESOLVE)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] get(): R|kotlin/Int| + public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| + public [ResolvedTo(STATUS)] [ContainingClassKey=A] get(): R|kotlin/Int| public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } @@ -107,12 +107,12 @@ EXPECT_ACTUAL_MATCHING: FILE: [ResolvedTo(IMPORTS)] primaryConstructorProperty.kt [ResolvedTo(RAW_FIR)] annotations container public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] a: R|kotlin/Boolean|, [ResolvedTo(BODY_RESOLVE)] [CorrespondingProperty=/A.prop] prop: R|kotlin/Int| = Int(42)): R|A| { - super() + public [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [ContainingClassKey=A] constructor([ResolvedTo(EXPECT_ACTUAL_MATCHING)] a: R|kotlin/Boolean|, [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [CorrespondingProperty=/A.prop] prop: R|kotlin/Int| = LAZY_EXPRESSION): R|A| { + LAZY_super } - public final [ResolvedTo(BODY_RESOLVE)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] get(): R|kotlin/Int| + public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| + public [ResolvedTo(STATUS)] [ContainingClassKey=A] get(): R|kotlin/Int| public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } @@ -122,12 +122,12 @@ ARGUMENTS_OF_ANNOTATIONS: FILE: [ResolvedTo(IMPORTS)] primaryConstructorProperty.kt [ResolvedTo(RAW_FIR)] annotations container public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] a: R|kotlin/Boolean|, [ResolvedTo(BODY_RESOLVE)] [CorrespondingProperty=/A.prop] prop: R|kotlin/Int| = Int(42)): R|A| { - super() + public [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] [ContainingClassKey=A] constructor([ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] a: R|kotlin/Boolean|, [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] [CorrespondingProperty=/A.prop] prop: R|kotlin/Int| = LAZY_EXPRESSION): R|A| { + LAZY_super } - public final [ResolvedTo(BODY_RESOLVE)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] get(): R|kotlin/Int| + public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| + public [ResolvedTo(STATUS)] [ContainingClassKey=A] get(): R|kotlin/Int| public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } @@ -137,12 +137,12 @@ CONTRACTS: FILE: [ResolvedTo(IMPORTS)] primaryConstructorProperty.kt [ResolvedTo(RAW_FIR)] annotations container public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] a: R|kotlin/Boolean|, [ResolvedTo(BODY_RESOLVE)] [CorrespondingProperty=/A.prop] prop: R|kotlin/Int| = Int(42)): R|A| { + public [ResolvedTo(CONTRACTS)] [ContainingClassKey=A] constructor([ResolvedTo(CONTRACTS)] a: R|kotlin/Boolean|, [ResolvedTo(CONTRACTS)] [CorrespondingProperty=/A.prop] prop: R|kotlin/Int| = IntegerLiteral(42)): R|A| { super() } - public final [ResolvedTo(BODY_RESOLVE)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] get(): R|kotlin/Int| + public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| + public [ResolvedTo(STATUS)] [ContainingClassKey=A] get(): R|kotlin/Int| public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } @@ -152,12 +152,12 @@ IMPLICIT_TYPES_BODY_RESOLVE: FILE: [ResolvedTo(IMPORTS)] primaryConstructorProperty.kt [ResolvedTo(RAW_FIR)] annotations container public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] a: R|kotlin/Boolean|, [ResolvedTo(BODY_RESOLVE)] [CorrespondingProperty=/A.prop] prop: R|kotlin/Int| = Int(42)): R|A| { + public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] a: R|kotlin/Boolean|, [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [CorrespondingProperty=/A.prop] prop: R|kotlin/Int| = IntegerLiteral(42)): R|A| { super() } - public final [ResolvedTo(BODY_RESOLVE)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] get(): R|kotlin/Int| + public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| + public [ResolvedTo(STATUS)] [ContainingClassKey=A] get(): R|kotlin/Int| public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } @@ -167,12 +167,12 @@ ANNOTATIONS_ARGUMENTS_MAPPING: FILE: [ResolvedTo(IMPORTS)] primaryConstructorProperty.kt [ResolvedTo(RAW_FIR)] annotations container public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] a: R|kotlin/Boolean|, [ResolvedTo(BODY_RESOLVE)] [CorrespondingProperty=/A.prop] prop: R|kotlin/Int| = Int(42)): R|A| { + public [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] [ContainingClassKey=A] constructor([ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] a: R|kotlin/Boolean|, [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] [CorrespondingProperty=/A.prop] prop: R|kotlin/Int| = IntegerLiteral(42)): R|A| { super() } - public final [ResolvedTo(BODY_RESOLVE)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] get(): R|kotlin/Int| + public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| + public [ResolvedTo(STATUS)] [ContainingClassKey=A] get(): R|kotlin/Int| public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } @@ -186,8 +186,8 @@ FILE: [ResolvedTo(IMPORTS)] primaryConstructorProperty.kt super() } - public final [ResolvedTo(BODY_RESOLVE)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] get(): R|kotlin/Int| + public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| + public [ResolvedTo(STATUS)] [ContainingClassKey=A] get(): R|kotlin/Int| public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/secondaryConstructorParameter.txt b/analysis/low-level-api-fir/testdata/lazyResolve/secondaryConstructorParameter.txt index 8664385b34d..6e8135fa1de 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/secondaryConstructorParameter.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/secondaryConstructorParameter.txt @@ -1,134 +1,122 @@ RAW_FIR: -FILE: [ResolvedTo(IMPORTS)] secondaryConstructorParameter.kt +FILE: [ResolvedTo(RAW_FIR)] secondaryConstructorParameter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=A] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=/A.prop] prop: R|kotlin/Int| = LAZY_EXPRESSION, [ResolvedTo(STATUS)] c: R|kotlin/String|): R|A| { + public? final? [ResolvedTo(RAW_FIR)] class A : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/A.prop] prop: Int = LAZY_EXPRESSION, [ResolvedTo(RAW_FIR)] c: String): R|A| { LAZY_super } - public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| - public [ResolvedTo(STATUS)] [ContainingClassKey=A] get(): R|kotlin/Int| + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val prop: Int = R|/prop| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] get(): Int - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] str: R|kotlin/String|): R|A| { - this(R|/str|.R|/myToInt|(), R|/str|) + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] constructor([ResolvedTo(RAW_FIR)] str: String): R|A| { + LAZY_this } - public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo(): { LAZY_BLOCK } } - public final [ResolvedTo(CONTRACTS)] fun R|kotlin/String|.myToInt(): R|kotlin/Int| { - ^myToInt IntegerLiteral(42) - } + public? final? [ResolvedTo(RAW_FIR)] fun String.myToInt(): Int { LAZY_BLOCK } IMPORTS: FILE: [ResolvedTo(IMPORTS)] secondaryConstructorParameter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=A] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=/A.prop] prop: R|kotlin/Int| = LAZY_EXPRESSION, [ResolvedTo(STATUS)] c: R|kotlin/String|): R|A| { + public? final? [ResolvedTo(RAW_FIR)] class A : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/A.prop] prop: Int = LAZY_EXPRESSION, [ResolvedTo(RAW_FIR)] c: String): R|A| { LAZY_super } - public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| - public [ResolvedTo(STATUS)] [ContainingClassKey=A] get(): R|kotlin/Int| + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val prop: Int = R|/prop| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] get(): Int - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] str: R|kotlin/String|): R|A| { - this(R|/str|.R|/myToInt|(), R|/str|) + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] constructor([ResolvedTo(RAW_FIR)] str: String): R|A| { + LAZY_this } - public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo(): { LAZY_BLOCK } } - public final [ResolvedTo(CONTRACTS)] fun R|kotlin/String|.myToInt(): R|kotlin/Int| { - ^myToInt IntegerLiteral(42) - } + public? final? [ResolvedTo(RAW_FIR)] fun String.myToInt(): Int { LAZY_BLOCK } COMPILER_REQUIRED_ANNOTATIONS: FILE: [ResolvedTo(IMPORTS)] secondaryConstructorParameter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=A] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=/A.prop] prop: R|kotlin/Int| = LAZY_EXPRESSION, [ResolvedTo(STATUS)] c: R|kotlin/String|): R|A| { + public? final? [ResolvedTo(RAW_FIR)] class A : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/A.prop] prop: Int = LAZY_EXPRESSION, [ResolvedTo(RAW_FIR)] c: String): R|A| { LAZY_super } - public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| - public [ResolvedTo(STATUS)] [ContainingClassKey=A] get(): R|kotlin/Int| + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val prop: Int = R|/prop| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] get(): Int - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] str: R|kotlin/String|): R|A| { - this(R|/str|.R|/myToInt|(), R|/str|) + public? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] [ContainingClassKey=A] constructor([ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] str: String): R|A| { + LAZY_this } - public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo(): { LAZY_BLOCK } } - public final [ResolvedTo(CONTRACTS)] fun R|kotlin/String|.myToInt(): R|kotlin/Int| { - ^myToInt IntegerLiteral(42) - } + public? final? [ResolvedTo(RAW_FIR)] fun String.myToInt(): Int { LAZY_BLOCK } COMPANION_GENERATION: FILE: [ResolvedTo(IMPORTS)] secondaryConstructorParameter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=A] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=/A.prop] prop: R|kotlin/Int| = LAZY_EXPRESSION, [ResolvedTo(STATUS)] c: R|kotlin/String|): R|A| { + public? final? [ResolvedTo(RAW_FIR)] class A : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/A.prop] prop: Int = LAZY_EXPRESSION, [ResolvedTo(RAW_FIR)] c: String): R|A| { LAZY_super } - public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| - public [ResolvedTo(STATUS)] [ContainingClassKey=A] get(): R|kotlin/Int| + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val prop: Int = R|/prop| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] get(): Int - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] str: R|kotlin/String|): R|A| { - this(R|/str|.R|/myToInt|(), R|/str|) + public? [ResolvedTo(COMPANION_GENERATION)] [ContainingClassKey=A] constructor([ResolvedTo(COMPANION_GENERATION)] str: String): R|A| { + LAZY_this } - public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo(): { LAZY_BLOCK } } - public final [ResolvedTo(CONTRACTS)] fun R|kotlin/String|.myToInt(): R|kotlin/Int| { - ^myToInt IntegerLiteral(42) - } + public? final? [ResolvedTo(RAW_FIR)] fun String.myToInt(): Int { LAZY_BLOCK } SUPER_TYPES: FILE: [ResolvedTo(IMPORTS)] secondaryConstructorParameter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=A] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=/A.prop] prop: R|kotlin/Int| = LAZY_EXPRESSION, [ResolvedTo(STATUS)] c: R|kotlin/String|): R|A| { + public? final? [ResolvedTo(SUPER_TYPES)] class A : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/A.prop] prop: Int = LAZY_EXPRESSION, [ResolvedTo(RAW_FIR)] c: String): R|A| { LAZY_super } - public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| - public [ResolvedTo(STATUS)] [ContainingClassKey=A] get(): R|kotlin/Int| + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val prop: Int = R|/prop| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] get(): Int - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] str: R|kotlin/String|): R|A| { - this(R|/str|.R|/myToInt|(), R|/str|) + public? [ResolvedTo(SUPER_TYPES)] [ContainingClassKey=A] constructor([ResolvedTo(SUPER_TYPES)] str: String): R|A| { + LAZY_this } - public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo(): { LAZY_BLOCK } } - public final [ResolvedTo(CONTRACTS)] fun R|kotlin/String|.myToInt(): R|kotlin/Int| { - ^myToInt IntegerLiteral(42) - } + public? final? [ResolvedTo(RAW_FIR)] fun String.myToInt(): Int { LAZY_BLOCK } TYPES: FILE: [ResolvedTo(IMPORTS)] secondaryConstructorParameter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| { - public [ResolvedTo(STATUS)] [ContainingClassKey=A] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=/A.prop] prop: R|kotlin/Int| = LAZY_EXPRESSION, [ResolvedTo(STATUS)] c: R|kotlin/String|): R|A| { + public? final? [ResolvedTo(TYPES)] class A : R|kotlin/Any| { + public? [ResolvedTo(TYPES)] [ContainingClassKey=A] constructor([ResolvedTo(TYPES)] [CorrespondingProperty=/A.prop] prop: R|kotlin/Int| = LAZY_EXPRESSION, [ResolvedTo(TYPES)] c: R|kotlin/String|): R|A| { LAZY_super } - public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| - public [ResolvedTo(STATUS)] [ContainingClassKey=A] get(): R|kotlin/Int| + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val prop: Int = R|/prop| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] get(): Int - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] str: R|kotlin/String|): R|A| { - this(R|/str|.R|/myToInt|(), R|/str|) + public? [ResolvedTo(TYPES)] [ContainingClassKey=A] constructor([ResolvedTo(TYPES)] str: R|kotlin/String|): R|A| { + LAZY_this } - public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } + public? final? [ResolvedTo(RAW_FIR)] fun foo(): { LAZY_BLOCK } } - public final [ResolvedTo(CONTRACTS)] fun R|kotlin/String|.myToInt(): R|kotlin/Int| { - ^myToInt IntegerLiteral(42) - } + public? final? [ResolvedTo(RAW_FIR)] fun String.myToInt(): Int { LAZY_BLOCK } STATUS: FILE: [ResolvedTo(IMPORTS)] secondaryConstructorParameter.kt @@ -141,16 +129,14 @@ FILE: [ResolvedTo(IMPORTS)] secondaryConstructorParameter.kt public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| public [ResolvedTo(STATUS)] [ContainingClassKey=A] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] str: R|kotlin/String|): R|A| { - this(R|/str|.R|/myToInt|(), R|/str|) + public [ResolvedTo(STATUS)] [ContainingClassKey=A] constructor([ResolvedTo(STATUS)] str: R|kotlin/String|): R|A| { + LAZY_this } public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } } - public final [ResolvedTo(CONTRACTS)] fun R|kotlin/String|.myToInt(): R|kotlin/Int| { - ^myToInt IntegerLiteral(42) - } + public? final? [ResolvedTo(RAW_FIR)] fun String.myToInt(): Int { LAZY_BLOCK } EXPECT_ACTUAL_MATCHING: FILE: [ResolvedTo(IMPORTS)] secondaryConstructorParameter.kt @@ -163,16 +149,14 @@ FILE: [ResolvedTo(IMPORTS)] secondaryConstructorParameter.kt public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| public [ResolvedTo(STATUS)] [ContainingClassKey=A] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] str: R|kotlin/String|): R|A| { - this(R|/str|.R|/myToInt|(), R|/str|) + public [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [ContainingClassKey=A] constructor([ResolvedTo(EXPECT_ACTUAL_MATCHING)] str: R|kotlin/String|): R|A| { + LAZY_this } public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } } - public final [ResolvedTo(CONTRACTS)] fun R|kotlin/String|.myToInt(): R|kotlin/Int| { - ^myToInt IntegerLiteral(42) - } + public? final? [ResolvedTo(RAW_FIR)] fun String.myToInt(): Int { LAZY_BLOCK } ARGUMENTS_OF_ANNOTATIONS: FILE: [ResolvedTo(IMPORTS)] secondaryConstructorParameter.kt @@ -185,16 +169,14 @@ FILE: [ResolvedTo(IMPORTS)] secondaryConstructorParameter.kt public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| public [ResolvedTo(STATUS)] [ContainingClassKey=A] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] str: R|kotlin/String|): R|A| { - this(R|/str|.R|/myToInt|(), R|/str|) + public [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] [ContainingClassKey=A] constructor([ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] str: R|kotlin/String|): R|A| { + LAZY_this } public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } } - public final [ResolvedTo(CONTRACTS)] fun R|kotlin/String|.myToInt(): R|kotlin/Int| { - ^myToInt IntegerLiteral(42) - } + public? final? [ResolvedTo(RAW_FIR)] fun String.myToInt(): Int { LAZY_BLOCK } CONTRACTS: FILE: [ResolvedTo(IMPORTS)] secondaryConstructorParameter.kt @@ -207,16 +189,14 @@ FILE: [ResolvedTo(IMPORTS)] secondaryConstructorParameter.kt public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| public [ResolvedTo(STATUS)] [ContainingClassKey=A] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] str: R|kotlin/String|): R|A| { - this(R|/str|.R|/myToInt|(), R|/str|) + public [ResolvedTo(CONTRACTS)] [ContainingClassKey=A] constructor([ResolvedTo(CONTRACTS)] str: R|kotlin/String|): R|A| { + this(str#.myToInt#(), str#) } public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } } - public final [ResolvedTo(CONTRACTS)] fun R|kotlin/String|.myToInt(): R|kotlin/Int| { - ^myToInt IntegerLiteral(42) - } + public? final? [ResolvedTo(RAW_FIR)] fun String.myToInt(): Int { LAZY_BLOCK } IMPLICIT_TYPES_BODY_RESOLVE: FILE: [ResolvedTo(IMPORTS)] secondaryConstructorParameter.kt @@ -229,16 +209,14 @@ FILE: [ResolvedTo(IMPORTS)] secondaryConstructorParameter.kt public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| public [ResolvedTo(STATUS)] [ContainingClassKey=A] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] str: R|kotlin/String|): R|A| { - this(R|/str|.R|/myToInt|(), R|/str|) + public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] str: R|kotlin/String|): R|A| { + this(str#.myToInt#(), str#) } public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } } - public final [ResolvedTo(CONTRACTS)] fun R|kotlin/String|.myToInt(): R|kotlin/Int| { - ^myToInt IntegerLiteral(42) - } + public? final? [ResolvedTo(RAW_FIR)] fun String.myToInt(): Int { LAZY_BLOCK } ANNOTATIONS_ARGUMENTS_MAPPING: FILE: [ResolvedTo(IMPORTS)] secondaryConstructorParameter.kt @@ -251,16 +229,14 @@ FILE: [ResolvedTo(IMPORTS)] secondaryConstructorParameter.kt public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val prop: R|kotlin/Int| = R|/prop| public [ResolvedTo(STATUS)] [ContainingClassKey=A] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor([ResolvedTo(BODY_RESOLVE)] str: R|kotlin/String|): R|A| { - this(R|/str|.R|/myToInt|(), R|/str|) + public [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] [ContainingClassKey=A] constructor([ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] str: R|kotlin/String|): R|A| { + this(str#.myToInt#(), str#) } public final [ResolvedTo(STATUS)] fun foo(): { LAZY_BLOCK } } - public final [ResolvedTo(CONTRACTS)] fun R|kotlin/String|.myToInt(): R|kotlin/Int| { - ^myToInt IntegerLiteral(42) - } + public? final? [ResolvedTo(RAW_FIR)] fun String.myToInt(): Int { LAZY_BLOCK } BODY_RESOLVE: FILE: [ResolvedTo(IMPORTS)] secondaryConstructorParameter.kt diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/typeParameterOfTopSetter.txt b/analysis/low-level-api-fir/testdata/lazyResolve/typeParameterOfTopSetter.txt index b33da32a7d0..5371676e5d8 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/typeParameterOfTopSetter.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/typeParameterOfTopSetter.txt @@ -1,109 +1,91 @@ RAW_FIR: -FILE: [ResolvedTo(IMPORTS)] typeParameterOfTopSetter.kt +FILE: [ResolvedTo(RAW_FIR)] typeParameterOfTopSetter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(BODY_RESOLVE)] var x: R|kotlin/Int| = Int(2) - public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] set([ResolvedTo(BODY_RESOLVE)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } + public? final? [ResolvedTo(RAW_FIR)] var x: Int = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): Int + public? [ResolvedTo(RAW_FIR)] set([ResolvedTo(RAW_FIR)] resolveMe: Int): R|kotlin/Unit| { LAZY_BLOCK } IMPORTS: FILE: [ResolvedTo(IMPORTS)] typeParameterOfTopSetter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(BODY_RESOLVE)] var x: R|kotlin/Int| = Int(2) - public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] set([ResolvedTo(BODY_RESOLVE)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } + public? final? [ResolvedTo(RAW_FIR)] var x: Int = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): Int + public? [ResolvedTo(RAW_FIR)] set([ResolvedTo(RAW_FIR)] resolveMe: Int): R|kotlin/Unit| { LAZY_BLOCK } COMPILER_REQUIRED_ANNOTATIONS: FILE: [ResolvedTo(IMPORTS)] typeParameterOfTopSetter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(BODY_RESOLVE)] var x: R|kotlin/Int| = Int(2) - public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] set([ResolvedTo(BODY_RESOLVE)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } + public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] var x: Int = LAZY_EXPRESSION + public? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] get(): Int + public? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] set([ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] resolveMe: Int): R|kotlin/Unit| { LAZY_BLOCK } COMPANION_GENERATION: FILE: [ResolvedTo(IMPORTS)] typeParameterOfTopSetter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(BODY_RESOLVE)] var x: R|kotlin/Int| = Int(2) - public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] set([ResolvedTo(BODY_RESOLVE)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } + public? final? [ResolvedTo(COMPANION_GENERATION)] var x: Int = LAZY_EXPRESSION + public? [ResolvedTo(COMPANION_GENERATION)] get(): Int + public? [ResolvedTo(COMPANION_GENERATION)] set([ResolvedTo(COMPANION_GENERATION)] resolveMe: Int): R|kotlin/Unit| { LAZY_BLOCK } SUPER_TYPES: FILE: [ResolvedTo(IMPORTS)] typeParameterOfTopSetter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(BODY_RESOLVE)] var x: R|kotlin/Int| = Int(2) - public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] set([ResolvedTo(BODY_RESOLVE)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } + public? final? [ResolvedTo(SUPER_TYPES)] var x: Int = LAZY_EXPRESSION + public? [ResolvedTo(SUPER_TYPES)] get(): Int + public? [ResolvedTo(SUPER_TYPES)] set([ResolvedTo(SUPER_TYPES)] resolveMe: Int): R|kotlin/Unit| { LAZY_BLOCK } TYPES: FILE: [ResolvedTo(IMPORTS)] typeParameterOfTopSetter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(BODY_RESOLVE)] var x: R|kotlin/Int| = Int(2) - public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] set([ResolvedTo(BODY_RESOLVE)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } + public? final? [ResolvedTo(TYPES)] var x: R|kotlin/Int| = LAZY_EXPRESSION + public? [ResolvedTo(TYPES)] get(): R|kotlin/Int| + public? [ResolvedTo(TYPES)] set([ResolvedTo(TYPES)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { LAZY_BLOCK } STATUS: FILE: [ResolvedTo(IMPORTS)] typeParameterOfTopSetter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(BODY_RESOLVE)] var x: R|kotlin/Int| = Int(2) - public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] set([ResolvedTo(BODY_RESOLVE)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } + public final [ResolvedTo(STATUS)] var x: R|kotlin/Int| = LAZY_EXPRESSION + public [ResolvedTo(STATUS)] get(): R|kotlin/Int| + public [ResolvedTo(STATUS)] set([ResolvedTo(STATUS)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { LAZY_BLOCK } EXPECT_ACTUAL_MATCHING: FILE: [ResolvedTo(IMPORTS)] typeParameterOfTopSetter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(BODY_RESOLVE)] var x: R|kotlin/Int| = Int(2) - public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] set([ResolvedTo(BODY_RESOLVE)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } + public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] var x: R|kotlin/Int| = LAZY_EXPRESSION + public [ResolvedTo(EXPECT_ACTUAL_MATCHING)] get(): R|kotlin/Int| + public [ResolvedTo(EXPECT_ACTUAL_MATCHING)] set([ResolvedTo(EXPECT_ACTUAL_MATCHING)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { LAZY_BLOCK } ARGUMENTS_OF_ANNOTATIONS: FILE: [ResolvedTo(IMPORTS)] typeParameterOfTopSetter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(BODY_RESOLVE)] var x: R|kotlin/Int| = Int(2) - public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] set([ResolvedTo(BODY_RESOLVE)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } + public final [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] var x: R|kotlin/Int| = LAZY_EXPRESSION + public [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] get(): R|kotlin/Int| + public [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] set([ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { LAZY_BLOCK } CONTRACTS: FILE: [ResolvedTo(IMPORTS)] typeParameterOfTopSetter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(BODY_RESOLVE)] var x: R|kotlin/Int| = Int(2) - public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] set([ResolvedTo(BODY_RESOLVE)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| + public final [ResolvedTo(CONTRACTS)] var x: R|kotlin/Int| = IntegerLiteral(2) + public [ResolvedTo(CONTRACTS)] get(): R|kotlin/Int| + public [ResolvedTo(CONTRACTS)] set([ResolvedTo(CONTRACTS)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { + ^ Unit# } IMPLICIT_TYPES_BODY_RESOLVE: FILE: [ResolvedTo(IMPORTS)] typeParameterOfTopSetter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(BODY_RESOLVE)] var x: R|kotlin/Int| = Int(2) - public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] set([ResolvedTo(BODY_RESOLVE)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| + public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] var x: R|kotlin/Int| = IntegerLiteral(2) + public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] get(): R|kotlin/Int| + public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] set([ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { + ^ Unit# } ANNOTATIONS_ARGUMENTS_MAPPING: FILE: [ResolvedTo(IMPORTS)] typeParameterOfTopSetter.kt [ResolvedTo(RAW_FIR)] annotations container - public final [ResolvedTo(BODY_RESOLVE)] var x: R|kotlin/Int| = Int(2) - public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| - public [ResolvedTo(BODY_RESOLVE)] set([ResolvedTo(BODY_RESOLVE)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| + public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] var x: R|kotlin/Int| = IntegerLiteral(2) + public [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] get(): R|kotlin/Int| + public [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] set([ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { + ^ Unit# } BODY_RESOLVE: