A separate test for unsafe property initializers
diff --git a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesByPsiForLibraryTestGenerated.java b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesByPsiForLibraryTestGenerated.java
index 5ac6367..2b8b284 100644
--- a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesByPsiForLibraryTestGenerated.java
+++ b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesByPsiForLibraryTestGenerated.java
@@ -313,6 +313,12 @@
}
@Test
+ @TestMetadata("unsafePropertyInitializers.kt")
+ public void testUnsafePropertyInitializers() throws Exception {
+ runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/unsafePropertyInitializers.kt");
+ }
+
+ @Test
@TestMetadata("valueClassInSignature.kt")
public void testValueClassInSignature() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/valueClassInSignature.kt");
diff --git a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesByPsiForSourceTestGenerated.java b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesByPsiForSourceTestGenerated.java
index 84bb20e..bc9e6b4 100644
--- a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesByPsiForSourceTestGenerated.java
+++ b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesByPsiForSourceTestGenerated.java
@@ -313,6 +313,12 @@
}
@Test
+ @TestMetadata("unsafePropertyInitializers.kt")
+ public void testUnsafePropertyInitializers() throws Exception {
+ runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/unsafePropertyInitializers.kt");
+ }
+
+ @Test
@TestMetadata("valueClassInSignature.kt")
public void testValueClassInSignature() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/valueClassInSignature.kt");
diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/facades/properties.fir.java b/compiler/testData/asJava/lightClasses/lightClassByPsi/facades/properties.fir.java
index a726adb..84f814d 100644
--- a/compiler/testData/asJava/lightClasses/lightClassByPsi/facades/properties.fir.java
+++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/facades/properties.fir.java
@@ -3,9 +3,6 @@
private static final error.NonExistentClass delegatedProp$delegate;
@org.jetbrains.annotations.NotNull()
- private static final java.lang.Double[] doubleArrayConst = {-1.0, 1.0 / 0.0, -1.0 / 0.0, 0.0 / 0.0} /* initializer type: null */;
-
- @org.jetbrains.annotations.NotNull()
private static final java.lang.Object arrayConst = {1L, 2L} /* initializer type: null */;
@org.jetbrains.annotations.NotNull()
@@ -30,9 +27,6 @@
public static final java.lang.String SUBSYSTEM_DEPRECATED = "This subsystem is deprecated" /* initializer type: java.lang.String */ /* constant value This subsystem is deprecated */;
@org.jetbrains.annotations.Nullable()
- private static final java.lang.String nothing = null /* initializer type: null */;
-
- @org.jetbrains.annotations.Nullable()
private static java.lang.Boolean isEmptyMutable;
@org.jetbrains.annotations.Nullable()
@@ -79,9 +73,6 @@
protected static final java.lang.String getProtectedWithPrivateSet();// getProtectedWithPrivateSet()
@org.jetbrains.annotations.NotNull()
- public static final java.lang.Double[] getDoubleArrayConst();// getDoubleArrayConst()
-
- @org.jetbrains.annotations.NotNull()
public static final java.lang.Object getArrayConst();// getArrayConst()
@org.jetbrains.annotations.NotNull()
@@ -123,9 +114,6 @@
@org.jetbrains.annotations.Nullable()
public static final java.lang.Integer isEmptyInt();// isEmptyInt()
- @org.jetbrains.annotations.Nullable()
- public static final java.lang.String getNothing();// getNothing()
-
private static final int privateFun();// privateFun()
protected static final int getF2();// getF2()
diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/facades/properties.java b/compiler/testData/asJava/lightClasses/lightClassByPsi/facades/properties.java
index 0390eb4..3db2791 100644
--- a/compiler/testData/asJava/lightClasses/lightClassByPsi/facades/properties.java
+++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/facades/properties.java
@@ -1,27 +1,14 @@
-public final class C /* C*/ {
- public C();// .ctor()
-}
-
public final class PropertiesKt /* PropertiesKt*/ {
@org.jetbrains.annotations.NotNull()
- private static final java.lang.Double[] doubleArrayConst;
-
- @org.jetbrains.annotations.NotNull()
private static final java.lang.Object arrayConst;
@org.jetbrains.annotations.NotNull()
private static final java.lang.String x;
@org.jetbrains.annotations.NotNull()
- private static final kotlin.annotation.AnnotationTarget[] enums;
-
- @org.jetbrains.annotations.NotNull()
private static final kotlin.jvm.functions.Function1<java.lang.Integer, java.lang.Integer> sum;
@org.jetbrains.annotations.NotNull()
- private static final kotlin.reflect.KClass<? extends java.lang.Object>[] classes;
-
- @org.jetbrains.annotations.NotNull()
private static java.lang.String name;
@org.jetbrains.annotations.NotNull()
@@ -34,9 +21,6 @@
public static final java.lang.String SUBSYSTEM_DEPRECATED = "This subsystem is deprecated" /* initializer type: java.lang.String */ /* constant value This subsystem is deprecated */;
@org.jetbrains.annotations.Nullable()
- private static final java.lang.String nothing;
-
- @org.jetbrains.annotations.Nullable()
private static java.lang.Boolean isEmptyMutable;
@org.jetbrains.annotations.Nullable()
@@ -87,9 +71,6 @@
protected static final java.lang.String getProtectedWithPrivateSet();// getProtectedWithPrivateSet()
@org.jetbrains.annotations.NotNull()
- public static final java.lang.Double[] getDoubleArrayConst();// getDoubleArrayConst()
-
- @org.jetbrains.annotations.NotNull()
public static final java.lang.Object getArrayConst();// getArrayConst()
@org.jetbrains.annotations.NotNull()
@@ -114,14 +95,8 @@
public static final java.lang.String getX();// getX()
@org.jetbrains.annotations.NotNull()
- public static final kotlin.annotation.AnnotationTarget[] getEnums();// getEnums()
-
- @org.jetbrains.annotations.NotNull()
public static final kotlin.jvm.functions.Function1<java.lang.Integer, java.lang.Integer> getSum();// getSum()
- @org.jetbrains.annotations.NotNull()
- public static final kotlin.reflect.KClass<? extends java.lang.Object>[] getClasses();// getClasses()
-
@org.jetbrains.annotations.Nullable()
public static final java.lang.Boolean getIslowercase();// getIslowercase()
@@ -137,9 +112,6 @@
@org.jetbrains.annotations.Nullable()
public static final java.lang.Integer isEmptyInt();// isEmptyInt()
- @org.jetbrains.annotations.Nullable()
- public static final java.lang.String getNothing();// getNothing()
-
private static final int privateFun();// privateFun()
protected static final int getF2();// getF2()
diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/facades/properties.kt b/compiler/testData/asJava/lightClasses/lightClassByPsi/facades/properties.kt
index a1351bf..956e274 100644
--- a/compiler/testData/asJava/lightClasses/lightClassByPsi/facades/properties.kt
+++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/facades/properties.kt
@@ -3,11 +3,8 @@
val f1 = 2
-val nothing: String? = null
-
val intConst: dynamic = 30
val arrayConst: Any = byteArrayOf(1,2)
-val doubleArrayConst = arrayOf(-1.0, 1.0 / 0.0, -1.0 / 0.0, 0.0 / 0.0)
protected var f2 = 3
diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/unsafePropertyInitializers.java b/compiler/testData/asJava/lightClasses/lightClassByPsi/unsafePropertyInitializers.java
new file mode 100644
index 0000000..dfbd68cc
--- /dev/null
+++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/unsafePropertyInitializers.java
@@ -0,0 +1,91 @@
+public final class UnsafePropertyInitializersKt /* UnsafePropertyInitializersKt*/ {
+ @org.jetbrains.annotations.NotNull()
+ private static final char[] arrayOfCharPrimitives;
+
+ @org.jetbrains.annotations.NotNull()
+ private static final double[] arrayOfDoublePrimitives = {5.0, -1.23E-7, 4.9E-324, 1.7976931348623157E308, 0.0 / 0.0, 1.0 / 0.0, -1.0 / 0.0, 0.0 / 0.0, 1.0 / 0.0, -1.0 / 0.0} /* initializer type: null */;
+
+ @org.jetbrains.annotations.NotNull()
+ private static final float[] arrayOfFloatPrimitives = {5.0f, -1.23E-7f, 1.4E-45f, 3.4028235E38f, 0.0F / 0.0F, 1.0F / 0.0F, -1.0F / 0.0F, 0.0F / 0.0F, 1.0F / 0.0F, -1.0F / 0.0F} /* initializer type: null */;
+
+ @org.jetbrains.annotations.NotNull()
+ private static final int[] arrayOfIntPrimitives = {5, -1L, 2147483647, -2147483648} /* initializer type: null */;
+
+ @org.jetbrains.annotations.NotNull()
+ private static final java.lang.Character[] arrayOfCharObjects;
+
+ @org.jetbrains.annotations.NotNull()
+ private static final java.lang.Double[] arrayOfDoubleObjects = {5.0, -1.23E-7, 4.9E-324, 1.7976931348623157E308, 0.0 / 0.0, 1.0 / 0.0, -1.0 / 0.0, 0.0 / 0.0, 1.0 / 0.0, -1.0 / 0.0} /* initializer type: null */;
+
+ @org.jetbrains.annotations.NotNull()
+ private static final java.lang.Float[] arrayOfFloatObjects = {5.0f, -1.23E-7f, 1.4E-45f, 3.4028235E38f, 0.0F / 0.0F, 1.0F / 0.0F, -1.0F / 0.0F, 0.0F / 0.0F, 1.0F / 0.0F, -1.0F / 0.0F} /* initializer type: null */;
+
+ @org.jetbrains.annotations.NotNull()
+ private static final java.lang.Integer[] arrayOfIntObjects = {5, -1L, 2147483647, -2147483648} /* initializer type: null */;
+
+ @org.jetbrains.annotations.NotNull()
+ private static final java.lang.Long[] arrayOfLongObjects = {5L, -1L, 9223372036854775807L, -9223372036854775808L} /* initializer type: null */;
+
+ @org.jetbrains.annotations.NotNull()
+ private static final java.lang.Object[] arrayOfNAny = {1L, 2L, "abc", kotlin.annotation.AnnotationTarget.CLASS, null} /* initializer type: null */;
+
+ @org.jetbrains.annotations.NotNull()
+ private static final java.lang.String[] arrayOfStrings = {"", "quotes \" ''quotes", "\r\n", "\u4F60\u597D\u4E16\u754C"} /* initializer type: null */;
+
+ @org.jetbrains.annotations.NotNull()
+ private static final java.util.List<java.lang.String> listOfStrings;
+
+ @org.jetbrains.annotations.NotNull()
+ private static final kotlin.annotation.AnnotationTarget[] arrayOfEnums = {kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.PROPERTY} /* initializer type: null */;
+
+ @org.jetbrains.annotations.NotNull()
+ private static final long[] arrayOfLongPrimitives = {5L, -1L, 9223372036854775807L, -9223372036854775808L} /* initializer type: null */;
+
+ @org.jetbrains.annotations.Nullable()
+ private static final java.lang.String nullable = null /* initializer type: null */;
+
+ @org.jetbrains.annotations.NotNull()
+ public static final char[] getArrayOfCharPrimitives();// getArrayOfCharPrimitives()
+
+ @org.jetbrains.annotations.NotNull()
+ public static final double[] getArrayOfDoublePrimitives();// getArrayOfDoublePrimitives()
+
+ @org.jetbrains.annotations.NotNull()
+ public static final float[] getArrayOfFloatPrimitives();// getArrayOfFloatPrimitives()
+
+ @org.jetbrains.annotations.NotNull()
+ public static final int[] getArrayOfIntPrimitives();// getArrayOfIntPrimitives()
+
+ @org.jetbrains.annotations.NotNull()
+ public static final java.lang.Character[] getArrayOfCharObjects();// getArrayOfCharObjects()
+
+ @org.jetbrains.annotations.NotNull()
+ public static final java.lang.Double[] getArrayOfDoubleObjects();// getArrayOfDoubleObjects()
+
+ @org.jetbrains.annotations.NotNull()
+ public static final java.lang.Float[] getArrayOfFloatObjects();// getArrayOfFloatObjects()
+
+ @org.jetbrains.annotations.NotNull()
+ public static final java.lang.Integer[] getArrayOfIntObjects();// getArrayOfIntObjects()
+
+ @org.jetbrains.annotations.NotNull()
+ public static final java.lang.Long[] getArrayOfLongObjects();// getArrayOfLongObjects()
+
+ @org.jetbrains.annotations.NotNull()
+ public static final java.lang.Object[] getArrayOfNAny();// getArrayOfNAny()
+
+ @org.jetbrains.annotations.NotNull()
+ public static final java.lang.String[] getArrayOfStrings();// getArrayOfStrings()
+
+ @org.jetbrains.annotations.NotNull()
+ public static final java.util.List<java.lang.String> getListOfStrings();// getListOfStrings()
+
+ @org.jetbrains.annotations.NotNull()
+ public static final kotlin.annotation.AnnotationTarget[] getArrayOfEnums();// getArrayOfEnums()
+
+ @org.jetbrains.annotations.NotNull()
+ public static final long[] getArrayOfLongPrimitives();// getArrayOfLongPrimitives()
+
+ @org.jetbrains.annotations.Nullable()
+ public static final java.lang.String getNullable();// getNullable()
+}
diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/unsafePropertyInitializers.kt b/compiler/testData/asJava/lightClasses/lightClassByPsi/unsafePropertyInitializers.kt
new file mode 100644
index 0000000..3e1568e
--- /dev/null
+++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/unsafePropertyInitializers.kt
@@ -0,0 +1,15 @@
+val nullable: String? = null
+val listOfStrings = listOf("no lists, sorry")
+val arrayOfIntObjects = arrayOf(2 + 3, -1, Int.MAX_VALUE, Int.MIN_VALUE)
+val arrayOfIntPrimitives = intArrayOf(2 + 3, -1, Int.MAX_VALUE, Int.MIN_VALUE)
+val arrayOfLongObjects = arrayOf(2L + 3L, -1L, Long.MAX_VALUE, Long.MIN_VALUE)
+val arrayOfLongPrimitives = longArrayOf(2L + 3L, -1L, Long.MAX_VALUE, Long.MIN_VALUE)
+val arrayOfCharObjects = arrayOf('C', 0.toChar(), '\n', '\r', '\'', 0xff.toChar())
+val arrayOfCharPrimitives = charArrayOf('C', 0.toChar(), '\n', '\r', '\'', 0xff.toChar())
+val arrayOfDoubleObjects = arrayOf(2.0 + 3.0, -1.23E-7, Double.MIN_VALUE, Double.MAX_VALUE, Double.NaN, Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY, 0.0 / 0.0, 1.0 / 0.0, -1.0 / 0.0)
+val arrayOfDoublePrimitives = doubleArrayOf(2.0 + 3.0, -1.23E-7, Double.MIN_VALUE, Double.MAX_VALUE, Double.NaN, Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY, 0.0 / 0.0, 1.0 / 0.0, -1.0 / 0.0)
+val arrayOfFloatObjects = arrayOf(2f + 3f, -1.23E-7f, Float.MIN_VALUE, Float.MAX_VALUE, Float.NaN, Float.POSITIVE_INFINITY, Float.NEGATIVE_INFINITY, 0.0f / 0.0f, 1.0f / 0.0f, -1.0f / 0.0f)
+val arrayOfFloatPrimitives = floatArrayOf(2f + 3f, -1.23E-7f, Float.MIN_VALUE, Float.MAX_VALUE, Float.NaN, Float.POSITIVE_INFINITY, Float.NEGATIVE_INFINITY, 0.0f / 0.0f, 1.0f / 0.0f, -1.0f / 0.0f)
+val arrayOfStrings = arrayOf("", "quotes \" ''quotes", "\r\n", "你好世界")
+val arrayOfEnums = arrayOf(AnnotationTarget.CLASS, AnnotationTarget.PROPERTY)
+val arrayOfNAny = arrayOf(1, 2L, "abc", AnnotationTarget.CLASS, null)
\ No newline at end of file
diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/unsafePropertyInitializers.lib.java b/compiler/testData/asJava/lightClasses/lightClassByPsi/unsafePropertyInitializers.lib.java
new file mode 100644
index 0000000..c52f005
--- /dev/null
+++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/unsafePropertyInitializers.lib.java
@@ -0,0 +1,91 @@
+public final class UnsafePropertyInitializersKt /* UnsafePropertyInitializersKt*/ {
+ @org.jetbrains.annotations.NotNull()
+ private static final char[] arrayOfCharPrimitives;
+
+ @org.jetbrains.annotations.NotNull()
+ private static final double[] arrayOfDoublePrimitives;
+
+ @org.jetbrains.annotations.NotNull()
+ private static final float[] arrayOfFloatPrimitives;
+
+ @org.jetbrains.annotations.NotNull()
+ private static final int[] arrayOfIntPrimitives;
+
+ @org.jetbrains.annotations.NotNull()
+ private static final java.lang.Character[] arrayOfCharObjects;
+
+ @org.jetbrains.annotations.NotNull()
+ private static final java.lang.Double[] arrayOfDoubleObjects;
+
+ @org.jetbrains.annotations.NotNull()
+ private static final java.lang.Float[] arrayOfFloatObjects;
+
+ @org.jetbrains.annotations.NotNull()
+ private static final java.lang.Integer[] arrayOfIntObjects;
+
+ @org.jetbrains.annotations.NotNull()
+ private static final java.lang.Long[] arrayOfLongObjects;
+
+ @org.jetbrains.annotations.NotNull()
+ private static final java.lang.Object[] arrayOfNAny;
+
+ @org.jetbrains.annotations.NotNull()
+ private static final java.lang.String[] arrayOfStrings;
+
+ @org.jetbrains.annotations.NotNull()
+ private static final java.util.List<java.lang.String> listOfStrings;
+
+ @org.jetbrains.annotations.NotNull()
+ private static final kotlin.annotation.AnnotationTarget[] arrayOfEnums;
+
+ @org.jetbrains.annotations.NotNull()
+ private static final long[] arrayOfLongPrimitives;
+
+ @org.jetbrains.annotations.Nullable()
+ private static final java.lang.String nullable;
+
+ @org.jetbrains.annotations.NotNull()
+ public static final char[] getArrayOfCharPrimitives();// getArrayOfCharPrimitives()
+
+ @org.jetbrains.annotations.NotNull()
+ public static final double[] getArrayOfDoublePrimitives();// getArrayOfDoublePrimitives()
+
+ @org.jetbrains.annotations.NotNull()
+ public static final float[] getArrayOfFloatPrimitives();// getArrayOfFloatPrimitives()
+
+ @org.jetbrains.annotations.NotNull()
+ public static final int[] getArrayOfIntPrimitives();// getArrayOfIntPrimitives()
+
+ @org.jetbrains.annotations.NotNull()
+ public static final java.lang.Character[] getArrayOfCharObjects();// getArrayOfCharObjects()
+
+ @org.jetbrains.annotations.NotNull()
+ public static final java.lang.Double[] getArrayOfDoubleObjects();// getArrayOfDoubleObjects()
+
+ @org.jetbrains.annotations.NotNull()
+ public static final java.lang.Float[] getArrayOfFloatObjects();// getArrayOfFloatObjects()
+
+ @org.jetbrains.annotations.NotNull()
+ public static final java.lang.Integer[] getArrayOfIntObjects();// getArrayOfIntObjects()
+
+ @org.jetbrains.annotations.NotNull()
+ public static final java.lang.Long[] getArrayOfLongObjects();// getArrayOfLongObjects()
+
+ @org.jetbrains.annotations.NotNull()
+ public static final java.lang.Object[] getArrayOfNAny();// getArrayOfNAny()
+
+ @org.jetbrains.annotations.NotNull()
+ public static final java.lang.String[] getArrayOfStrings();// getArrayOfStrings()
+
+ @org.jetbrains.annotations.NotNull()
+ public static final java.util.List<java.lang.String> getListOfStrings();// getListOfStrings()
+
+ @org.jetbrains.annotations.NotNull()
+ public static final kotlin.annotation.AnnotationTarget[] getArrayOfEnums();// getArrayOfEnums()
+
+ @org.jetbrains.annotations.NotNull()
+ public static final long[] getArrayOfLongPrimitives();// getArrayOfLongPrimitives()
+
+ @org.jetbrains.annotations.Nullable()
+ public static final java.lang.String getNullable();// getNullable()
+}