From 1423aa2c435d45b3f966f1f8fa2d92cacf4279b1 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Fri, 16 Jul 2021 10:22:08 +0200 Subject: [PATCH] LL API: fix kt -> fir mapping of type inside nullable type --- .../fir/low/level/api/element/builder/FirElementBuilder.kt | 1 + .../getOrBuildFir/types/nullableTypeWithooutQuestionMark.kt | 2 ++ .../types/nullableTypeWithooutQuestionMark.txt | 5 +++++ .../idea/fir/low/level/api/GetOrBuildFirTestGenerated.java | 6 ++++++ 4 files changed, 14 insertions(+) create mode 100644 idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/types/nullableTypeWithooutQuestionMark.kt create mode 100644 idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/types/nullableTypeWithooutQuestionMark.txt 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 5a8239a83ba..8a8fa09b0a4 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 @@ -50,6 +50,7 @@ internal class FirElementBuilder { } deparenthesized is KtObjectLiteralExpression -> deparenthesized.objectDeclaration deparenthesized is KtStringTemplateEntryWithExpression -> deparenthesized.expression + deparenthesized is KtUserType && deparenthesized.parent is KtNullableType -> deparenthesized.parent as KtNullableType else -> deparenthesized } } diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/types/nullableTypeWithooutQuestionMark.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/types/nullableTypeWithooutQuestionMark.kt new file mode 100644 index 00000000000..139d152312a --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/types/nullableTypeWithooutQuestionMark.kt @@ -0,0 +1,2 @@ + +fun x(): Int? = TODO() \ No newline at end of file diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/types/nullableTypeWithooutQuestionMark.txt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/types/nullableTypeWithooutQuestionMark.txt new file mode 100644 index 00000000000..d429d464497 --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/types/nullableTypeWithooutQuestionMark.txt @@ -0,0 +1,5 @@ +KT element: KtUserType +FIR element: FirResolvedTypeRefImpl + +FIR element rendered: +R|kotlin/Int?| 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 a28dc752a32..5bfa43e2d01 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 @@ -475,6 +475,12 @@ public class GetOrBuildFirTestGenerated extends AbstractGetOrBuildFirTest { runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/types/nestedTypeArgument.kt"); } + @Test + @TestMetadata("nullableTypeWithooutQuestionMark.kt") + public void testNullableTypeWithooutQuestionMark() throws Exception { + runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/types/nullableTypeWithooutQuestionMark.kt"); + } + @Test @TestMetadata("typeArgument.kt") public void testTypeArgument() throws Exception {