[FIR] KT-57211: Generate FirArrayOfCall for unsigned types
^KT-57211 Fixed
Merge-request: KT-MR-9216
Merged-by: Nikolay Lunyak <Nikolay.Lunyak@jetbrains.com>
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 7a43bb0..7c6b36f 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
@@ -35818,6 +35818,12 @@
}
@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 {
runTest("compiler/testData/diagnostics/testsWithStdLib/elvisOnJavaList.kt");
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 da2b675..068f4f3 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
@@ -35818,6 +35818,12 @@
}
@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 {
runTest("compiler/testData/diagnostics/testsWithStdLib/elvisOnJavaList.kt");
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 a7b136b..7df67be 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
@@ -35914,6 +35914,12 @@
}
@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 {
runTest("compiler/testData/diagnostics/testsWithStdLib/elvisOnJavaList.kt");
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 55c456d..77897e3 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.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 0000000..83d705b
--- /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 b6ab1f4..f4da82f 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
@@ -35914,6 +35914,12 @@
}
@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 {
runTest("compiler/testData/diagnostics/testsWithStdLib/elvisOnJavaList.kt");