diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/annotations/fileAnnotation.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/annotations/fileAnnotation.kt new file mode 100644 index 00000000000..d4937502dc3 --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/annotations/fileAnnotation.kt @@ -0,0 +1,4 @@ +// LOOK_UP_FOR_ELEMENT_OF_TYPE: org.jetbrains.kotlin.psi.KtAnnotationEntry +// WITH_STDLIB + +@file:Suppress("") \ No newline at end of file diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/annotations/fileAnnotation.txt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/annotations/fileAnnotation.txt new file mode 100644 index 00000000000..66a73d2ce00 --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/annotations/fileAnnotation.txt @@ -0,0 +1,5 @@ +KT element: KtAnnotationEntry +FIR element: FirAnnotationCallImpl + +FIR element rendered: +@FILE:R|kotlin/Suppress|(vararg(String())) \ No newline at end of file diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/calls/constructorDelegationSuperCall.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/calls/constructorDelegationSuperCall.kt new file mode 100644 index 00000000000..819f245a942 --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/calls/constructorDelegationSuperCall.kt @@ -0,0 +1,4 @@ +// LOOK_UP_FOR_ELEMENT_OF_TYPE: org.jetbrains.kotlin.psi.KtSuperTypeCallEntry + +open class B(x: Int) +class A : B(1) \ No newline at end of file diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/calls/constructorDelegationSuperCall.txt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/calls/constructorDelegationSuperCall.txt new file mode 100644 index 00000000000..eb4cbeeb711 --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/calls/constructorDelegationSuperCall.txt @@ -0,0 +1,5 @@ +KT element: KtSuperTypeCallEntry +FIR element: FirDelegatedConstructorCallImpl + +FIR element rendered: +super(Int(1)) \ No newline at end of file diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/calls/constructorDelegationThisCall.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/calls/constructorDelegationThisCall.kt new file mode 100644 index 00000000000..547359b9e1c --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/calls/constructorDelegationThisCall.kt @@ -0,0 +1,3 @@ +class A(x: Int) { + constructor(y: String) : this(1) +} \ No newline at end of file diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/calls/constructorDelegationThisCall.txt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/calls/constructorDelegationThisCall.txt new file mode 100644 index 00000000000..6a269b2ea31 --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/calls/constructorDelegationThisCall.txt @@ -0,0 +1,5 @@ +KT element: KtConstructorDelegationCall +FIR element: FirDelegatedConstructorCallImpl + +FIR element rendered: +this(Int(1)) diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/arrayAccessExpression.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/arrayAccessExpression.kt new file mode 100644 index 00000000000..1df2e15ec82 --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/arrayAccessExpression.kt @@ -0,0 +1,4 @@ +// WITH_STDLIB +fun foo(x: List) { + val a= x[1] +} \ No newline at end of file diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/arrayAccessExpression.txt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/arrayAccessExpression.txt new file mode 100644 index 00000000000..c59e5857443 --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/arrayAccessExpression.txt @@ -0,0 +1,5 @@ +KT element: KtArrayAccessExpression +FIR element: FirFunctionCallImpl + +FIR element rendered: +R|/x|.R|SubstitutionOverride|(Int(1)) diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/binaryExpressionOperator.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/binaryExpressionOperator.kt new file mode 100644 index 00000000000..2eeee42d788 --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/binaryExpressionOperator.kt @@ -0,0 +1 @@ +val x = 1 + 1 \ No newline at end of file diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/binaryExpressionOperator.txt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/binaryExpressionOperator.txt new file mode 100644 index 00000000000..2b4a5d4cd7b --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/binaryExpressionOperator.txt @@ -0,0 +1,5 @@ +KT element: KtOperationReferenceExpression +FIR element: FirFunctionCallImpl + +FIR element rendered: +Int(1).R|kotlin/Int.plus|(Int(1)) \ No newline at end of file diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/forExpression.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/forExpression.kt new file mode 100644 index 00000000000..7048593d31c --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/forExpression.kt @@ -0,0 +1,7 @@ +fun foo() { + + for (x in 0..1) { + + } + +} \ No newline at end of file diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/forExpression.txt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/forExpression.txt new file mode 100644 index 00000000000..4a92a4b39b2 --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/forExpression.txt @@ -0,0 +1,7 @@ +KT element: KtForExpression +FIR element: FirWhileLoopImpl + +FIR element rendered: +while(R|/|.R|kotlin/collections/Iterator.hasNext|()) { + lval x: R|kotlin/Int| = R|/|.R|kotlin/collections/IntIterator.next|() +} diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/forExpressionRange.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/forExpressionRange.kt new file mode 100644 index 00000000000..7b184295dbb --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/forExpressionRange.kt @@ -0,0 +1,6 @@ +// LOOK_UP_FOR_ELEMENT_OF_TYPE: org.jetbrains.kotlin.psi.KtBinaryExpression +fun foo() { + for (x in 0..1) { + + } +} \ No newline at end of file diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/forExpressionRange.txt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/forExpressionRange.txt new file mode 100644 index 00000000000..5cc76c4a48e --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/forExpressionRange.txt @@ -0,0 +1,5 @@ +KT element: KtBinaryExpression +FIR element: FirFunctionCallImpl + +FIR element rendered: +Int(0).R|kotlin/Int.rangeTo|(Int(1)) \ No newline at end of file diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/forExpressionVariable.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/forExpressionVariable.kt new file mode 100644 index 00000000000..5f1039374ec --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/forExpressionVariable.kt @@ -0,0 +1,5 @@ +fun foo() { + for (x in 0..1) { + + } +} \ No newline at end of file diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/forExpressionVariable.txt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/forExpressionVariable.txt new file mode 100644 index 00000000000..d19e68b2637 --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/forExpressionVariable.txt @@ -0,0 +1,5 @@ +KT element: KtParameter +FIR element: FirPropertyImpl + +FIR element rendered: +lval x: R|kotlin/Int| = R|/|.R|kotlin/collections/IntIterator.next|() diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/unraryExpressionOperator.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/unraryExpressionOperator.kt new file mode 100644 index 00000000000..85abd1379ac --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/unraryExpressionOperator.kt @@ -0,0 +1,3 @@ +fun foo(x: Boolean): Boolean { + return !x +} \ No newline at end of file diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/unraryExpressionOperator.txt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/unraryExpressionOperator.txt new file mode 100644 index 00000000000..f0b6d124c7b --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/unraryExpressionOperator.txt @@ -0,0 +1,5 @@ +KT element: KtOperationReferenceExpression +FIR element: FirFunctionCallImpl + +FIR element rendered: +R|/x|.R|kotlin/Boolean.not|() \ No newline at end of file diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/whileExpression.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/whileExpression.kt new file mode 100644 index 00000000000..aa499f09fe1 --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/whileExpression.kt @@ -0,0 +1,7 @@ +fun foo() { + + while (true) { + + } + +} \ No newline at end of file diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/whileExpression.txt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/whileExpression.txt new file mode 100644 index 00000000000..def7160fe94 --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/whileExpression.txt @@ -0,0 +1,6 @@ +KT element: KtWhileExpression +FIR element: FirWhileLoopImpl + +FIR element rendered: +while(Boolean(true)) { +} diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/GetOrBuildFirTestGenerated.java b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/GetOrBuildFirTestGenerated.java index 33fe3cce742..c380e314a79 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/GetOrBuildFirTestGenerated.java +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/GetOrBuildFirTestGenerated.java @@ -62,6 +62,12 @@ public class GetOrBuildFirTestGenerated extends AbstractGetOrBuildFirTest { public void testAnnotationApplicationWithArguments() throws Exception { runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/annotations/annotationApplicationWithArguments.kt"); } + + @Test + @TestMetadata("fileAnnotation.kt") + public void testFileAnnotation() throws Exception { + runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/annotations/fileAnnotation.kt"); + } } @Nested @@ -73,6 +79,18 @@ public class GetOrBuildFirTestGenerated extends AbstractGetOrBuildFirTest { KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/calls"), Pattern.compile("^(.+)\\.kt$"), null, true); } + @Test + @TestMetadata("constructorDelegationSuperCall.kt") + public void testConstructorDelegationSuperCall() throws Exception { + runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/calls/constructorDelegationSuperCall.kt"); + } + + @Test + @TestMetadata("constructorDelegationThisCall.kt") + public void testConstructorDelegationThisCall() throws Exception { + runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/calls/constructorDelegationThisCall.kt"); + } + @Test @TestMetadata("functionCallArgumentList.kt") public void testFunctionCallArgumentList() throws Exception { @@ -117,6 +135,12 @@ public class GetOrBuildFirTestGenerated extends AbstractGetOrBuildFirTest { KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions"), Pattern.compile("^(.+)\\.kt$"), null, true); } + @Test + @TestMetadata("arrayAccessExpression.kt") + public void testArrayAccessExpression() throws Exception { + runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/arrayAccessExpression.kt"); + } + @Test @TestMetadata("asExpression.kt") public void testAsExpression() throws Exception { @@ -129,6 +153,12 @@ public class GetOrBuildFirTestGenerated extends AbstractGetOrBuildFirTest { runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/binaryExpression.kt"); } + @Test + @TestMetadata("binaryExpressionOperator.kt") + public void testBinaryExpressionOperator() throws Exception { + runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/binaryExpressionOperator.kt"); + } + @Test @TestMetadata("blockExpression.kt") public void testBlockExpression() throws Exception { @@ -147,6 +177,13 @@ public class GetOrBuildFirTestGenerated extends AbstractGetOrBuildFirTest { runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/classAccessExpression.kt"); } + + @Test + @TestMetadata("forExpressionRange.kt") + public void testForExpressionRange() throws Exception { + runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/forExpressionRange.kt"); + } + @Test @TestMetadata("ifExpression.kt") public void testIfExpression() throws Exception { @@ -219,12 +256,24 @@ public class GetOrBuildFirTestGenerated extends AbstractGetOrBuildFirTest { runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/unraryExpression.kt"); } + @Test + @TestMetadata("unraryExpressionOperator.kt") + public void testUnraryExpressionOperator() throws Exception { + runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/unraryExpressionOperator.kt"); + } + @Test @TestMetadata("whenExpression.kt") public void testWhenExpression() throws Exception { runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/whenExpression.kt"); } + @Test + @TestMetadata("whileExpression.kt") + public void testWhileExpression() throws Exception { + runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/whileExpression.kt"); + } + @Test @TestMetadata("wholeStringTemplate.kt") public void testWholeStringTemplate() throws Exception {