From 515e05cd94cd38906554cf0c880705c0325ff022 Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Tue, 10 Oct 2023 15:47:36 +0200 Subject: [PATCH] [LL FIR] add test for getOrBuildFir for super type ^KT-61789 --- .../testData/getOrBuildFir/types/superType.kt | 2 +- .../getOrBuildFir/types/superType2.kt | 4 +++ .../getOrBuildFir/types/superType2.txt | 17 +++++++++++ .../getOrBuildFir/types/superType3.kt | 4 +++ .../getOrBuildFir/types/superType3.txt | 19 ++++++++++++ .../getOrBuildFir/types/superTypeInObject.kt | 4 +++ .../getOrBuildFir/types/superTypeInObject.txt | 21 +++++++++++++ .../getOrBuildFir/types/superTypeInObject2.kt | 4 +++ .../types/superTypeInObject2.txt | 17 +++++++++++ .../getOrBuildFir/types/superTypeInObject3.kt | 4 +++ .../types/superTypeInObject3.txt | 19 ++++++++++++ ...ContentRootGetOrBuildFirTestGenerated.java | 30 +++++++++++++++++++ .../fir/SourceGetOrBuildFirTestGenerated.java | 30 +++++++++++++++++++ 13 files changed, 174 insertions(+), 1 deletion(-) create mode 100644 analysis/low-level-api-fir/testData/getOrBuildFir/types/superType2.kt create mode 100644 analysis/low-level-api-fir/testData/getOrBuildFir/types/superType2.txt create mode 100644 analysis/low-level-api-fir/testData/getOrBuildFir/types/superType3.kt create mode 100644 analysis/low-level-api-fir/testData/getOrBuildFir/types/superType3.txt create mode 100644 analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject.kt create mode 100644 analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject.txt create mode 100644 analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject2.kt create mode 100644 analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject2.txt create mode 100644 analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject3.kt create mode 100644 analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject3.txt diff --git a/analysis/low-level-api-fir/testData/getOrBuildFir/types/superType.kt b/analysis/low-level-api-fir/testData/getOrBuildFir/types/superType.kt index fcbfa5eae0a..d25d0353bb7 100644 --- a/analysis/low-level-api-fir/testData/getOrBuildFir/types/superType.kt +++ b/analysis/low-level-api-fir/testData/getOrBuildFir/types/superType.kt @@ -1,4 +1,4 @@ -// LOOK_UP_FOR_ELEMENT_OF_TYPE: org.jetbrains.kotlin.psi.KtTypeReference +// LOOK_UP_FOR_ELEMENT_OF_TYPE: KtTypeReference open class A class B(): A() \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/getOrBuildFir/types/superType2.kt b/analysis/low-level-api-fir/testData/getOrBuildFir/types/superType2.kt new file mode 100644 index 00000000000..e65783f6bea --- /dev/null +++ b/analysis/low-level-api-fir/testData/getOrBuildFir/types/superType2.kt @@ -0,0 +1,4 @@ +// LOOK_UP_FOR_ELEMENT_OF_TYPE: KtTypeReference +interface A + +class B(): A \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/getOrBuildFir/types/superType2.txt b/analysis/low-level-api-fir/testData/getOrBuildFir/types/superType2.txt new file mode 100644 index 00000000000..0a02cbc4ea6 --- /dev/null +++ b/analysis/low-level-api-fir/testData/getOrBuildFir/types/superType2.txt @@ -0,0 +1,17 @@ +KT element: KtTypeReference +FIR element: FirResolvedTypeRefImpl +FIR source kind: KtRealSourceElementKind + +FIR element rendered: +R|A| + +FIR FILE: +FILE: [ResolvedTo(IMPORTS)] superType2.kt + public abstract [ResolvedTo(STATUS)] interface A : R|kotlin/Any| { + } + public final [ResolvedTo(BODY_RESOLVE)] class B : R|A| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=B] constructor(): R|B| { + super() + } + + } diff --git a/analysis/low-level-api-fir/testData/getOrBuildFir/types/superType3.kt b/analysis/low-level-api-fir/testData/getOrBuildFir/types/superType3.kt new file mode 100644 index 00000000000..6647e1c3abf --- /dev/null +++ b/analysis/low-level-api-fir/testData/getOrBuildFir/types/superType3.kt @@ -0,0 +1,4 @@ +// LOOK_UP_FOR_ELEMENT_OF_TYPE: KtTypeReference +interface A + +class B(): A by f \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/getOrBuildFir/types/superType3.txt b/analysis/low-level-api-fir/testData/getOrBuildFir/types/superType3.txt new file mode 100644 index 00000000000..9a0422f5343 --- /dev/null +++ b/analysis/low-level-api-fir/testData/getOrBuildFir/types/superType3.txt @@ -0,0 +1,19 @@ +KT element: KtTypeReference +FIR element: FirResolvedTypeRefImpl +FIR source kind: KtRealSourceElementKind + +FIR element rendered: +R|A| + +FIR FILE: +FILE: [ResolvedTo(IMPORTS)] superType3.kt + public abstract [ResolvedTo(STATUS)] interface A : R|kotlin/Any| { + } + public final [ResolvedTo(BODY_RESOLVE)] [DelegateFieldsMapKey={0=FirFieldSymbol /B.$$delegate_0}] class B : R|A| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=B] constructor(): R|B| { + super() + } + + private final [ResolvedTo(BODY_RESOLVE)] field $$delegate_0: R|A| = # + + } diff --git a/analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject.kt b/analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject.kt new file mode 100644 index 00000000000..6f0b11a439c --- /dev/null +++ b/analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject.kt @@ -0,0 +1,4 @@ +// LOOK_UP_FOR_ELEMENT_OF_TYPE: KtTypeReference +open class A + +object B: A() \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject.txt b/analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject.txt new file mode 100644 index 00000000000..61c1857e51c --- /dev/null +++ b/analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject.txt @@ -0,0 +1,21 @@ +KT element: KtTypeReference +FIR element: FirResolvedTypeRefImpl +FIR source kind: KtRealSourceElementKind + +FIR element rendered: +R|A| + +FIR FILE: +FILE: [ResolvedTo(IMPORTS)] superTypeInObject.kt + public open [ResolvedTo(STATUS)] class A : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=A] constructor(): R|A| { + LAZY_super + } + + } + public final [ResolvedTo(BODY_RESOLVE)] object B : R|A| { + private [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=B] constructor(): R|B| { + super() + } + + } diff --git a/analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject2.kt b/analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject2.kt new file mode 100644 index 00000000000..e786dbe68dc --- /dev/null +++ b/analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject2.kt @@ -0,0 +1,4 @@ +// LOOK_UP_FOR_ELEMENT_OF_TYPE: KtTypeReference +interface A + +object B: A \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject2.txt b/analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject2.txt new file mode 100644 index 00000000000..02e9a15a6c8 --- /dev/null +++ b/analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject2.txt @@ -0,0 +1,17 @@ +KT element: KtTypeReference +FIR element: FirResolvedTypeRefImpl +FIR source kind: KtRealSourceElementKind + +FIR element rendered: +R|A| + +FIR FILE: +FILE: [ResolvedTo(IMPORTS)] superTypeInObject2.kt + public abstract [ResolvedTo(STATUS)] interface A : R|kotlin/Any| { + } + public final [ResolvedTo(BODY_RESOLVE)] object B : R|A| { + private [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=B] constructor(): R|B| { + super() + } + + } diff --git a/analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject3.kt b/analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject3.kt new file mode 100644 index 00000000000..571c1d18eac --- /dev/null +++ b/analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject3.kt @@ -0,0 +1,4 @@ +// LOOK_UP_FOR_ELEMENT_OF_TYPE: KtTypeReference +interface A + +object B: A by f \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject3.txt b/analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject3.txt new file mode 100644 index 00000000000..f2c9fca8e61 --- /dev/null +++ b/analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject3.txt @@ -0,0 +1,19 @@ +KT element: KtTypeReference +FIR element: FirResolvedTypeRefImpl +FIR source kind: KtRealSourceElementKind + +FIR element rendered: +R|A| + +FIR FILE: +FILE: [ResolvedTo(IMPORTS)] superTypeInObject3.kt + public abstract [ResolvedTo(STATUS)] interface A : R|kotlin/Any| { + } + public final [ResolvedTo(BODY_RESOLVE)] [DelegateFieldsMapKey={0=FirFieldSymbol /B.$$delegate_0}] object B : R|A| { + private [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=B] constructor(): R|B| { + super() + } + + private final [ResolvedTo(BODY_RESOLVE)] field $$delegate_0: R|A| = # + + } diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/OutOfContentRootGetOrBuildFirTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/OutOfContentRootGetOrBuildFirTestGenerated.java index 4dd3500a1c3..54cfcf869e7 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/OutOfContentRootGetOrBuildFirTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/OutOfContentRootGetOrBuildFirTestGenerated.java @@ -1111,12 +1111,42 @@ public class OutOfContentRootGetOrBuildFirTestGenerated extends AbstractOutOfCon runTest("analysis/low-level-api-fir/testData/getOrBuildFir/types/superType.kt"); } + @Test + @TestMetadata("superType2.kt") + public void testSuperType2() throws Exception { + runTest("analysis/low-level-api-fir/testData/getOrBuildFir/types/superType2.kt"); + } + + @Test + @TestMetadata("superType3.kt") + public void testSuperType3() throws Exception { + runTest("analysis/low-level-api-fir/testData/getOrBuildFir/types/superType3.kt"); + } + @Test @TestMetadata("superTypeAndGeneratedProperty.kt") public void testSuperTypeAndGeneratedProperty() throws Exception { runTest("analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeAndGeneratedProperty.kt"); } + @Test + @TestMetadata("superTypeInObject.kt") + public void testSuperTypeInObject() throws Exception { + runTest("analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject.kt"); + } + + @Test + @TestMetadata("superTypeInObject2.kt") + public void testSuperTypeInObject2() throws Exception { + runTest("analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject2.kt"); + } + + @Test + @TestMetadata("superTypeInObject3.kt") + public void testSuperTypeInObject3() throws Exception { + runTest("analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject3.kt"); + } + @Test @TestMetadata("superTypeOnEnumClass.kt") public void testSuperTypeOnEnumClass() throws Exception { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/SourceGetOrBuildFirTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/SourceGetOrBuildFirTestGenerated.java index 8c16d6f61cb..35732ffe082 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/SourceGetOrBuildFirTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/SourceGetOrBuildFirTestGenerated.java @@ -1111,12 +1111,42 @@ public class SourceGetOrBuildFirTestGenerated extends AbstractSourceGetOrBuildFi runTest("analysis/low-level-api-fir/testData/getOrBuildFir/types/superType.kt"); } + @Test + @TestMetadata("superType2.kt") + public void testSuperType2() throws Exception { + runTest("analysis/low-level-api-fir/testData/getOrBuildFir/types/superType2.kt"); + } + + @Test + @TestMetadata("superType3.kt") + public void testSuperType3() throws Exception { + runTest("analysis/low-level-api-fir/testData/getOrBuildFir/types/superType3.kt"); + } + @Test @TestMetadata("superTypeAndGeneratedProperty.kt") public void testSuperTypeAndGeneratedProperty() throws Exception { runTest("analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeAndGeneratedProperty.kt"); } + @Test + @TestMetadata("superTypeInObject.kt") + public void testSuperTypeInObject() throws Exception { + runTest("analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject.kt"); + } + + @Test + @TestMetadata("superTypeInObject2.kt") + public void testSuperTypeInObject2() throws Exception { + runTest("analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject2.kt"); + } + + @Test + @TestMetadata("superTypeInObject3.kt") + public void testSuperTypeInObject3() throws Exception { + runTest("analysis/low-level-api-fir/testData/getOrBuildFir/types/superTypeInObject3.kt"); + } + @Test @TestMetadata("superTypeOnEnumClass.kt") public void testSuperTypeOnEnumClass() throws Exception {