diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/element/builder/FirElementBuilder.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/element/builder/FirElementBuilder.kt index 35cfac54251..5a8239a83ba 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/element/builder/FirElementBuilder.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/element/builder/FirElementBuilder.kt @@ -18,8 +18,8 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.file.builder.ModuleFileCache import org.jetbrains.kotlin.idea.fir.low.level.api.file.structure.FileStructureCache import org.jetbrains.kotlin.idea.fir.low.level.api.file.structure.FileStructureElement import org.jetbrains.kotlin.idea.fir.low.level.api.lazy.resolve.FirLazyDeclarationResolver -import org.jetbrains.kotlin.idea.fir.low.level.api.util.getElementTextInContext import org.jetbrains.kotlin.idea.fir.low.level.api.lazy.resolve.declarationCanBeLazilyResolved +import org.jetbrains.kotlin.idea.fir.low.level.api.util.getElementTextInContext import org.jetbrains.kotlin.idea.fir.low.level.api.util.isNonAnonymousClassOrObject import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject @@ -49,6 +49,7 @@ internal class FirElementBuilder { deparenthesized.getArgumentExpression() } deparenthesized is KtObjectLiteralExpression -> deparenthesized.objectDeclaration + deparenthesized is KtStringTemplateEntryWithExpression -> deparenthesized.expression else -> deparenthesized } } diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/stringTemplateExpressionEntry.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/stringTemplateExpressionEntry.kt new file mode 100644 index 00000000000..e0d7cff09b7 --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/stringTemplateExpressionEntry.kt @@ -0,0 +1 @@ +val x = "string ${1 + 2} template" \ No newline at end of file diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/stringTemplateExpressionEntry.txt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/stringTemplateExpressionEntry.txt new file mode 100644 index 00000000000..85acdb142c0 --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/stringTemplateExpressionEntry.txt @@ -0,0 +1,5 @@ +KT element: KtBlockStringTemplateEntry +FIR element: FirFunctionCallImpl + +FIR element rendered: +Int(1).R|kotlin/Int.plus|(Int(2)) \ No newline at end of file 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 081da80e244..4ac63c348e8 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 @@ -112,11 +112,22 @@ public class GetOrBuildFirTestGenerated extends AbstractGetOrBuildFirTest { @TestMetadata("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions") @TestDataPath("$PROJECT_ROOT") public class Expressions { + @Test + public void testAllFilesPresentInExpressions() throws Exception { + 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("objectLiteralExpression.kt") public void testObjectLiteralExpression() throws Exception { runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/objectLiteralExpression.kt"); } + + @Test + @TestMetadata("stringTemplateExpressionEntry.kt") + public void testStringTemplateExpressionEntry() throws Exception { + runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/expressions/stringTemplateExpressionEntry.kt"); + } } @Nested