diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/classes/actual.kt b/analysis/low-level-api-fir/testdata/lazyResolve/classes/actual.kt new file mode 100644 index 00000000000..74537b1d33f --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/classes/actual.kt @@ -0,0 +1,8 @@ +actual class Actual { + fun memberFun() {} + val a = 1 + + actual class NestedActual { + fun member2() = false + } +} \ No newline at end of file diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/classes/actual.txt b/analysis/low-level-api-fir/testdata/lazyResolve/classes/actual.txt new file mode 100644 index 00000000000..9a2402e7508 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/classes/actual.txt @@ -0,0 +1,339 @@ +RAW_FIR: +FILE: [ResolvedTo(RAW_FIR)] actual.kt + [ResolvedTo(BODY_RESOLVE)] annotations container + public? final? actual [ResolvedTo(RAW_FIR)] class Actual : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Actual] constructor(): R|Actual| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun memberFun(): R|kotlin/Unit| { LAZY_BLOCK } + + 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| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun member2(): { LAZY_BLOCK } + + } + + } + +IMPORTS: +FILE: [ResolvedTo(IMPORTS)] actual.kt + [ResolvedTo(BODY_RESOLVE)] annotations container + public? final? actual [ResolvedTo(RAW_FIR)] class Actual : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Actual] constructor(): R|Actual| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun memberFun(): R|kotlin/Unit| { LAZY_BLOCK } + + 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| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun member2(): { LAZY_BLOCK } + + } + + } + +COMPILER_REQUIRED_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] actual.kt + [ResolvedTo(BODY_RESOLVE)] annotations container + public? final? actual [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] class Actual : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Actual] constructor(): R|Actual| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun memberFun(): R|kotlin/Unit| { LAZY_BLOCK } + + 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| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun member2(): { LAZY_BLOCK } + + } + + } + +COMPANION_GENERATION: +FILE: [ResolvedTo(IMPORTS)] actual.kt + [ResolvedTo(BODY_RESOLVE)] annotations container + public? final? actual [ResolvedTo(COMPANION_GENERATION)] class Actual : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Actual] constructor(): R|Actual| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun memberFun(): R|kotlin/Unit| { LAZY_BLOCK } + + 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| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun member2(): { LAZY_BLOCK } + + } + + } + +SUPER_TYPES: +FILE: [ResolvedTo(IMPORTS)] actual.kt + [ResolvedTo(BODY_RESOLVE)] annotations container + public? final? actual [ResolvedTo(SUPER_TYPES)] class Actual : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Actual] constructor(): R|Actual| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun memberFun(): R|kotlin/Unit| { LAZY_BLOCK } + + 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| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun member2(): { LAZY_BLOCK } + + } + + } + +TYPES: +FILE: [ResolvedTo(IMPORTS)] actual.kt + [ResolvedTo(BODY_RESOLVE)] annotations container + public? final? actual [ResolvedTo(TYPES)] class Actual : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Actual] constructor(): R|Actual| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun memberFun(): R|kotlin/Unit| { LAZY_BLOCK } + + 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| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun member2(): { LAZY_BLOCK } + + } + + } + +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| { + LAZY_super + } + + public final [ResolvedTo(STATUS)] fun memberFun(): R|kotlin/Unit| { LAZY_BLOCK } + + public final [ResolvedTo(STATUS)] val a: = LAZY_EXPRESSION + public [ResolvedTo(STATUS)] [ContainingClassKey=Actual] get(): + + public? final? actual [ResolvedTo(RAW_FIR)] class NestedActual : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedActual] constructor(): R|Actual.NestedActual| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun member2(): { LAZY_BLOCK } + + } + + } + +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| { + LAZY_super + } + + public final [ResolvedTo(STATUS)] fun memberFun(): R|kotlin/Unit| { LAZY_BLOCK } + + public final [ResolvedTo(STATUS)] val a: = LAZY_EXPRESSION + public [ResolvedTo(STATUS)] [ContainingClassKey=Actual] get(): + + public? final? actual [ResolvedTo(RAW_FIR)] class NestedActual : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedActual] constructor(): R|Actual.NestedActual| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun member2(): { LAZY_BLOCK } + + } + + } + +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| { + LAZY_super + } + + public final [ResolvedTo(STATUS)] fun memberFun(): R|kotlin/Unit| { LAZY_BLOCK } + + public final [ResolvedTo(STATUS)] val a: = LAZY_EXPRESSION + public [ResolvedTo(STATUS)] [ContainingClassKey=Actual] get(): + + public? final? actual [ResolvedTo(RAW_FIR)] class NestedActual : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedActual] constructor(): R|Actual.NestedActual| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun member2(): { LAZY_BLOCK } + + } + + } + +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| { + LAZY_super + } + + public final [ResolvedTo(STATUS)] fun memberFun(): R|kotlin/Unit| { LAZY_BLOCK } + + public final [ResolvedTo(STATUS)] val a: = LAZY_EXPRESSION + public [ResolvedTo(STATUS)] [ContainingClassKey=Actual] get(): + + public? final? actual [ResolvedTo(RAW_FIR)] class NestedActual : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedActual] constructor(): R|Actual.NestedActual| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun member2(): { LAZY_BLOCK } + + } + + } + +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| { + LAZY_super + } + + public final [ResolvedTo(STATUS)] fun memberFun(): R|kotlin/Unit| { LAZY_BLOCK } + + public final [ResolvedTo(STATUS)] val a: = LAZY_EXPRESSION + public [ResolvedTo(STATUS)] [ContainingClassKey=Actual] get(): + + public? final? actual [ResolvedTo(RAW_FIR)] class NestedActual : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedActual] constructor(): R|Actual.NestedActual| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun member2(): { LAZY_BLOCK } + + } + + } + +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| { + LAZY_super + } + + public final [ResolvedTo(STATUS)] fun memberFun(): R|kotlin/Unit| { LAZY_BLOCK } + + public final [ResolvedTo(STATUS)] val a: = LAZY_EXPRESSION + public [ResolvedTo(STATUS)] [ContainingClassKey=Actual] get(): + + public? final? actual [ResolvedTo(RAW_FIR)] class NestedActual : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedActual] constructor(): R|Actual.NestedActual| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun member2(): { LAZY_BLOCK } + + } + + } + +BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] actual.kt + [ResolvedTo(BODY_RESOLVE)] annotations container + public final actual [ResolvedTo(BODY_RESOLVE)] [ExpectForActualAttributeKey={}] class Actual : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Actual] constructor(): R|Actual| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] fun memberFun(): R|kotlin/Unit| { + } + + public final [ResolvedTo(BODY_RESOLVE)] val a: R|kotlin/Int| = Int(1) + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Actual] get(): R|kotlin/Int| + + public? final? actual [ResolvedTo(RAW_FIR)] class NestedActual : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedActual] constructor(): R|Actual.NestedActual| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun member2(): { LAZY_BLOCK } + + } + + } + +FILE RAW TO BODY: +FILE: [ResolvedTo(IMPORTS)] actual.kt + [ResolvedTo(BODY_RESOLVE)] annotations container + public final actual [ResolvedTo(BODY_RESOLVE)] [ExpectForActualAttributeKey={}] class Actual : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Actual] constructor(): R|Actual| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] fun memberFun(): R|kotlin/Unit| { + } + + public final [ResolvedTo(BODY_RESOLVE)] val a: R|kotlin/Int| = Int(1) + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Actual] get(): R|kotlin/Int| + + public final actual [ResolvedTo(BODY_RESOLVE)] [ExpectForActualAttributeKey={}] class NestedActual : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=NestedActual] constructor(): R|Actual.NestedActual| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] fun member2(): R|kotlin/Boolean| { + ^member2 Boolean(false) + } + + } + + } diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirOutOfContentRootLazyDeclarationResolveTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirOutOfContentRootLazyDeclarationResolveTestGenerated.java index 7fc16585b08..870bf55d569 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirOutOfContentRootLazyDeclarationResolveTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirOutOfContentRootLazyDeclarationResolveTestGenerated.java @@ -442,6 +442,12 @@ public class FirOutOfContentRootLazyDeclarationResolveTestGenerated extends Abst @TestMetadata("analysis/low-level-api-fir/testdata/lazyResolve/classes") @TestDataPath("$PROJECT_ROOT") public class Classes { + @Test + @TestMetadata("actual.kt") + public void testActual() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/classes/actual.kt"); + } + @Test public void testAllFilesPresentInClasses() throws Exception { KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testdata/lazyResolve/classes"), Pattern.compile("^(.+)\\.kt$"), null, true); diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirSourceLazyDeclarationResolveTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirSourceLazyDeclarationResolveTestGenerated.java index 0f8b69b00a5..813eaf92597 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirSourceLazyDeclarationResolveTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirSourceLazyDeclarationResolveTestGenerated.java @@ -442,6 +442,12 @@ public class FirSourceLazyDeclarationResolveTestGenerated extends AbstractFirSou @TestMetadata("analysis/low-level-api-fir/testdata/lazyResolve/classes") @TestDataPath("$PROJECT_ROOT") public class Classes { + @Test + @TestMetadata("actual.kt") + public void testActual() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/classes/actual.kt"); + } + @Test public void testAllFilesPresentInClasses() throws Exception { KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testdata/lazyResolve/classes"), Pattern.compile("^(.+)\\.kt$"), null, true);