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 {