From 967ddb8bb076cd52c87eeb7aceef473175a10c4a Mon Sep 17 00:00:00 2001 From: Nikolay Lunyak Date: Wed, 15 Mar 2023 17:05:09 +0000 Subject: [PATCH] [FIR] KT-57211: Generate FirArrayOfCall for unsigned types ^KT-57211 Fixed Merge-request: KT-MR-9216 Merged-by: Nikolay Lunyak --- ...CompilerTestFE10TestdataTestGenerated.java | 6 +++++ ...eeOldFrontendDiagnosticsTestGenerated.java | 6 +++++ ...siOldFrontendDiagnosticsTestGenerated.java | 6 +++++ .../kotlin/fir/types/FirTypeUtils.kt | 5 +++-- .../compileTimeUnsignedArray.kt | 22 +++++++++++++++++++ .../test/runners/DiagnosticTestGenerated.java | 6 +++++ 6 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 compiler/testData/diagnostics/testsWithStdLib/compileTimeUnsignedArray.kt diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java index 7a43bb027df..7c6b36fe522 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java @@ -35817,6 +35817,12 @@ public class DiagnosisCompilerTestFE10TestdataTestGenerated extends AbstractDiag runTest("compiler/testData/diagnostics/testsWithStdLib/commonCollections.kt"); } + @Test + @TestMetadata("compileTimeUnsignedArray.kt") + public void testCompileTimeUnsignedArray() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/compileTimeUnsignedArray.kt"); + } + @Test @TestMetadata("elvisOnJavaList.kt") public void testElvisOnJavaList() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java index da2b675c22a..068f4f3d38e 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java @@ -35817,6 +35817,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/testsWithStdLib/commonCollections.kt"); } + @Test + @TestMetadata("compileTimeUnsignedArray.kt") + public void testCompileTimeUnsignedArray() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/compileTimeUnsignedArray.kt"); + } + @Test @TestMetadata("elvisOnJavaList.kt") public void testElvisOnJavaList() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java index a7b136b0dcf..7df67be31c2 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java @@ -35913,6 +35913,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/testsWithStdLib/commonCollections.kt"); } + @Test + @TestMetadata("compileTimeUnsignedArray.kt") + public void testCompileTimeUnsignedArray() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/compileTimeUnsignedArray.kt"); + } + @Test @TestMetadata("elvisOnJavaList.kt") public void testElvisOnJavaList() throws Exception { diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/FirTypeUtils.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/FirTypeUtils.kt index 55c456da48b..77897e3db94 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/FirTypeUtils.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/FirTypeUtils.kt @@ -42,8 +42,9 @@ val FirTypeRef.isString: Boolean get() = isBuiltinType(StandardClassIds.String, val FirTypeRef.isEnum: Boolean get() = isBuiltinType(StandardClassIds.Enum, false) val FirTypeRef.isArrayType: Boolean get() = - isBuiltinType(StandardClassIds.Array, false) || - StandardClassIds.primitiveArrayTypeByElementType.values.any { isBuiltinType(it, false) } + isBuiltinType(StandardClassIds.Array, false) + || StandardClassIds.primitiveArrayTypeByElementType.values.any { isBuiltinType(it, false) } + || StandardClassIds.unsignedArrayTypeByElementType.values.any { isBuiltinType(it, false) } val FirExpression.isNullLiteral: Boolean get() = this is FirConstExpression<*> && diff --git a/compiler/testData/diagnostics/testsWithStdLib/compileTimeUnsignedArray.kt b/compiler/testData/diagnostics/testsWithStdLib/compileTimeUnsignedArray.kt new file mode 100644 index 00000000000..83d705be3eb --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/compileTimeUnsignedArray.kt @@ -0,0 +1,22 @@ +// FIR_IDENTICAL +// ISSUE: KT-57211 + +@file:OptIn(ExperimentalUnsignedTypes::class) + +annotation class Ann( + val u: UInt, + val uba: UByteArray, + val usa: UShortArray, + val uia: UIntArray, + val ula: ULongArray, +) + +@OptIn(ExperimentalUnsignedTypes::class) +@Ann( + 1u, + [1u], + ushortArrayOf(), + [1u, 1u], + ulongArrayOf(1u, 1u), +) +fun foo() {} diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java index b6ab1f455af..f4da82fb65b 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java @@ -35913,6 +35913,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/testsWithStdLib/commonCollections.kt"); } + @Test + @TestMetadata("compileTimeUnsignedArray.kt") + public void testCompileTimeUnsignedArray() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/compileTimeUnsignedArray.kt"); + } + @Test @TestMetadata("elvisOnJavaList.kt") public void testElvisOnJavaList() throws Exception {