diff --git a/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-1/pos/1.1.kt b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-1/pos/1.1.kt new file mode 100644 index 00000000000..f584662d309 --- /dev/null +++ b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-1/pos/1.1.kt @@ -0,0 +1,93 @@ +/* + * KOTLIN CODEGEN BOX SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 1 + * SENTENCE: [1] A real literal consists of the following parts: the whole-number part, the decimal point (ASCII period character .), the fraction part and the exponent. + * NUMBER: 1 + * DESCRIPTION: Simple real literals with a different whole-number part and fraction part. + */ + +val value_1 = 0.0 +val value_2 = 0.00 +val value_3 = 0.000 +val value_4 = 0.0000 + +val value_5 = 00.0 +val value_6 = 000.00 +val value_7 = 0000.000 + +val value_8 = 1.0 +val value_9 = 22.00 +val value_10 = 333.000 +val value_11 = 4444.0000 +val value_12 = 55555.0 +val value_13 = 666666.00 +val value_14 = 7777777.000 +val value_15 = 88888888.0000 +val value_16 = 999999999.0 + +val value_17 = 0000000000.1234567890 +val value_18 = 123456789.23456789 +val value_19 = 2345678.345678 +val value_20 = 34567.4567 +val value_21 = 456.56 + +fun box(): String? { + val value_22 = 5.65 + val value_23 = 654.7654 + val value_24 = 76543.876543 + val value_25 = 8765432.98765432 + val value_26 = 987654321.0987654321 + + val value_27 = 0.1111 + val value_28 = 1.22222 + val value_29 = 9.33333 + val value_30 = 9.444444 + val value_31 = 8.5555555 + val value_32 = 2.66666666 + val value_33 = 3.777777777 + val value_34 = 7.8888888888 + val value_35 = 6.99999999999 + + if (value_1.compareTo(0.0) != 0) return null + if (value_2.compareTo(0.00) != 0 || value_2.compareTo(0.0) != 0) return null + if (value_3.compareTo(0.000) != 0 || value_3.compareTo(0.000) != 0) return null + if (value_4.compareTo(0.0000) != 0 || value_4.compareTo(0.0) != 0) return null + if (value_5.compareTo(00.0) != 0 || value_5.compareTo(0.0) != 0) return null + if (value_6.compareTo(000.000) != 0 || value_6.compareTo(0.0) != 0) return null + if (value_7.compareTo(0000.000) != 0 || value_7.compareTo(0.0) != 0) return null + + if (value_8.compareTo(1.0) != 0) return null + if (value_9.compareTo(22.00) != 0 || value_9.compareTo(22.0) != 0) return null + if (value_10.compareTo(333.000) != 0 || value_10.compareTo(333.0) != 0) return null + if (value_11.compareTo(4444.0000) != 0 || value_11.compareTo(4444.0) != 0) return null + if (value_12.compareTo(55555.0) != 0) return null + if (value_13.compareTo(666666.00) != 0 || value_13.compareTo(666666.0) != 0) return null + if (value_14.compareTo(7777777.000) != 0 || value_14.compareTo(7777777.0) != 0) return null + if (value_15.compareTo(88888888.0000) != 0 || value_15.compareTo(88888888.0) != 0) return null + if (value_16.compareTo(999999999.0) != 0) return null + + if (value_17.compareTo(0000000000.1234567890) != 0 || value_17.compareTo(0.1234567890) != 0) return null + if (value_18.compareTo(123456789.23456789) != 0) return null + if (value_19.compareTo(2345678.345678) != 0) return null + if (value_20.compareTo(34567.4567) != 0) return null + if (value_21.compareTo(456.56) != 0) return null + if (value_22.compareTo(5.65) != 0) return null + if (value_23.compareTo(654.7654) != 0) return null + if (value_24.compareTo(76543.876543) != 0) return null + if (value_25.compareTo(8765432.98765432) != 0) return null + if (value_26.compareTo(987654321.0987654321) != 0) return null + + if (value_27.compareTo(0.1111) != 0) return null + if (value_28.compareTo(1.22222) != 0) return null + if (value_29.compareTo(9.33333) != 0) return null + if (value_30.compareTo(9.444444) != 0) return null + if (value_31.compareTo(8.5555555) != 0) return null + if (value_32.compareTo(2.66666666) != 0) return null + if (value_33.compareTo(3.777777777) != 0) return null + if (value_34.compareTo(7.8888888888) != 0) return null + if (value_35.compareTo(6.99999999999) != 0) return null + + return "OK" +} diff --git a/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-1/pos/3.1.kt b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-1/pos/3.1.kt new file mode 100644 index 00000000000..4e98f149ced --- /dev/null +++ b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-1/pos/3.1.kt @@ -0,0 +1,93 @@ +/* + * KOTLIN CODEGEN BOX SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 1 + * SENTENCE: [3] A real literal may also be followed by a type suffix (f or F). + * NUMBER: 1 + * DESCRIPTION: Simple real literals suffixed by f/F (the float suffix) with a different whole-number part and fraction part. + */ + +val value_1 = 0.0f +val value_2 = 0.00F +val value_3 = 0.000f +val value_4 = 0.0000F + +val value_5 = 00.0f +val value_6 = 000.00f +val value_7 = 0000.000F + +val value_8 = 1.0F +val value_9 = 22.00F +val value_10 = 333.000F +val value_11 = 4444.0000f +val value_12 = 55555.0f +val value_13 = 666666.00f +val value_14 = 7777777.000F +val value_15 = 88888888.0000f +val value_16 = 999999999.0F + +val value_17 = 0000000000.1234567890f +val value_18 = 123456789.23456789f +val value_19 = 2345678.345678F +val value_20 = 34567.4567f +val value_21 = 456.56F + +fun box(): String? { + val value_22 = 5.65F + val value_23 = 654.7654f + val value_24 = 76543.876543f + val value_25 = 8765432.98765432F + val value_26 = 987654321.0987654321f + + val value_27 = 0.1111f + val value_28 = 1.22222f + val value_29 = 9.33333F + val value_30 = 9.444444F + val value_31 = 8.5555555F + val value_32 = 2.66666666F + val value_33 = 3.777777777F + val value_34 = 7.8888888888f + val value_35 = 6.99999999999f + + if (value_1.compareTo(0.0F) != 0) return null + if (value_2.compareTo(0.00f) != 0 || value_2.compareTo(0.0f) != 0) return null + if (value_3.compareTo(0.000F) != 0 || value_3.compareTo(0.000f) != 0) return null + if (value_4.compareTo(0.0000f) != 0 || value_4.compareTo(0.0F) != 0) return null + if (value_5.compareTo(00.0f) != 0 || value_5.compareTo(0.0F) != 0) return null + if (value_6.compareTo(000.000f) != 0 || value_6.compareTo(0.0F) != 0) return null + if (value_7.compareTo(0000.000f) != 0 || value_7.compareTo(0.0f) != 0) return null + + if (value_8.compareTo(1.0F) != 0) return null + if (value_9.compareTo(22.00F) != 0 || value_9.compareTo(22.0F) != 0) return null + if (value_10.compareTo(333.000F) != 0 || value_10.compareTo(333.0f) != 0) return null + if (value_11.compareTo(4444.0000f) != 0 || value_11.compareTo(4444.0f) != 0) return null + if (value_12.compareTo(55555.0F) != 0) return null + if (value_13.compareTo(666666.00F) != 0 || value_13.compareTo(666666.0f) != 0) return null + if (value_14.compareTo(7777777.000f) != 0 || value_14.compareTo(7777777.0F) != 0) return null + if (value_15.compareTo(88888888.0000f) != 0 || value_15.compareTo(88888888.0F) != 0) return null + if (value_16.compareTo(999999999.0f) != 0) return null + + if (value_17.compareTo(0000000000.1234567890f) != 0 || value_17.compareTo(0.1234567890F) != 0) return null + if (value_18.compareTo(123456789.23456789F) != 0) return null + if (value_19.compareTo(2345678.345678F) != 0) return null + if (value_20.compareTo(34567.4567f) != 0) return null + if (value_21.compareTo(456.56f) != 0) return null + if (value_22.compareTo(5.65F) != 0) return null + if (value_23.compareTo(654.7654f) != 0) return null + if (value_24.compareTo(76543.876543F) != 0) return null + if (value_25.compareTo(8765432.98765432F) != 0) return null + if (value_26.compareTo(987654321.0987654321f) != 0) return null + + if (value_27.compareTo(0.1111f) != 0) return null + if (value_28.compareTo(1.22222f) != 0) return null + if (value_29.compareTo(9.33333f) != 0) return null + if (value_30.compareTo(9.444444f) != 0) return null + if (value_31.compareTo(8.5555555F) != 0) return null + if (value_32.compareTo(2.66666666F) != 0) return null + if (value_33.compareTo(3.777777777f) != 0) return null + if (value_34.compareTo(7.8888888888F) != 0) return null + if (value_35.compareTo(6.99999999999f) != 0) return null + + return "OK" +} diff --git a/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-2/pos/1.1.kt b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-2/pos/1.1.kt new file mode 100644 index 00000000000..bf27c6f1f9e --- /dev/null +++ b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-2/pos/1.1.kt @@ -0,0 +1,73 @@ +/* + * KOTLIN CODEGEN BOX SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 2 + * SENTENCE: [1] The exponent is an exponent mark (e or E) followed by an optionaly signed decimal integer (a sequence of decimal digits). + * NUMBER: 1 + * DESCRIPTION: Simple real literals with an exponent mark. + */ + +val value_1 = 0.0e0 +val value_2 = 0.0e-00 +val value_3 = 0.0E000 +val value_4 = 0.0E+0000 + +val value_5 = 00.0e+0 +val value_6 = 000.00e00 +val value_7 = 0000.000E-000 + +val value_8 = 1.0E+1 +val value_9 = 22.00e22 +val value_10 = 2345678.345678e00000000001 +val value_11 = 456.56e-0 +val value_12 = 5.65e000000000000 +val value_13 = 654.7654E+010 +val value_14 = 76543.876543E1 +val value_15 = 8765432.98765432e-2 +val value_16 = 987654321.0987654321E-3 + +val value_17 = 0.1111e4 +val value_18 = 1.22222E-5 +val value_19 = 9.33333e+6 +val value_20 = 9.444444E7 +val value_21 = 8.5555555e8 +val value_22 = 3.777777777E-308 +val value_23 = 6.99999999999e-309 + +val value_24 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +val value_25 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +val value_26 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + +fun box(): String? { + if (value_1.compareTo(0.0e0) != 0 || value_1.compareTo(0.0) != 0) return null + if (value_2.compareTo(0.0e-00) != 0 || value_2.compareTo(0.0) != 0) return null + if (value_3.compareTo(0.0E000) != 0 || value_3.compareTo(0.0) != 0) return null + if (value_4.compareTo(0.0E+0000) != 0 || value_4.compareTo(0.0) != 0) return null + if (value_5.compareTo(00.0e+0) != 0 || value_5.compareTo(0.0) != 0) return null + if (value_6.compareTo(000.00e00) != 0 || value_6.compareTo(0.0) != 0) return null + if (value_7.compareTo(0000.000E-000) != 0 || value_7.compareTo(0.0) != 0) return null + + if (value_8.compareTo(1.0E+1) != 0 || value_8.compareTo(10.0) != 0) return null + if (value_9.compareTo(22.00e22) != 0 || value_9.compareTo(2.2E23) != 0) return null + if (value_10.compareTo(2345678.345678e00000000001) != 0 || value_10.compareTo(2.345678345678E7) != 0) return null + if (value_11.compareTo(456.56e-0) != 0 || value_11.compareTo(456.56) != 0) return null + if (value_12.compareTo(5.65e000000000000) != 0 || value_12.compareTo(5.65) != 0) return null + if (value_13.compareTo(654.7654E+010) != 0 || value_13.compareTo(6.547654E12) != 0) return null + if (value_14.compareTo(76543.876543E1) != 0 || value_14.compareTo(765438.76543) != 0) return null + if (value_15.compareTo(8765432.98765432e-2) != 0 || value_15.compareTo(87654.3298765432) != 0) return null + if (value_16.compareTo(987654321.0987654321E-3) != 0 || value_16.compareTo(987654.3210987655) != 0) return null + + if (value_17.compareTo(0.1111e4) != 0 || value_17.compareTo(1111.0) != 0) return null + if (value_18.compareTo(1.22222E-5) != 0) return null + if (value_19.compareTo(9.33333e+6) != 0 || value_19.compareTo(9333330.0) != 0) return null + if (value_20.compareTo(9.444444E7) != 0) return null + if (value_21.compareTo(8.5555555e8) != 0 || value_21.compareTo(8.5555555E8) != 0) return null + if (value_22.compareTo(3.777777777E-308) != 0) return null + if (value_23.compareTo(6.99999999999e-309) != 0 || value_23.compareTo(6.99999999999E-309) != 0) return null + if (value_24.compareTo(0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) != 0 || value_24.compareTo(0.0) != 0) return null + if (value_25.compareTo(0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) != 0 || value_25.compareTo(0.0) != 0) return null + if (value_26.compareTo(0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) != 0 || value_26.compareTo(0.0) != 0) return null + + return "OK" +} diff --git a/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-2/pos/1.2.kt b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-2/pos/1.2.kt new file mode 100644 index 00000000000..83d5c2da810 --- /dev/null +++ b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-2/pos/1.2.kt @@ -0,0 +1,73 @@ +/* + * KOTLIN CODEGEN BOX SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 2 + * SENTENCE: [1] The exponent is an exponent mark (e or E) followed by an optionaly signed decimal integer (a sequence of decimal digits). + * NUMBER: 2 + * DESCRIPTION: Real literals suffixed by f/F (float suffix) with an exponent mark. + */ + +val value_1 = 0.0e0f +val value_2 = 0.0e-00F +val value_3 = 0.0E000F +val value_4 = 0.0E+0000f + +val value_5 = 00.0e+0f +val value_6 = 000.00e00f +val value_7 = 0000.000E-000F + +val value_8 = 1.0E+1F +val value_9 = 22.00e22F +val value_10 = 2345678.345678e00000000001F +val value_11 = 456.56e-0f +val value_12 = 5.65e000000000000F +val value_13 = 654.7654E+010f +val value_14 = 76543.876543E1f +val value_15 = 8765432.98765432e-2f +val value_16 = 987654321.0987654321E-3f + +fun box(): String? { + val value_17 = 0.1111e4f + val value_18 = 1.22222E-5F + val value_19 = 9.33333e+6F + val value_20 = 9.444444E7F + val value_21 = 8.5555555e8f + val value_22 = 3.777777777E-308f + val value_23 = 6.99999999999e-309F + + val value_24 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f + val value_25 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F + val value_26 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f + + if (value_1.compareTo(0.0e0f) != 0 || value_1.compareTo(0.0f) != 0) return null + if (value_2.compareTo(0.0e-00F) != 0 || value_2.compareTo(0.0F) != 0) return null + if (value_3.compareTo(0.0E000f) != 0 || value_3.compareTo(0.0f) != 0) return null + if (value_4.compareTo(0.0E+0000F) != 0 || value_4.compareTo(0.0F) != 0) return null + if (value_5.compareTo(00.0e+0f) != 0 || value_5.compareTo(0.0f) != 0) return null + if (value_6.compareTo(000.00e00F) != 0 || value_6.compareTo(0.0f) != 0) return null + if (value_7.compareTo(0000.000E-000F) != 0 || value_7.compareTo(0.0f) != 0) return null + + if (value_8.compareTo(1.0E+1F) != 0 || value_8.compareTo(10.0F) != 0) return null + if (value_9.compareTo(22.00e22F) != 0 || value_9.compareTo(2.2E23F) != 0) return null + if (value_10.compareTo(2345678.345678e00000000001f) != 0 || value_10.compareTo(2.345678345678E7F) != 0) return null + if (value_11.compareTo(456.56e-0F) != 0 || value_11.compareTo(456.56f) != 0) return null + if (value_12.compareTo(5.65e000000000000f) != 0 || value_12.compareTo(5.65F) != 0) return null + if (value_13.compareTo(654.7654E+010f) != 0 || value_13.compareTo(6.547654E12f) != 0) return null + if (value_14.compareTo(76543.876543E1F) != 0 || value_14.compareTo(765438.76543f) != 0) return null + if (value_15.compareTo(8765432.98765432e-2f) != 0 || value_15.compareTo(87654.3298765432f) != 0) return null + if (value_16.compareTo(987654321.0987654321E-3f) != 0 || value_16.compareTo(987654.3210987655f) != 0) return null + + if (value_17.compareTo(0.1111e4f) != 0 || value_17.compareTo(1111.0f) != 0) return null + if (value_18.compareTo(1.22222E-5F) != 0) return null + if (value_19.compareTo(9.33333e+6F) != 0 || value_19.compareTo(9333330.0f) != 0) return null + if (value_20.compareTo(9.444444E7F) != 0) return null + if (value_21.compareTo(8.5555555e8f) != 0 || value_21.compareTo(8.5555555E8f) != 0) return null + if (value_22.compareTo(3.777777777E-308f) != 0) return null + if (value_23.compareTo(6.99999999999e-309F) != 0 || value_23.compareTo(6.99999999999E-309F) != 0) return null + if (value_24.compareTo(0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F) != 0 || value_24.compareTo(0.0f) != 0) return null + if (value_25.compareTo(0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f) != 0 || value_25.compareTo(0.0f) != 0) return null + if (value_26.compareTo(0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F) != 0 || value_26.compareTo(0.0F) != 0) return null + + return "OK" +} diff --git a/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos/1.1.kt b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos/1.1.kt new file mode 100644 index 00000000000..04ee7a7cbac --- /dev/null +++ b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos/1.1.kt @@ -0,0 +1,66 @@ +/* + * KOTLIN CODEGEN BOX SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [1] The whole-number part and the exponent part may be omitted. + * NUMBER: 1 + * DESCRIPTION: Simple real literals with omitted a whole-number part. + */ + +val value_1 = .0 +val value_2 = .00 +val value_3 = .000 +val value_4 = .0000 + +val value_5 = .1234567890 +val value_6 = .23456789 +val value_7 = .345678 +val value_8 = .4567 +val value_9 = .56 + +fun box(): String? { + val value_10 = .65 + val value_11 = .7654 + val value_12 = .876543 + val value_13 = .98765432 + val value_14 = .0987654321 + + val value_15 = .1111 + val value_16 = .22222 + val value_17 = .33333 + val value_18 = .444444 + val value_19 = .5555555 + val value_20 = .66666666 + val value_21 = .777777777 + val value_22 = .8888888888 + val value_23 = .99999999999 + + if (value_1.compareTo(.0) != 0) return null + if (value_2.compareTo(.00) != 0 || value_2.compareTo(.0) != 0) return null + if (value_3.compareTo(.000) != 0 || value_3.compareTo(.0) != 0) return null + if (value_4.compareTo(.0000) != 0 || value_4.compareTo(.0) != 0) return null + + if (value_5.compareTo(.1234567890) != 0 || value_5.compareTo(.1234567890) != 0) return null + if (value_6.compareTo(.23456789) != 0) return null + if (value_7.compareTo(.345678) != 0) return null + if (value_8.compareTo(.4567) != 0) return null + if (value_9.compareTo(.56) != 0) return null + if (value_10.compareTo(.65) != 0) return null + if (value_11.compareTo(.7654) != 0) return null + if (value_12.compareTo(.876543) != 0) return null + if (value_13.compareTo(.98765432) != 0) return null + if (value_14.compareTo(.0987654321) != 0) return null + + if (value_15.compareTo(.1111) != 0) return null + if (value_16.compareTo(.22222) != 0) return null + if (value_17.compareTo(.33333) != 0) return null + if (value_18.compareTo(.444444) != 0) return null + if (value_19.compareTo(.5555555) != 0) return null + if (value_20.compareTo(.66666666) != 0) return null + if (value_21.compareTo(.777777777) != 0) return null + if (value_22.compareTo(.8888888888) != 0) return null + if (value_23.compareTo(.99999999999) != 0) return null + + return "OK" +} diff --git a/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos/1.2.kt b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos/1.2.kt new file mode 100644 index 00000000000..ca439bef686 --- /dev/null +++ b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos/1.2.kt @@ -0,0 +1,66 @@ +/* + * KOTLIN CODEGEN BOX SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [1] The whole-number part and the exponent part may be omitted. + * NUMBER: 2 + * DESCRIPTION: Real literals suffixed by f/F (float suffix) with omitted a whole-number part. + */ + +val value_1 = .0F +val value_2 = .00F +val value_3 = .000F +val value_4 = .0000f + +val value_5 = .1234567890f +val value_6 = .23456789f +val value_7 = .345678F +val value_8 = .4567f +val value_9 = .56F + +fun box(): String? { + val value_10 = .65F + val value_11 = .7654f + val value_12 = .876543f + val value_13 = .98765432F + val value_14 = .0987654321f + + val value_15 = .1111f + val value_16 = .22222f + val value_17 = .33333F + val value_18 = .444444F + val value_19 = .5555555F + val value_20 = .66666666F + val value_21 = .777777777F + val value_22 = .8888888888f + val value_23 = .99999999999f + + if (value_1.compareTo(.0F) != 0) return null + if (value_2.compareTo(.00F) != 0 || value_2.compareTo(.0F) != 0) return null + if (value_3.compareTo(.000F) != 0 || value_3.compareTo(.0f) != 0) return null + if (value_4.compareTo(.0000f) != 0 || value_4.compareTo(.0f) != 0) return null + + if (value_5.compareTo(.1234567890f) != 0 || value_5.compareTo(.1234567890F) != 0) return null + if (value_6.compareTo(.23456789F) != 0) return null + if (value_7.compareTo(.345678F) != 0) return null + if (value_8.compareTo(.4567f) != 0) return null + if (value_9.compareTo(.56f) != 0) return null + if (value_10.compareTo(.65F) != 0) return null + if (value_11.compareTo(.7654f) != 0) return null + if (value_12.compareTo(.876543F) != 0) return null + if (value_13.compareTo(.98765432F) != 0) return null + if (value_14.compareTo(.0987654321f) != 0) return null + + if (value_15.compareTo(.1111f) != 0) return null + if (value_16.compareTo(.22222f) != 0) return null + if (value_17.compareTo(.33333f) != 0) return null + if (value_18.compareTo(.444444f) != 0) return null + if (value_19.compareTo(.5555555F) != 0) return null + if (value_20.compareTo(.66666666F) != 0) return null + if (value_21.compareTo(.777777777f) != 0) return null + if (value_22.compareTo(.8888888888F) != 0) return null + if (value_23.compareTo(.99999999999f) != 0) return null + + return "OK" +} diff --git a/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos/1.3.kt b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos/1.3.kt new file mode 100644 index 00000000000..204bc1cf27a --- /dev/null +++ b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos/1.3.kt @@ -0,0 +1,72 @@ +/* + * KOTLIN CODEGEN BOX SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [1] The whole-number part and the exponent part may be omitted. + * NUMBER: 3 + * DESCRIPTION: Real literals with omitted a whole-number part and an exponent mark. + */ + +val value_1 = .0e0 +val value_2 = .0e-00 +val value_3 = .0E000 +val value_4 = .0E+0000 +val value_5 = .0e+0 +val value_6 = .00e00 +val value_7 = .000E-000 + +val value_8 = .0E+1 +val value_9 = .00e22 +val value_10 = .345678e00000000001 +val value_11 = .56e-0 +val value_12 = .65e000000000000 +val value_13 = .7654E+010 +val value_14 = .876543E1 +val value_15 = .98765432e-2 +val value_16 = .0987654321E-3 + +val value_17 = .1111e4 +val value_18 = .22222E-5 +val value_19 = .33333e+6 +val value_20 = .444444E7 +val value_21 = .5555555e8 +val value_22 = .777777777E-308 +val value_23 = .99999999999e-309 + +val value_24 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +val value_25 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +val value_26 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + +fun box(): String? { + if (value_1.compareTo(.0e0) != 0 || value_1.compareTo(0.0) != 0) return null + if (value_2.compareTo(.0e-00) != 0 || value_2.compareTo(0.0) != 0) return null + if (value_3.compareTo(.0E000) != 0 || value_3.compareTo(0.0) != 0) return null + if (value_4.compareTo(.0E+0000) != 0 || value_4.compareTo(0.0) != 0) return null + if (value_5.compareTo(.0e+0) != 0 || value_5.compareTo(0.0) != 0) return null + if (value_6.compareTo(.00e00) != 0 || value_6.compareTo(0.0) != 0) return null + if (value_7.compareTo(.000E-000) != 0 || value_7.compareTo(0.0) != 0) return null + + if (value_8.compareTo(.0E+1) != 0 || value_8.compareTo(0.0) != 0) return null + if (value_9.compareTo(.00e22) != 0 || value_9.compareTo(0.0) != 0) return null + if (value_10.compareTo(.345678e00000000001) != 0 || value_10.compareTo(3.45678) != 0) return null + if (value_11.compareTo(.56e-0) != 0 || value_11.compareTo(0.56) != 0) return null + if (value_12.compareTo(.65e000000000000) != 0 || value_12.compareTo(0.65) != 0) return null + if (value_13.compareTo(.7654E+010) != 0 || value_13.compareTo(7.654E9) != 0) return null + if (value_14.compareTo(.876543E1) != 0 || value_14.compareTo(8.76543) != 0) return null + if (value_15.compareTo(.98765432e-2) != 0 || value_15.compareTo(0.0098765432) != 0) return null + if (value_16.compareTo(.0987654321E-3) != 0 || value_16.compareTo(9.87654321E-5) != 0) return null + + if (value_17.compareTo(.1111e4) != 0 || value_17.compareTo(1111.0) != 0) return null + if (value_18.compareTo(.22222E-5) != 0 || value_18.compareTo(2.2222E-6) != 0) return null + if (value_19.compareTo(.33333e+6) != 0 || value_19.compareTo(333330.0) != 0) return null + if (value_20.compareTo(.444444E7) != 0 || value_20.compareTo(4444440.0) != 0) return null + if (value_21.compareTo(.5555555e8) != 0 || value_21.compareTo(5.555555E7) != 0) return null + if (value_22.compareTo(.777777777E-308) != 0 || value_22.compareTo(7.77777777E-309) != 0) return null + if (value_23.compareTo(.99999999999e-309) != 0 || value_23.compareTo(9.9999999999E-310) != 0) return null + if (value_24.compareTo(.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) != 0 || value_24.compareTo(0.0) != 0) return null + if (value_25.compareTo(.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) != 0 || value_25.compareTo(0.0) != 0) return null + if (value_26.compareTo(.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) != 0 || value_26.compareTo(0.0) != 0) return null + + return "OK" +} diff --git a/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos/1.4.kt b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos/1.4.kt new file mode 100644 index 00000000000..554defe66fa --- /dev/null +++ b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos/1.4.kt @@ -0,0 +1,73 @@ +/* + * KOTLIN CODEGEN BOX SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [1] The whole-number part and the exponent part may be omitted. + * NUMBER: 4 + * DESCRIPTION: Real literals suffixed by f/F (float suffix) with omitted a whole-number part and an exponent mark. + */ + +val value_1 = .0e0f +val value_2 = .0e-00F +val value_3 = .0E000F +val value_4 = .0E+0000f + +val value_5 = .0e+0f +val value_6 = .00e00f +val value_7 = .000E-000F + +val value_8 = .0E+1F +val value_9 = .00e22F +val value_10 = .345678e00000000001F +val value_11 = .56e-0f +val value_12 = .65e000000000000F +val value_13 = .7654E+010f +val value_14 = .876543E1f +val value_15 = .98765432e-2f +val value_16 = .0987654321E-3f + +fun box(): String? { + val value_17 = .1111e4f + val value_18 = .22222E-5F + val value_19 = .33333e+6F + val value_20 = .444444E7F + val value_21 = .5555555e8f + val value_22 = .777777777E-308f + val value_23 = .99999999999e-309F + + val value_24 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f + val value_25 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F + val value_26 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f + + if (value_1.compareTo(.0e0f) != 0 || value_1.compareTo(0.0F) != 0) return null + if (value_2.compareTo(.0e-00F) != 0 || value_2.compareTo(0.0f) != 0) return null + if (value_3.compareTo(.0E000F) != 0 || value_3.compareTo(0.0f) != 0) return null + if (value_4.compareTo(.0E+0000F) != 0 || value_4.compareTo(0.0F) != 0) return null + if (value_5.compareTo(.0e+0F) != 0 || value_5.compareTo(0.0F) != 0) return null + if (value_6.compareTo(.00e00f) != 0 || value_6.compareTo(0.0F) != 0) return null + if (value_7.compareTo(.000E-000F) != 0 || value_7.compareTo(0.0f) != 0) return null + + if (value_8.compareTo(.0E+1f) != 0 || value_8.compareTo(0.0F) != 0) return null + if (value_9.compareTo(.00e22F) != 0 || value_9.compareTo(0.0F) != 0) return null + if (value_10.compareTo(.345678e00000000001F) != 0 || value_10.compareTo(3.45678f) != 0) return null + if (value_11.compareTo(.56e-0f) != 0 || value_11.compareTo(0.56F) != 0) return null + if (value_12.compareTo(.65e000000000000f) != 0 || value_12.compareTo(0.65f) != 0) return null + if (value_13.compareTo(.7654E+010F) != 0 || value_13.compareTo(7.654E9f) != 0) return null + if (value_14.compareTo(.876543E1F) != 0 || value_14.compareTo(8.76543F) != 0) return null + if (value_15.compareTo(.98765432e-2f) != 0 || value_15.compareTo(0.0098765432F) != 0) return null + if (value_16.compareTo(.0987654321E-3f) != 0 || value_16.compareTo(9.87654321E-5F) != 0) return null + + if (value_17.compareTo(.1111e4f) != 0 || value_17.compareTo(1111.0F) != 0) return null + if (value_18.compareTo(.22222E-5F) != 0 || value_18.compareTo(2.2222E-6F) != 0) return null + if (value_19.compareTo(.33333e+6f) != 0 || value_19.compareTo(333330.0F) != 0) return null + if (value_20.compareTo(.444444E7F) != 0 || value_20.compareTo(4444440.0F) != 0) return null + if (value_21.compareTo(.5555555e8f) != 0 || value_21.compareTo(5.555555E7F) != 0) return null + if (value_22.compareTo(.777777777E-308F) != 0 || value_22.compareTo(7.77777777E-309F) != 0) return null + if (value_23.compareTo(.99999999999e-309f) != 0 || value_23.compareTo(9.9999999999E-310f) != 0) return null + if (value_24.compareTo(.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F) != 0 || value_24.compareTo(0.0F) != 0) return null + if (value_25.compareTo(.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f) != 0 || value_25.compareTo(0.0F) != 0) return null + if (value_26.compareTo(.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f) != 0 || value_26.compareTo(0.0F) != 0) return null + + return "OK" +} diff --git a/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos/2.1.kt b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos/2.1.kt new file mode 100644 index 00000000000..c3edbdddc67 --- /dev/null +++ b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos/2.1.kt @@ -0,0 +1,71 @@ +/* + * KOTLIN CODEGEN BOX SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [2] The fraction part may be omitted only together with the decimal point, if the whole-number part and either the exponent part or the type suffix are present. + * NUMBER: 1 + * DESCRIPTION: Simple real literals with omitted a fraction part, suffixed by f/F (float suffix). + */ + +val value_1 = 0F +val value_2 = 00F +val value_3 = 000f +val value_4 = 0000F +val value_5 = 00000000000000000000000000000000000000f + +val value_6 = 1f +val value_7 = 22f +val value_8 = 333F +val value_9 = 4444f +val value_10 = 55555F +val value_11 = 666666f +val value_12 = 7777777f +val value_13 = 88888888F +val value_14 = 999999999F + +val value_15 = 123456789f +val value_16 = 2345678F +val value_17 = 34567F +val value_18 = 456F +val value_19 = 5f +val value_20 = 654F +val value_21 = 76543F +val value_22 = 8765432f +val value_23 = 987654321F + +val value_24 = 888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111F +val value_25 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f + +fun box(): String? { + if (value_1.compareTo(0.0F) != 0) return null + if (value_2.compareTo(0.00F) != 0 || value_2.compareTo(0.0) != 0) return null + if (value_3.compareTo(0.000f) != 0 || value_3.compareTo(0.0) != 0) return null + if (value_4.compareTo(0.0000F) != 0 || value_4.compareTo(0.0) != 0) return null + if (value_5.compareTo(00000000000000000000000000000000000000f) != 0 || value_5.compareTo(0.0) != 0) return null + + if (value_6.compareTo(1f) != 0 || value_6.compareTo(1.0) != 0) return null + if (value_7.compareTo(22f) != 0 || value_7.compareTo(22.0) != 0) return null + if (value_8.compareTo(333F) != 0 || value_8.compareTo(333.0) != 0) return null + if (value_9.compareTo(4444f) != 0 || value_9.compareTo(4444.0) != 0) return null + if (value_10.compareTo(55555F) != 0 || value_10.compareTo(55555.0) != 0) return null + if (value_11.compareTo(666666f) != 0 || value_11.compareTo(666666.0) != 0) return null + if (value_12.compareTo(7777777f) != 0 || value_12.compareTo(7777777.0) != 0) return null + if (value_13.compareTo(88888888F) != 0 || value_13.compareTo(88888888.0) != 0) return null + if (value_14.compareTo(999999999F) != 0 || value_14.compareTo(1.0E9F) != 0) return null + + if (value_15.compareTo(123456789f) != 0 || value_15.compareTo(1.23456792E8f) != 0) return null + if (value_16.compareTo(2345678F) != 0 || value_16.compareTo(2345678.0) != 0) return null + if (value_17.compareTo(34567F) != 0 || value_17.compareTo(34567.0) != 0) return null + if (value_18.compareTo(456F) != 0 || value_18.compareTo(456.0) != 0) return null + if (value_19.compareTo(5f) != 0 || value_19.compareTo(5.0) != 0) return null + if (value_20.compareTo(654F) != 0 || value_20.compareTo(654.0) != 0) return null + if (value_21.compareTo(76543F) != 0 || value_21.compareTo(76543.0) != 0) return null + if (value_22.compareTo(8765432f) != 0 || value_22.compareTo(8765432.0) != 0) return null + if (value_23.compareTo(987654321F) != 0 || value_23.compareTo(9.8765434E8F) != 0) return null + + if (value_24.compareTo(888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111F) != 0 || value_24.compareTo(Double.POSITIVE_INFINITY) != 0) return null + if (value_25.compareTo(0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f) != 0 || value_25.compareTo(0.0) != 0) return null + + return "OK" +} diff --git a/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos/2.2.kt b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos/2.2.kt new file mode 100644 index 00000000000..ab0bd926833 --- /dev/null +++ b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos/2.2.kt @@ -0,0 +1,65 @@ +/* + * KOTLIN CODEGEN BOX SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [2] The fraction part may be omitted only together with the decimal point, if the whole-number part and either the exponent part or the type suffix are present. + * NUMBER: 2 + * DESCRIPTION: Real literals with omitted a fraction part and an exponent mark. + */ + +val value_1 = 0e0 +val value_2 = 00e00 +val value_3 = 000E-10 +val value_4 = 0000e+00000000000 +val value_5 = 00000000000000000000000000000000000000E1 + +val value_6 = 1e1 +val value_7 = 22E-1 +val value_8 = 333e-00000000000 +val value_9 = 4444E-99999999999999999 +val value_10 = 55555e10 +val value_11 = 666666E00010 +val value_12 = 7777777e09090909090 +val value_13 = 88888888e1234567890 +val value_14 = 999999999E1234567890 + +val value_15 = 123456789e987654321 +val value_16 = 2345678E0 +val value_17 = 34567E+010 +val value_18 = 456e-09876543210 +val value_19 = 5e505 +val value_20 = 654e5 +val value_21 = 76543E-91823 +val value_22 = 8765432e+90 +val value_23 = 987654321e-1 + +fun box(): String? { + if (value_1.compareTo(0e0) != 0 || value_2.compareTo(0.0) != 0) return null + if (value_2.compareTo(00e00) != 0 || value_2.compareTo(0.0) != 0) return null + if (value_3.compareTo(000E-10) != 0 || value_3.compareTo(0.0) != 0) return null + if (value_4.compareTo(0000e+00000000000) != 0 || value_4.compareTo(0.0) != 0) return null + if (value_5.compareTo(00000000000000000000000000000000000000E1) != 0 || value_5.compareTo(0.0) != 0) return null + + if (value_6.compareTo(1e1) != 0 || value_6.compareTo(10.0) != 0) return null + if (value_7.compareTo(22E-1) != 0 || value_7.compareTo(2.2) != 0) return null + if (value_8.compareTo(333e-00000000000) != 0 || value_8.compareTo(333.0) != 0) return null + if (value_9.compareTo(4444E-99999999999999999) != 0 || value_9.compareTo(0.0) != 0) return null + if (value_10.compareTo(55555e10) != 0 || value_10.compareTo(5.5555E14) != 0) return null + if (value_11.compareTo(666666E00010) != 0 || value_11.compareTo(6.66666e15) != 0) return null + if (value_12.compareTo(7777777e09090909090) != 0 || value_12.compareTo(Double.POSITIVE_INFINITY) != 0) return null + if (value_13.compareTo(88888888e1234567890) != 0 || value_13.compareTo(Double.POSITIVE_INFINITY) != 0) return null + if (value_14.compareTo(999999999E1234567890) != 0 || value_14.compareTo(Double.POSITIVE_INFINITY) != 0) return null + + if (value_15.compareTo(123456789e987654321) != 0 || value_15.compareTo(Double.POSITIVE_INFINITY) != 0) return null + if (value_16.compareTo(2345678E0) != 0 || value_16.compareTo(2345678.0) != 0) return null + if (value_17.compareTo(34567E+010) != 0 || value_17.compareTo(3.4567E14) != 0) return null + if (value_18.compareTo(456e-09876543210) != 0 || value_18.compareTo(0.0) != 0) return null + if (value_19.compareTo(5e505) != 0 || value_19.compareTo(Double.POSITIVE_INFINITY) != 0) return null + if (value_20.compareTo(654e5) != 0 || value_20.compareTo(6.54E7) != 0) return null + if (value_21.compareTo(76543E-91823) != 0 || value_21.compareTo(0.0) != 0) return null + if (value_22.compareTo(8765432e+90) != 0 || value_22.compareTo(8.765432E96) != 0) return null + if (value_23.compareTo(987654321e-1) != 0 || value_23.compareTo(9.87654321E7) != 0) return null + + return "OK" +} diff --git a/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos/2.3.kt b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos/2.3.kt new file mode 100644 index 00000000000..1f7cf9d7c97 --- /dev/null +++ b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos/2.3.kt @@ -0,0 +1,65 @@ +/* + * KOTLIN CODEGEN BOX SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [2] The fraction part may be omitted only together with the decimal point, if the whole-number part and either the exponent part or the type suffix are present. + * NUMBER: 3 + * DESCRIPTION: Real literals with omitted a fraction part and an exponent mark, suffixed by f/F (float suffix). + */ + +val value_1 = 0e0f +val value_2 = 00e00F +val value_3 = 000E-10f +val value_4 = 0000e+00000000000f +val value_5 = 00000000000000000000000000000000000000E1F + +val value_6 = 1e1F +val value_7 = 22E-1f +val value_8 = 333e-00000000000F +val value_9 = 4444E-99999999999999999f +val value_10 = 55555e10f +val value_11 = 666666E00010F +val value_12 = 7777777e09090909090F +val value_13 = 88888888e1234567890F +val value_14 = 999999999E1234567890f + +val value_15 = 123456789e987654321F +val value_16 = 2345678E0f +val value_17 = 34567E+010f +val value_18 = 456e-09876543210F +val value_19 = 5e505f +val value_20 = 654e5F +val value_21 = 76543E-91823f +val value_22 = 8765432e+90F +val value_23 = 987654321e-1f + +fun box(): String? { + if (value_1.compareTo(0e0f) != 0 || value_2.compareTo(0.0f) != 0) return null + if (value_2.compareTo(00e00F) != 0 || value_2.compareTo(0.0F) != 0) return null + if (value_3.compareTo(000E-10F) != 0 || value_3.compareTo(0.0f) != 0) return null + if (value_4.compareTo(0000e+00000000000F) != 0 || value_4.compareTo(0.0f) != 0) return null + if (value_5.compareTo(00000000000000000000000000000000000000E1f) != 0 || value_5.compareTo(0.0f) != 0) return null + + if (value_6.compareTo(1e1f) != 0 || value_6.compareTo(10.0F) != 0) return null + if (value_7.compareTo(22E-1F) != 0 || value_7.compareTo(2.2f) != 0) return null + if (value_8.compareTo(333e-00000000000F) != 0 || value_8.compareTo(333.0F) != 0) return null + if (value_9.compareTo(4444E-99999999999999999F) != 0 || value_9.compareTo(0.0f) != 0) return null + if (value_10.compareTo(55555e10F) != 0 || value_10.compareTo(5.5555E14f) != 0) return null + if (value_11.compareTo(666666E00010F) != 0 || value_11.compareTo(6.66666e15f) != 0) return null + if (value_12.compareTo(7777777e09090909090f) != 0 || value_12.compareTo(Float.POSITIVE_INFINITY) != 0) return null + if (value_13.compareTo(88888888e1234567890F) != 0 || value_13.compareTo(Float.POSITIVE_INFINITY) != 0) return null + if (value_14.compareTo(999999999E1234567890f) != 0 || value_14.compareTo(Float.POSITIVE_INFINITY) != 0) return null + + if (value_15.compareTo(123456789e987654321f) != 0 || value_15.compareTo(Float.POSITIVE_INFINITY) != 0) return null + if (value_16.compareTo(2345678E0F) != 0 || value_16.compareTo(2345678.0F) != 0) return null + if (value_17.compareTo(34567E+010F) != 0 || value_17.compareTo(3.4567E14f) != 0) return null + if (value_18.compareTo(456e-09876543210F) != 0 || value_18.compareTo(0.0f) != 0) return null + if (value_19.compareTo(5e505f) != 0 || value_19.compareTo(Float.POSITIVE_INFINITY) != 0) return null + if (value_20.compareTo(654e5f) != 0 || value_20.compareTo(6.54E7F) != 0) return null + if (value_21.compareTo(76543E-91823f) != 0 || value_21.compareTo(0.0f) != 0) return null + if (value_22.compareTo(8765432e+90F) != 0 || value_22.compareTo(8.765432E96F) != 0) return null + if (value_23.compareTo(987654321e-1f) != 0 || value_23.compareTo(9.87654321E7F) != 0) return null + + return "OK" +} diff --git a/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-4/pos/1.1.kt b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-4/pos/1.1.kt new file mode 100644 index 00000000000..27dd7f89509 --- /dev/null +++ b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-4/pos/1.1.kt @@ -0,0 +1,75 @@ +/* + * KOTLIN CODEGEN BOX SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 4 + * SENTENCE: [1] The digits of the whole-number part or the fraction part or the exponent may be optionally separated by underscores, but an underscore may not be placed between, before, or after these parts. + * NUMBER: 1 + * DESCRIPTION: Real literals with underscores in a whole-number part and a fraction part. + */ + +val value_1 = 0.0_0 +val value_2 = 0.0__0___0 +val value_3 = 0.0_0__0_0 +val value_4 = 0__0.0 +val value_5 = 0_0_0.0______0 +val value_6 = 00_______________00.0_0_0 + +val value_7 = 2_2.0_0 +val value_8 = 33__3.00__0 +val value_9 = 4_44____4.00______00 +val value_10 = 5_________555_________5.0 +val value_11 = 666_666.0_____________________________________________________________________________________________________________________0 +val value_12 = 7777777.0_0_0 +val value_13 = 8888888_8.0000 +val value_14 = 9_______9______9_____9____9___9__9_9.0 + +val value_15 = 0_0_0_0_0_0_0_0_0_0.1234567890 +val value_16 = 1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9 +val value_17 = 234_5_678.345______________678 +val value_18 = 3_456_7.4567 +val value_19 = 456.5_6 + +fun box(): String? { + val value_20 = 5.6_5 + val value_21 = 6_54.7654 + val value_22 = 7_6543.87654_3 + val value_23 = 876543_____________2.9_____________8765432 + val value_24 = 9_____________87654321.098765432_____________1 + + val value_25 = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_0 + val value_26 = 0_000000000000000000000000000000000000000000000000000000000000000000000000_000000000000000000000000000000000000000000000000000000000000000000000000_000000000000000000000000000000000000000000000000000000000000000000000000_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 + val value_27 = 9999999999999999999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________999999999999999999999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________999999999999999999999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_33333333333333333333333333333333333333333 + + if (value_1.compareTo(0.0_0) != 0 || value_1.compareTo(0.0) != 0) return null + if (value_2.compareTo(0.0__0___0) != 0 || value_2.compareTo(0.0) != 0) return null + if (value_3.compareTo(0.0_0__0_0) != 0 || value_3.compareTo(0.0) != 0) return null + if (value_4.compareTo(0__0.0) != 0 || value_4.compareTo(0.0) != 0) return null + if (value_5.compareTo(0_0_0.0______0) != 0 || value_5.compareTo(0.0) != 0) return null + if (value_6.compareTo(00_______________00.0_0_0) != 0 || value_6.compareTo(0.0) != 0) return null + + if (value_7.compareTo(2_2.0_0) != 0 || value_7.compareTo(22.0) != 0) return null + if (value_8.compareTo(33__3.00__0) != 0 || value_8.compareTo(333.0) != 0) return null + if (value_9.compareTo(4_44____4.00______00) != 0 || value_9.compareTo(4444.0) != 0) return null + if (value_10.compareTo(5_________555_________5.0) != 0 || value_10.compareTo(55555.0) != 0) return null + if (value_11.compareTo(666_666.0_____________________________________________________________________________________________________________________0) != 0 || value_11.compareTo(666666.0) != 0) return null + if (value_12.compareTo(7777777.0_0_0) != 0 || value_12.compareTo(7777777.0) != 0) return null + if (value_13.compareTo(8888888_8.0000) != 0 || value_13.compareTo(8.8888888E7) != 0) return null + if (value_14.compareTo(9_______9______9_____9____9___9__9_9.0) != 0 || value_14.compareTo(9.9999999E7) != 0) return null + + if (value_15.compareTo(0_0_0_0_0_0_0_0_0_0.1234567890) != 0 || value_15.compareTo(0.123456789) != 0) return null + if (value_16.compareTo(1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9) != 0 || value_16.compareTo(1.234567892345679E8) != 0) return null + if (value_17.compareTo(234_5_678.345______________678) != 0 || value_17.compareTo(2345678.345678) != 0) return null + if (value_18.compareTo(3_456_7.4567) != 0 || value_18.compareTo(34567.4567) != 0) return null + if (value_19.compareTo(456.5_6) != 0 || value_19.compareTo(456.56) != 0) return null + if (value_20.compareTo(5.6_5) != 0 || value_20.compareTo(5.65) != 0) return null + if (value_21.compareTo(6_54.7654) != 0 || value_21.compareTo(654.7654) != 0) return null + if (value_22.compareTo(7_6543.87654_3) != 0 || value_22.compareTo(76543.876543) != 0) return null + if (value_23.compareTo(876543_____________2.9_____________8765432) != 0 || value_23.compareTo(8765432.98765432) != 0) return null + if (value_24.compareTo(9_____________87654321.098765432_____________1) != 0 || value_24.compareTo(9.876543210987654E8) != 0) return null + if (value_25.compareTo(000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_0) != 0 || value_25.compareTo(0.0) != 0) return null + if (value_26.compareTo(0_000000000000000000000000000000000000000000000000000000000000000000000000_000000000000000000000000000000000000000000000000000000000000000000000000_000000000000000000000000000000000000000000000000000000000000000000000000_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000000000001) != 0 || value_26.compareTo(0.0) != 0) return null + if (value_27.compareTo(9999999999999999999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________999999999999999999999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________999999999999999999999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_33333333333333333333333333333333333333333) != 0 || value_27.compareTo(Double.POSITIVE_INFINITY) != 0) return null + + return "OK" +} diff --git a/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-4/pos/1.2.kt b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-4/pos/1.2.kt new file mode 100644 index 00000000000..21509aa4c10 --- /dev/null +++ b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-4/pos/1.2.kt @@ -0,0 +1,75 @@ +/* + * KOTLIN CODEGEN BOX SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 4 + * SENTENCE: [1] The digits of the whole-number part or the fraction part or the exponent may be optionally separated by underscores, but an underscore may not be placed between, before, or after these parts. + * NUMBER: 2 + * DESCRIPTION: Real literals suffixed by f/F (float suffix) with underscores in a whole-number part and a fraction part. + */ + +val value_1 = 0.0_0f +val value_2 = 0.0__0___0f +val value_3 = 0.0_0__0_0F +val value_4 = 0__0.0f +val value_5 = 0_0_0.0______0F +val value_6 = 00_______________00.0_0_0F + +val value_7 = 2_2.0_0f +val value_8 = 33__3.00__0f +val value_9 = 4_44____4.00______00F +val value_10 = 5_________555_________5.0F +val value_11 = 666_666.0_____________________________________________________________________________________________________________________0f +val value_12 = 7777777.0_0_0F +val value_13 = 8888888_8.0000f +val value_14 = 9_______9______9_____9____9___9__9_9.0F + +val value_15 = 0_0_0_0_0_0_0_0_0_0.1234567890F +val value_16 = 1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9f +val value_17 = 234_5_678.345______________678F +val value_18 = 3_456_7.4567f +val value_19 = 456.5_6F + +fun box(): String? { + val value_20 = 5.6_5F + val value_21 = 6_54.7654f + val value_22 = 7_6543.87654_3F + val value_23 = 876543_____________2.9_____________8765432f + val value_24 = 9_____________87654321.098765432_____________1f + + val value_25 = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_0f + val value_26 = 0_000000000000000000000000000000000000000000000000000000000000000000000000_000000000000000000000000000000000000000000000000000000000000000000000000_000000000000000000000000000000000000000000000000000000000000000000000000_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000000000001F + val value_27 = 9999999999999999999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________999999999999999999999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________999999999999999999999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_33333333333333333333333333333333333333333f + + if (value_1.compareTo(0.0_0f) != 0 || value_1.compareTo(0.0f) != 0) return null + if (value_2.compareTo(0.0__0___0F) != 0 || value_2.compareTo(0.0F) != 0) return null + if (value_3.compareTo(0.0_0__0_0f) != 0 || value_3.compareTo(0.0f) != 0) return null + if (value_4.compareTo(0__0.0F) != 0 || value_4.compareTo(0.0F) != 0) return null + if (value_5.compareTo(0_0_0.0______0F) != 0 || value_5.compareTo(0.0f) != 0) return null + if (value_6.compareTo(00_______________00.0_0_0f) != 0 || value_6.compareTo(0.0f) != 0) return null + + if (value_7.compareTo(2_2.0_0f) != 0 || value_7.compareTo(22.0F) != 0) return null + if (value_8.compareTo(33__3.00__0f) != 0 || value_8.compareTo(333.0f) != 0) return null + if (value_9.compareTo(4_44____4.00______00F) != 0 || value_9.compareTo(4444.0f) != 0) return null + if (value_10.compareTo(5_________555_________5.0f) != 0 || value_10.compareTo(55555.0F) != 0) return null + if (value_11.compareTo(666_666.0_____________________________________________________________________________________________________________________0f) != 0 || value_11.compareTo(666666.0) != 0) return null + if (value_12.compareTo(7777777.0_0_0F) != 0 || value_12.compareTo(7777777.0F) != 0) return null + if (value_13.compareTo(8888888_8.0000F) != 0 || value_13.compareTo(8.8888888E7F) != 0) return null + if (value_14.compareTo(9_______9______9_____9____9___9__9_9.0f) != 0 || value_14.compareTo(9.9999999E7f) != 0) return null + + if (value_15.compareTo(0_0_0_0_0_0_0_0_0_0.1234567890F) != 0 || value_15.compareTo(0.123456789F) != 0) return null + if (value_16.compareTo(1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9f) != 0 || value_16.compareTo(1.234567892345679E8F) != 0) return null + if (value_17.compareTo(234_5_678.345______________678f) != 0 || value_17.compareTo(2345678.345678f) != 0) return null + if (value_18.compareTo(3_456_7.4567f) != 0 || value_18.compareTo(34567.4567F) != 0) return null + if (value_19.compareTo(456.5_6F) != 0 || value_19.compareTo(456.56F) != 0) return null + if (value_20.compareTo(5.6_5F) != 0 || value_20.compareTo(5.65f) != 0) return null + if (value_21.compareTo(6_54.7654f) != 0 || value_21.compareTo(654.7654f) != 0) return null + if (value_22.compareTo(7_6543.87654_3F) != 0 || value_22.compareTo(76543.876543F) != 0) return null + if (value_23.compareTo(876543_____________2.9_____________8765432f) != 0 || value_23.compareTo(8765432.98765432f) != 0) return null + if (value_24.compareTo(9_____________87654321.098765432_____________1f) != 0 || value_24.compareTo(9.876543210987654E8F) != 0) return null + if (value_25.compareTo(000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_0F) != 0 || value_25.compareTo(0.0f) != 0) return null + if (value_26.compareTo(0_000000000000000000000000000000000000000000000000000000000000000000000000_000000000000000000000000000000000000000000000000000000000000000000000000_000000000000000000000000000000000000000000000000000000000000000000000000_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f) != 0 || value_26.compareTo(0.0) != 0) return null + if (value_27.compareTo(9999999999999999999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________999999999999999999999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________999999999999999999999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_33333333333333333333333333333333333333333F) != 0 || value_27.compareTo(Double.POSITIVE_INFINITY) != 0) return null + + return "OK" +} diff --git a/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-4/pos/1.3.kt b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-4/pos/1.3.kt new file mode 100644 index 00000000000..42a4f1730d3 --- /dev/null +++ b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-4/pos/1.3.kt @@ -0,0 +1,75 @@ +/* + * KOTLIN CODEGEN BOX SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 4 + * SENTENCE: [1] The digits of the whole-number part or the fraction part or the exponent may be optionally separated by underscores, but an underscore may not be placed between, before, or after these parts. + * NUMBER: 3 + * DESCRIPTION: Real literals suffixed by f/F (float suffix) with an exponent mark and underscores in a whole-number part, a fraction part and an exponent part. + */ + +val value_1 = 0.0_0e1_0f +val value_2 = 0.0__0e-0___0 +val value_3 = 0.0_0E-0__0_0F +val value_4 = 0__0.0e0f +val value_5 = 0_0_0.0_0E0_0 +val value_6 = 00_______________00.0_0e+0_0 + +val value_7 = 2_2.0e1_0F +val value_8 = 33__3.0e10__0 +val value_9 = 4_44____4.0E0______00F +val value_10 = 5_________555_________5.0e-9 +val value_11 = 666_666.0__________________________________________________1E+2___________________________________________________________________0F +val value_12 = 7777777.0_0e3_0 +val value_13 = 8888888_8.000e0f +val value_14 = 9_______9______9_____9____9___9__9_9.0E-1 + +val value_15 = 0_0_0_0_0_0_0_0_0_0.12345678e+90F +val value_16 = 1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9e-0 + +fun box(): String? { + val value_17 = 234_5_678.345______________6e7_______8f + val value_18 = 3_456_7.45_6E7f + val value_19 = 456.5e0_6 + val value_20 = 5.6_0E+05F + val value_21 = 6_54.76_5e-4 + val value_22 = 7_6543.8E7654_3 + val value_23 = 876543_____________2.9E+0_____________8765432f + val value_24 = 9_____________87654321.0e-9_8765432_____________1F + + val value_25 = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000_0F + val value_26 = 0_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0E-0___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + val value_27 = 9999999999999999999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_333333333333333333333333333333333333333e3_3f + + if (value_1.compareTo(0.0_0e1_0f) != 0 || value_1.compareTo(0.0f) != 0) return null + if (value_2.compareTo(0.0__0e-0___0) != 0 || value_2.compareTo(0.0) != 0) return null + if (value_3.compareTo(0.0_0E-0__0_0F) != 0 || value_3.compareTo(0.0f) != 0) return null + if (value_4.compareTo(0__0.0e0f) != 0 || value_4.compareTo(0.0) != 0) return null + if (value_5.compareTo(0_0_0.0_0E0_0) != 0 || value_5.compareTo(0.0f) != 0) return null + if (value_6.compareTo(00_______________00.0_0e+0_0) != 0 || value_6.compareTo(0.0f) != 0) return null + + if (value_7.compareTo(2_2.0e1_0F) != 0 || value_7.compareTo(2.19999994E11f) != 0) return null + if (value_8.compareTo(33__3.0e10__0) != 0 || value_8.compareTo(3.33E102) != 0) return null + if (value_9.compareTo(4_44____4.0E0______00F) != 0 || value_9.compareTo(4444.0f) != 0) return null + if (value_10.compareTo(5_________555_________5.0e-9) != 0 || value_10.compareTo(5.5555E-5) != 0) return null + if (value_11.compareTo(666_666.0__________________________________________________1E+2___________________________________________________________________0F) != 0 || value_11.compareTo(6.66666E25F) != 0) return null + if (value_12.compareTo(7777777.0_0e3_0) != 0 || value_12.compareTo(7.777777E36) != 0) return null + if (value_13.compareTo(8888888_8.000e0f) != 0 || value_13.compareTo(8.8888888E7) != 0) return null + if (value_14.compareTo(9_______9______9_____9____9___9__9_9.0E-1) != 0 || value_14.compareTo(9999999.9) != 0) return null + + if (value_15.compareTo(0_0_0_0_0_0_0_0_0_0.12345678e+90F) != 0 || value_15.compareTo(Float.POSITIVE_INFINITY) != 0) return null + if (value_16.compareTo(1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9e-0) != 0 || value_16.compareTo(1.234567892345679E8) != 0) return null + if (value_17.compareTo(234_5_678.345______________6e7_______8f) != 0 || value_17.compareTo(Float.POSITIVE_INFINITY) != 0) return null + if (value_18.compareTo(3_456_7.45_6E7f) != 0 || value_18.compareTo(3.45674547E11F) != 0) return null + if (value_19.compareTo(456.5e0_6) != 0 || value_19.compareTo(4.565E8f) != 0) return null + if (value_20.compareTo(5.6_0E+05F) != 0 || value_20.compareTo(560000.0F) != 0) return null + if (value_21.compareTo(6_54.76_5e-4) != 0 || value_21.compareTo(0.0654765) != 0) return null + if (value_22.compareTo(7_6543.8E7654_3) != 0 || value_22.compareTo(Double.POSITIVE_INFINITY) != 0) return null + if (value_23.compareTo(876543_____________2.9E+0_____________8765432f) != 0 || value_23.compareTo(Float.POSITIVE_INFINITY) != 0) return null + if (value_24.compareTo(9_____________87654321.0e-9_8765432_____________1F) != 0 || value_24.compareTo(0.0) != 0) return null + if (value_25.compareTo(000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000_0F) != 0 || value_25.compareTo(0.0) != 0) return null + if (value_26.compareTo(0_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0E-0___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) != 0 || value_26.compareTo(0.0) != 0) return null + if (value_27.compareTo(9999999999999999999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_333333333333333333333333333333333333333e3_3f) != 0 || value_27.compareTo(Float.POSITIVE_INFINITY) != 0) return null + + return "OK" +} diff --git a/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-4/pos/1.4.kt b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-4/pos/1.4.kt new file mode 100644 index 00000000000..d3d94f6b001 --- /dev/null +++ b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-4/pos/1.4.kt @@ -0,0 +1,80 @@ +/* + * KOTLIN CODEGEN BOX SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 4 + * SENTENCE: [1] The digits of the whole-number part or the fraction part or the exponent may be optionally separated by underscores, but an underscore may not be placed between, before, or after these parts. + * NUMBER: 4 + * DESCRIPTION: Real literals with an omitted whole-number part and underscores in a whole-number part, a fraction part and an exponent part. + */ + +val value_1 = .0_0 +val value_2 = .0_0f +val value_3 = .0_0e-0_0 +val value_4 = .0_0e0_0F +val value_5 = .0__0F +val value_6 = .0_0E+0__0_0F + +val value_7 = .0e0f +val value_8 = .0_0E0_0 + +val value_9 = .0e1_0F +val value_10 = .0e10__0 +val value_11 = .00______00F +val value_12 = .0___9 +val value_13 = .0__________________________________________________12___________________________________________________________________0F +val value_14 = .0_0e+3_0 +val value_15 = .000e0f +val value_16 = .9_______9______9_____9____9___9__9_90E-1 + +val value_17 = .12345678_90 +val value_18 = .1_2_3_4_5_6_7_8_9_0 +val value_19 = .345______________6e-7_______8f +val value_20 = .45_67f +val value_21 = .5e+0_6 + +fun box(): String? { + val value_22 = .6_0______________05F + val value_23 = .76_5e4 + val value_24 = .8E7654_3 + val value_25 = .9E0_____________8765432f + val value_26 = .09_8765432_____________1F + + val value_27 = .000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000_0F + val value_28 = .00___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + val value_29 = .33333333333333333333333333333333333333333333333_333333333333333333333333333333333333333e3_3f + + if (value_1.compareTo(.0_0) != 0 || value_1.compareTo(0.0) != 0) return null + if (value_2.compareTo(.0_0f) != 0 || value_2.compareTo(0.0) != 0) return null + if (value_3.compareTo(.0_0e-0_0) != 0 || value_3.compareTo(0.0f) != 0) return null + if (value_4.compareTo(.0_0e0_0F) != 0 || value_4.compareTo(0.0) != 0) return null + if (value_5.compareTo(.0__0F) != 0 || value_5.compareTo(0.0f) != 0) return null + if (value_6.compareTo(.0_0E+0__0_0F) != 0 || value_6.compareTo(0.0) != 0) return null + + if (value_7.compareTo(.0e0f) != 0 || value_7.compareTo(0.0f) != 0) return null + if (value_8.compareTo(.0_0E0_0) != 0 || value_8.compareTo(0.0) != 0) return null + if (value_9.compareTo(.0e1_0F) != 0 || value_9.compareTo(0.0F) != 0) return null + if (value_10.compareTo(.0e10__0) != 0 || value_10.compareTo(0.0) != 0) return null + if (value_11.compareTo(.00______00F) != 0 || value_11.compareTo(0.0F) != 0) return null + if (value_12.compareTo(.0___9) != 0 || value_12.compareTo(0.09) != 0) return null + if (value_13.compareTo(.0__________________________________________________12___________________________________________________________________0F) != 0 || value_13.compareTo(0.012f) != 0) return null + if (value_14.compareTo(.0_0e+3_0) != 0 || value_14.compareTo(0.0) != 0) return null + + if (value_15.compareTo(.000e0f) != 0 || value_15.compareTo(0.0) != 0) return null + if (value_16.compareTo(.9_______9______9_____9____9___9__9_90E-1) != 0 || value_16.compareTo(0.099999999) != 0) return null + if (value_17.compareTo(.12345678_90) != 0 || value_17.compareTo(0.123456789) != 0) return null + if (value_18.compareTo(.1_2_3_4_5_6_7_8_9_0) != 0 || value_18.compareTo(0.123456789) != 0) return null + if (value_19.compareTo(.345______________6e-7_______8f) != 0 || value_19.compareTo(0.0) != 0) return null + if (value_20.compareTo(.45_67f) != 0 || value_20.compareTo(0.4567F) != 0) return null + if (value_21.compareTo(.5e+0_6) != 0 || value_21.compareTo(500000.0) != 0) return null + if (value_22.compareTo(.6_0______________05F) != 0 || value_22.compareTo(0.6005f) != 0) return null + if (value_23.compareTo(.76_5e4) != 0 || value_23.compareTo(7650.0) != 0) return null + if (value_24.compareTo(.8E7654_3) != 0 || value_24.compareTo(Float.POSITIVE_INFINITY) != 0) return null + if (value_25.compareTo(.9E0_____________8765432f) != 0 || value_25.compareTo(Float.POSITIVE_INFINITY) != 0) return null + if (value_26.compareTo(.09_8765432_____________1F) != 0 || value_26.compareTo(0.09876543F) != 0) return null + if (value_27.compareTo(.000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000_0F) != 0 || value_27.compareTo(0.0) != 0) return null + if (value_28.compareTo(.00___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) != 0 || value_28.compareTo(0.0) != 0) return null + if (value_29.compareTo(.33333333333333333333333333333333333333333333333_333333333333333333333333333333333333333e3_3f) != 0 || value_29.compareTo(3.3333334E32F) != 0) return null + + return "OK" +} diff --git a/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-4/pos/1.5.kt b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-4/pos/1.5.kt new file mode 100644 index 00000000000..23630cf9965 --- /dev/null +++ b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-4/pos/1.5.kt @@ -0,0 +1,83 @@ +/* + * KOTLIN CODEGEN BOX SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 4 + * SENTENCE: [1] The digits of the whole-number part or the fraction part or the exponent may be optionally separated by underscores, but an underscore may not be placed between, before, or after these parts. + * NUMBER: 5 + * DESCRIPTION: Real literals with an omitted fraction part and underscores in a whole-number part, a fraction part and an exponent part. + */ + +val value_1 = 0_0F +val value_2 = 0_0E-0_0F +val value_3 = 0_0E-0_0 +val value_4 = 0_0____0f +val value_5 = 0_0____0e-0f +val value_6 = 0_0_0_0F +val value_7 = 0_0_0_0E-0_0_0_0F +val value_8 = 0000000000000000000_______________0000000000000000000f +val value_9 = 0000000000000000000_______________0000000000000000000e+0f +val value_10 = 0000000000000000000_______________0000000000000000000E-0 + +val value_11 = 2___2e-2___2f +val value_12 = 33_3E0_0F +val value_13 = 4_444E-4_444f +val value_14 = 55_5_55F +val value_15 = 666____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________666f +val value_16 = 666____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________666E-10 +val value_17 = 7_7_7_7_7_7_7f +val value_18 = 8888888________8e-9000000_0 +val value_19 = 9________9_______9______9_____9____9___9__9_9F + +val value_20 = 1__2_3__4____5_____6__7_89f +val value_21 = 2__34567e8 +val value_22 = 345_6E+9_7F + +fun box(): String? { + val value_23 = 45_____________________________________________________________6E-12313413_4 + val value_24 = 5_______________________________________________________________________________________________________________________________________________________________________________________5f + val value_25 = 6__________________________________________________54F + val value_26 = 76_5___4e3___________33333333 + val value_27 = 876543_____________________________________________________________2f + val value_28 = 9_8__7654__3_21F + + val value_29 = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0__0F + val value_30 = 0___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f + val value_31 = 33333333333333333333333333333333333333333333333_33333333333333333333333333333333333333333E-1_0_0 + + if (value_1.compareTo(0_0F) != 0 || value_1.compareTo(0.0) != 0) return null + if (value_2.compareTo(0_0E-0_0F) != 0 || value_2.compareTo(0.0) != 0) return null + if (value_3.compareTo(0_0E-0_0) != 0 || value_3.compareTo(0.0f) != 0) return null + if (value_4.compareTo(0_0____0f) != 0 || value_4.compareTo(0.0) != 0) return null + if (value_5.compareTo(0_0____0e-0f) != 0 || value_5.compareTo(0.0f) != 0) return null + if (value_6.compareTo(0_0_0_0F) != 0 || value_6.compareTo(0.0) != 0) return null + + if (value_7.compareTo(0_0_0_0E-0_0_0_0F) != 0 || value_7.compareTo(0.0f) != 0) return null + if (value_8.compareTo(0000000000000000000_______________0000000000000000000f) != 0 || value_8.compareTo(0.0) != 0) return null + if (value_9.compareTo(0000000000000000000_______________0000000000000000000e+0f) != 0 || value_9.compareTo(0.0F) != 0) return null + if (value_10.compareTo(0000000000000000000_______________0000000000000000000E-0) != 0 || value_10.compareTo(0.0) != 0) return null + if (value_11.compareTo(2___2e-2___2f) != 0 || value_11.compareTo(2.2E-21f) != 0) return null + if (value_12.compareTo(33_3E0_0F) != 0 || value_12.compareTo(333.0F) != 0) return null + if (value_13.compareTo(4_444E-4_444f) != 0 || value_13.compareTo(0.0) != 0) return null + if (value_14.compareTo(55_5_55F) != 0 || value_14.compareTo(55555.0F) != 0) return null + + if (value_15.compareTo(666____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________666f) != 0 || value_15.compareTo(666666.0f) != 0) return null + if (value_16.compareTo(666____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________666E-10) != 0 || value_16.compareTo(6.66666E-5) != 0) return null + if (value_17.compareTo(7_7_7_7_7_7_7f) != 0 || value_17.compareTo(7777777.0F) != 0) return null + if (value_18.compareTo(8888888________8e-9000000_0) != 0 || value_18.compareTo(0.0) != 0) return null + if (value_19.compareTo(9________9_______9______9_____9____9___9__9_9F) != 0 || value_19.compareTo(1.0E9f) != 0) return null + if (value_20.compareTo(1__2_3__4____5_____6__7_89f) != 0 || value_20.compareTo(1.23456792E8F) != 0) return null + if (value_21.compareTo(2__34567e8) != 0 || value_21.compareTo(2.34567E13) != 0) return null + if (value_22.compareTo(345_6E+9_7F) != 0 || value_22.compareTo(Float.POSITIVE_INFINITY) != 0) return null + if (value_23.compareTo(45_____________________________________________________________6E-12313413_4) != 0 || value_23.compareTo(0.0) != 0) return null + if (value_24.compareTo(5_______________________________________________________________________________________________________________________________________________________________________________________5f) != 0 || value_24.compareTo(55.0F) != 0) return null + if (value_25.compareTo(6__________________________________________________54F) != 0 || value_25.compareTo(654.0f) != 0) return null + if (value_26.compareTo(76_5___4e3___________33333333) != 0 || value_26.compareTo(Double.POSITIVE_INFINITY) != 0) return null + if (value_27.compareTo(876543_____________________________________________________________2f) != 0 || value_27.compareTo(8765432.0F) != 0) return null + if (value_28.compareTo(9_8__7654__3_21F) != 0 || value_28.compareTo(9.8765434E8f) != 0) return null + if (value_29.compareTo(000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0__0F) != 0 || value_29.compareTo(0.0) != 0) return null + if (value_30.compareTo(0___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f) != 0 || value_30.compareTo(0.0) != 0) return null + if (value_31.compareTo(33333333333333333333333333333333333333333333333_33333333333333333333333333333333333333333E-1_0_0) != 0 || value_31.compareTo(3.3333333333333334E-13) != 0) return null + + return "OK" +} diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/neg/1.1.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/neg/1.1.kt new file mode 100644 index 00000000000..f993dbd0118 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/neg/1.1.kt @@ -0,0 +1,29 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 1 + * SENTENCE: [1] A real literal consists of the following parts: the whole-number part, the decimal point (ASCII period character .), the fraction part and the exponent. + * NUMBER: 1 + * DESCRIPTION: Real literals separeted by comments. + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0./**/99901 + +// TESTCASE NUMBER: 2 +val value_2 = 2./** some doc */1 + +// TESTCASE NUMBER: 3 +val value_3 = 9999./** some doc *//**/1 + +// TESTCASE NUMBER: 4 +val value_4 = 9999./** some /** some doc */ doc */1 + +// TESTCASE NUMBER: 5 +val value_5 = 9999./**/ +1 + +// TESTCASE NUMBER: 6 +val value_6 = 1000000.//0 +0 diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/neg/1.1.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/neg/1.1.txt new file mode 100644 index 00000000000..6212a2c2016 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/neg/1.1.txt @@ -0,0 +1,8 @@ +package + +public val value_1: kotlin.Int = 99901 +public val value_2: kotlin.Int = 1 +public val value_3: kotlin.Int = 1 +public val value_4: kotlin.Int = 1 +public val value_5: kotlin.Int = 1 +public val value_6: kotlin.Int = 0 diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/neg/3.1.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/neg/3.1.kt new file mode 100644 index 00000000000..074c4899157 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/neg/3.1.kt @@ -0,0 +1,29 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 1 + * SENTENCE: [3] A real literal may also be followed by a type suffix (f or F). + * NUMBER: 1 + * DESCRIPTION: Real literals suffixed by f/F (float suffix) separeted by comments. + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0./**/99901f + +// TESTCASE NUMBER: 2 +val value_2 = 2./** some doc */1F + +// TESTCASE NUMBER: 3 +val value_3 = 9999./** some doc *//**/1f + +// TESTCASE NUMBER: 4 +val value_4 = 9999./** some /** some doc */ doc */1f + +// TESTCASE NUMBER: 5 +val value_5 = 9999./**/ +1F + +// TESTCASE NUMBER: 6 +val value_6 = 1000000.//0 +0F diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/neg/3.1.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/neg/3.1.txt new file mode 100644 index 00000000000..5861bd1ca93 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/neg/3.1.txt @@ -0,0 +1,8 @@ +package + +public val value_1: kotlin.Float = 99901.0.toFloat() +public val value_2: kotlin.Float = 1.0.toFloat() +public val value_3: kotlin.Float = 1.0.toFloat() +public val value_4: kotlin.Float = 1.0.toFloat() +public val value_5: kotlin.Float = 1.0.toFloat() +public val value_6: kotlin.Float = 0.0.toFloat() diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos/1.1.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos/1.1.kt new file mode 100644 index 00000000000..c955af2dc98 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos/1.1.kt @@ -0,0 +1,114 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 1 + * SENTENCE: [1] A real literal consists of the following parts: the whole-number part, the decimal point (ASCII period character .), the fraction part and the exponent. + * NUMBER: 1 + * DESCRIPTION: Simple real literals with a different whole-number part and fraction part. + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0.0 + +// TESTCASE NUMBER: 2 +val value_2 = 0.00 + +// TESTCASE NUMBER: 3 +val value_3 = 0.000 + +// TESTCASE NUMBER: 4 +val value_4 = 0.0000 + +// TESTCASE NUMBER: 5 +val value_5 = 00.0 + +// TESTCASE NUMBER: 6 +val value_6 = 000.00 + +// TESTCASE NUMBER: 7 +val value_7 = 0000.000 + +// TESTCASE NUMBER: 8 +val value_8 = 1.0 + +// TESTCASE NUMBER: 9 +val value_9 = 22.00 + +// TESTCASE NUMBER: 10 +val value_10 = 333.000 + +// TESTCASE NUMBER: 11 +val value_11 = 4444.0000 + +// TESTCASE NUMBER: 12 +val value_12 = 55555.0 + +// TESTCASE NUMBER: 13 +val value_13 = 666666.00 + +// TESTCASE NUMBER: 14 +val value_14 = 7777777.000 + +// TESTCASE NUMBER: 15 +val value_15 = 88888888.0000 + +// TESTCASE NUMBER: 16 +val value_16 = 999999999.0 + +// TESTCASE NUMBER: 17 +val value_17 = 0000000000.1234567890 + +// TESTCASE NUMBER: 18 +val value_18 = 123456789.23456789 + +// TESTCASE NUMBER: 19 +val value_19 = 2345678.345678 + +// TESTCASE NUMBER: 20 +val value_20 = 34567.4567 + +// TESTCASE NUMBER: 21 +val value_21 = 456.56 + +// TESTCASE NUMBER: 22 +val value_22 = 5.65 + +// TESTCASE NUMBER: 23 +val value_23 = 654.7654 + +// TESTCASE NUMBER: 24 +val value_24 = 76543.876543 + +// TESTCASE NUMBER: 25 +val value_25 = 8765432.98765432 + +// TESTCASE NUMBER: 26 +val value_26 = 987654321.0987654321 + +// TESTCASE NUMBER: 27 +val value_27 = 0.1111 + +// TESTCASE NUMBER: 28 +val value_28 = 1.22222 + +// TESTCASE NUMBER: 29 +val value_29 = 9.33333 + +// TESTCASE NUMBER: 30 +val value_30 = 9.444444 + +// TESTCASE NUMBER: 31 +val value_31 = 8.5555555 + +// TESTCASE NUMBER: 32 +val value_32 = 2.66666666 + +// TESTCASE NUMBER: 33 +val value_33 = 3.777777777 + +// TESTCASE NUMBER: 34 +val value_34 = 7.8888888888 + +// TESTCASE NUMBER: 35 +val value_35 = 6.99999999999 diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos/1.1.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos/1.1.txt new file mode 100644 index 00000000000..dc879043722 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos/1.1.txt @@ -0,0 +1,37 @@ +package + +public val value_1: kotlin.Double = 0.0.toDouble() +public val value_10: kotlin.Double = 333.0.toDouble() +public val value_11: kotlin.Double = 4444.0.toDouble() +public val value_12: kotlin.Double = 55555.0.toDouble() +public val value_13: kotlin.Double = 666666.0.toDouble() +public val value_14: kotlin.Double = 7777777.0.toDouble() +public val value_15: kotlin.Double = 8.8888888E7.toDouble() +public val value_16: kotlin.Double = 9.99999999E8.toDouble() +public val value_17: kotlin.Double = 0.123456789.toDouble() +public val value_18: kotlin.Double = 1.234567892345679E8.toDouble() +public val value_19: kotlin.Double = 2345678.345678.toDouble() +public val value_2: kotlin.Double = 0.0.toDouble() +public val value_20: kotlin.Double = 34567.4567.toDouble() +public val value_21: kotlin.Double = 456.56.toDouble() +public val value_22: kotlin.Double = 5.65.toDouble() +public val value_23: kotlin.Double = 654.7654.toDouble() +public val value_24: kotlin.Double = 76543.876543.toDouble() +public val value_25: kotlin.Double = 8765432.98765432.toDouble() +public val value_26: kotlin.Double = 9.876543210987654E8.toDouble() +public val value_27: kotlin.Double = 0.1111.toDouble() +public val value_28: kotlin.Double = 1.22222.toDouble() +public val value_29: kotlin.Double = 9.33333.toDouble() +public val value_3: kotlin.Double = 0.0.toDouble() +public val value_30: kotlin.Double = 9.444444.toDouble() +public val value_31: kotlin.Double = 8.5555555.toDouble() +public val value_32: kotlin.Double = 2.66666666.toDouble() +public val value_33: kotlin.Double = 3.777777777.toDouble() +public val value_34: kotlin.Double = 7.8888888888.toDouble() +public val value_35: kotlin.Double = 6.99999999999.toDouble() +public val value_4: kotlin.Double = 0.0.toDouble() +public val value_5: kotlin.Double = 0.0.toDouble() +public val value_6: kotlin.Double = 0.0.toDouble() +public val value_7: kotlin.Double = 0.0.toDouble() +public val value_8: kotlin.Double = 1.0.toDouble() +public val value_9: kotlin.Double = 22.0.toDouble() diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos/1.2.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos/1.2.kt new file mode 100644 index 00000000000..8855f660adb --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos/1.2.kt @@ -0,0 +1,45 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 1 + * SENTENCE: [1] A real literal consists of the following parts: the whole-number part, the decimal point (ASCII period character .), the fraction part and the exponent. + * NUMBER: 2 + * DESCRIPTION: Real literals with a many digits in a whole-number part and a fraction part (including conforms). + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 + +// TESTCASE NUMBER: 2 +val value_2 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 + +// TESTCASE NUMBER: 3 +val value_3 = -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456789012345678901234567890123456789012345678901234567890 + +// TESTCASE NUMBER: 4 +val value_4 = -0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456789012345678901234567890123456789012345678901234567890 + +// TESTCASE NUMBER: 5 +val value_5 = -99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999.0 + +// TESTCASE NUMBER: 6 +val value_6 = 222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222.0 + +// TESTCASE NUMBER: 7 +val value_7 = -555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555123456785012345678501234567850123456785012345678501234567850.0 + +// TESTCASE NUMBER: 8 +val value_8 = 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 + +// TESTCASE NUMBER: 9 +val value_9 = -44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 + +// TESTCASE NUMBER: 10 +val value_10 = 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 + +// TESTCASE NUMBER: 11 +val value_11 = 888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 + +// TESTCASE NUMBER: 12 +val value_12 = -555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555123456785012345678501234567850123456785012345678501234567850.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456789012345678901234567890123456789012345678901234567890 diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos/1.2.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos/1.2.txt new file mode 100644 index 00000000000..f9d0a23b704 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos/1.2.txt @@ -0,0 +1,14 @@ +package + +public val value_1: kotlin.Double = 1.0E-323.toDouble() +public val value_10: kotlin.Double = Infinity.toDouble() +public val value_11: kotlin.Double = Infinity.toDouble() +public val value_12: kotlin.Double = -Infinity.toDouble() +public val value_2: kotlin.Double = 0.0.toDouble() +public val value_3: kotlin.Double = -1.0E-323.toDouble() +public val value_4: kotlin.Double = -0.0.toDouble() +public val value_5: kotlin.Double = -1.0E308.toDouble() +public val value_6: kotlin.Double = Infinity.toDouble() +public val value_7: kotlin.Double = -Infinity.toDouble() +public val value_8: kotlin.Double = 3.333333333333333E307.toDouble() +public val value_9: kotlin.Double = -4.4444444444444443E307.toDouble() diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos/3.1.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos/3.1.kt new file mode 100644 index 00000000000..1f21727c669 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos/3.1.kt @@ -0,0 +1,114 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 1 + * SENTENCE: [3] A real literal may also be followed by a type suffix (f or F). + * NUMBER: 1 + * DESCRIPTION: Simple real literals suffixed by f/F (the float suffix) with a different whole-number part and fraction part. + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0.0f + +// TESTCASE NUMBER: 2 +val value_2 = 0.00F + +// TESTCASE NUMBER: 3 +val value_3 = 0.000f + +// TESTCASE NUMBER: 4 +val value_4 = 0.0000F + +// TESTCASE NUMBER: 5 +val value_5 = 00.0F + +// TESTCASE NUMBER: 6 +val value_6 = 000.00F + +// TESTCASE NUMBER: 7 +val value_7 = 0000.000f + +// TESTCASE NUMBER: 8 +val value_8 = 1.0F + +// TESTCASE NUMBER: 9 +val value_9 = 22.00f + +// TESTCASE NUMBER: 10 +val value_10 = 333.000f + +// TESTCASE NUMBER: 11 +val value_11 = 4444.0000f + +// TESTCASE NUMBER: 12 +val value_12 = 55555.0F + +// TESTCASE NUMBER: 13 +val value_13 = 666666.00F + +// TESTCASE NUMBER: 14 +val value_14 = 7777777.000f + +// TESTCASE NUMBER: 15 +val value_15 = 88888888.0000f + +// TESTCASE NUMBER: 16 +val value_16 = 999999999.0f + +// TESTCASE NUMBER: 17 +val value_17 = 0000000000.1234567890F + +// TESTCASE NUMBER: 18 +val value_18 = 123456789.23456789F + +// TESTCASE NUMBER: 19 +val value_19 = 2345678.345678F + +// TESTCASE NUMBER: 20 +val value_20 = 34567.4567f + +// TESTCASE NUMBER: 21 +val value_21 = 456.56f + +// TESTCASE NUMBER: 22 +val value_22 = 5.65F + +// TESTCASE NUMBER: 23 +val value_23 = 654.7654f + +// TESTCASE NUMBER: 24 +val value_24 = 76543.876543f + +// TESTCASE NUMBER: 25 +val value_25 = 8765432.98765432F + +// TESTCASE NUMBER: 26 +val value_26 = 987654321.0987654321F + +// TESTCASE NUMBER: 27 +val value_27 = 0.1111F + +// TESTCASE NUMBER: 28 +val value_28 = 1.22222f + +// TESTCASE NUMBER: 29 +val value_29 = 9.33333f + +// TESTCASE NUMBER: 30 +val value_30 = 9.444444F + +// TESTCASE NUMBER: 31 +val value_31 = 8.5555555f + +// TESTCASE NUMBER: 32 +val value_32 = 2.66666666F + +// TESTCASE NUMBER: 33 +val value_33 = 3.777777777f + +// TESTCASE NUMBER: 34 +val value_34 = 7.8888888888f + +// TESTCASE NUMBER: 35 +val value_35 = 6.99999999999F diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos/3.1.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos/3.1.txt new file mode 100644 index 00000000000..81051db4dd3 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos/3.1.txt @@ -0,0 +1,37 @@ +package + +public val value_1: kotlin.Float = 0.0.toFloat() +public val value_10: kotlin.Float = 333.0.toFloat() +public val value_11: kotlin.Float = 4444.0.toFloat() +public val value_12: kotlin.Float = 55555.0.toFloat() +public val value_13: kotlin.Float = 666666.0.toFloat() +public val value_14: kotlin.Float = 7777777.0.toFloat() +public val value_15: kotlin.Float = 8.8888888E7.toFloat() +public val value_16: kotlin.Float = 1.0E9.toFloat() +public val value_17: kotlin.Float = 0.12345679.toFloat() +public val value_18: kotlin.Float = 1.23456792E8.toFloat() +public val value_19: kotlin.Float = 2345678.2.toFloat() +public val value_2: kotlin.Float = 0.0.toFloat() +public val value_20: kotlin.Float = 34567.457.toFloat() +public val value_21: kotlin.Float = 456.56.toFloat() +public val value_22: kotlin.Float = 5.65.toFloat() +public val value_23: kotlin.Float = 654.7654.toFloat() +public val value_24: kotlin.Float = 76543.875.toFloat() +public val value_25: kotlin.Float = 8765433.0.toFloat() +public val value_26: kotlin.Float = 9.8765434E8.toFloat() +public val value_27: kotlin.Float = 0.1111.toFloat() +public val value_28: kotlin.Float = 1.22222.toFloat() +public val value_29: kotlin.Float = 9.33333.toFloat() +public val value_3: kotlin.Float = 0.0.toFloat() +public val value_30: kotlin.Float = 9.444444.toFloat() +public val value_31: kotlin.Float = 8.555555.toFloat() +public val value_32: kotlin.Float = 2.6666667.toFloat() +public val value_33: kotlin.Float = 3.7777777.toFloat() +public val value_34: kotlin.Float = 7.888889.toFloat() +public val value_35: kotlin.Float = 7.0.toFloat() +public val value_4: kotlin.Float = 0.0.toFloat() +public val value_5: kotlin.Float = 0.0.toFloat() +public val value_6: kotlin.Float = 0.0.toFloat() +public val value_7: kotlin.Float = 0.0.toFloat() +public val value_8: kotlin.Float = 1.0.toFloat() +public val value_9: kotlin.Float = 22.0.toFloat() diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos/3.2.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos/3.2.kt new file mode 100644 index 00000000000..6a8ffadf482 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos/3.2.kt @@ -0,0 +1,45 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 1 + * SENTENCE: [3] A real literal may also be followed by a type suffix (f or F). + * NUMBER: 2 + * DESCRIPTION: Real literals suffixed by f/F (the float suffix) with a many digits in a whole-number part and a fraction part (including conforms). + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0.000000000000000000000000000000000000000000001f + +// TESTCASE NUMBER: 2 +val value_2 = 0.0000000000000000000000000000000000000000000001f + +// TESTCASE NUMBER: 3 +val value_3 = -0.00000000000000000000000000000000000000000000123456789012345678901234567890123456789012345678901234567890F + +// TESTCASE NUMBER: 4 +val value_4 = -0.0000000000000000000000000000000000000000000001f + +// TESTCASE NUMBER: 5 +val value_5 = -99999999999999999999999999999999999999.0f + +// TESTCASE NUMBER: 6 +val value_6 = 2222222222222222222222222222222222222222.0f + +// TESTCASE NUMBER: 7 +val value_7 = -555555555123456785012345678501234567850.0F + +// TESTCASE NUMBER: 8 +val value_8 = 333333333333333333333333333333333333333.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f + +// TESTCASE NUMBER: 9 +val value_9 = -44444444444444444444444444444444444444.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001F + +// TESTCASE NUMBER: 10 +val value_10 = 777777777777777777777777777777777777777.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001F + +// TESTCASE NUMBER: 11 +val value_11 = 888888888888888888888888888888888888888.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f + +// TESTCASE NUMBER: 12 +val value_12 = -555555555555556785012345678501234567850.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456789012345678901234567890123456789012345678901234567890f diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos/3.2.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos/3.2.txt new file mode 100644 index 00000000000..19859734afc --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos/3.2.txt @@ -0,0 +1,14 @@ +package + +public val value_1: kotlin.Float = 1.4E-45.toFloat() +public val value_10: kotlin.Float = Infinity.toFloat() +public val value_11: kotlin.Float = Infinity.toFloat() +public val value_12: kotlin.Float = -Infinity.toFloat() +public val value_2: kotlin.Float = 0.0.toFloat() +public val value_3: kotlin.Float = -1.4E-45.toFloat() +public val value_4: kotlin.Float = -0.0.toFloat() +public val value_5: kotlin.Float = -1.0E38.toFloat() +public val value_6: kotlin.Float = Infinity.toFloat() +public val value_7: kotlin.Float = -Infinity.toFloat() +public val value_8: kotlin.Float = 3.3333333E38.toFloat() +public val value_9: kotlin.Float = -4.4444444E37.toFloat() diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg/1.1.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg/1.1.kt new file mode 100644 index 00000000000..2bb85c29d41 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg/1.1.kt @@ -0,0 +1,60 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 2 + * SENTENCE: [1] The exponent is an exponent mark (e or E) followed by an optionaly signed decimal integer (a sequence of decimal digits). + * NUMBER: 1 + * DESCRIPTION: Real literals without digits after an exponent mark. + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0.0E + +// TESTCASE NUMBER: 2 +val value_2 = 00.0e + +// TESTCASE NUMBER: 3 +val value_3 = 000.00e- + +// TESTCASE NUMBER: 4 +val value_4 = 0000.000E+ + +// TESTCASE NUMBER: 5 +val value_5 = 1.0e + +// TESTCASE NUMBER: 6 +val value_6 = 22.00E+ + +// TESTCASE NUMBER: 7 +val value_7 = 333.000e + +// TESTCASE NUMBER: 8 +val value_8 = 4444.0000E + +// TESTCASE NUMBER: 9 +val value_9 = 55555.0e+ + +// TESTCASE NUMBER: 10 +val value_10 = 666666.00E- + +// TESTCASE NUMBER: 11 +val value_11 = 7777777.000e + +// TESTCASE NUMBER: 12 +val value_12 = 88888888.0000e + +// TESTCASE NUMBER: 13 +val value_13 = 999999999.0E- + +// TESTCASE NUMBER: 14 +val value_14 = 7.888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888e+ + +// TESTCASE NUMBER: 15 +val value_15 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e + +// TESTCASE NUMBER: 16 +val value_16 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e- + +// TESTCASE NUMBER: 17 +val value_17 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+ diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg/1.1.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg/1.1.txt new file mode 100644 index 00000000000..5278165ebee --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg/1.1.txt @@ -0,0 +1,19 @@ +package + +public val value_1: kotlin.Double +public val value_10: kotlin.Double +public val value_11: kotlin.Double +public val value_12: kotlin.Double +public val value_13: kotlin.Double +public val value_14: kotlin.Double +public val value_15: kotlin.Double +public val value_16: kotlin.Double +public val value_17: kotlin.Double +public val value_2: kotlin.Double +public val value_3: kotlin.Double +public val value_4: kotlin.Double +public val value_5: kotlin.Double +public val value_6: kotlin.Double +public val value_7: kotlin.Double +public val value_8: kotlin.Double +public val value_9: kotlin.Double diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg/1.2.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg/1.2.kt new file mode 100644 index 00000000000..ab3402adf5e --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg/1.2.kt @@ -0,0 +1,48 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 2 + * SENTENCE: [1] The exponent is an exponent mark (e or E) followed by an optionaly signed decimal integer (a sequence of decimal digits). + * NUMBER: 2 + * DESCRIPTION: Real literals with a not allowed exponent mark at the beginning. + */ + +// TESTCASE NUMBER: 1 +val value_1 = E0 + +// TESTCASE NUMBER: 2 +val value_2 = e000 + +// TESTCASE NUMBER: 3 +val value_3 = E+0 + +// TESTCASE NUMBER: 4 +val value_4 = e00 + +// TESTCASE NUMBER: 5 +val value_5 = e+1 + +// TESTCASE NUMBER: 6 +val value_6 = e22 + +// TESTCASE NUMBER: 7 +val value_7 = E-333 + +// TESTCASE NUMBER: 8 +val value_8 = e4444 + +// TESTCASE NUMBER: 9 +val value_9 = e-55555 + +// TESTCASE NUMBER: 10 +val value_10 = e666666 + +// TESTCASE NUMBER: 11 +val value_11 = E7777777 + +// TESTCASE NUMBER: 12 +val value_12 = e-88888888 + +// TESTCASE NUMBER: 13 +val value_13 = E+999999999 diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg/1.2.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg/1.2.txt new file mode 100644 index 00000000000..1a7a4fd9bd3 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg/1.2.txt @@ -0,0 +1,15 @@ +package + +public val value_1: [ERROR : Type for E0] +public val value_10: [ERROR : Type for e666666] +public val value_11: [ERROR : Type for E7777777] +public val value_12: [ERROR : ] +public val value_13: [ERROR : ] +public val value_2: [ERROR : Type for e000] +public val value_3: [ERROR : ] +public val value_4: [ERROR : Type for e00] +public val value_5: [ERROR : ] +public val value_6: [ERROR : Type for e22] +public val value_7: [ERROR : ] +public val value_8: [ERROR : Type for e4444] +public val value_9: [ERROR : ] diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg/1.3.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg/1.3.kt new file mode 100644 index 00000000000..5eab4395a46 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg/1.3.kt @@ -0,0 +1,48 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 2 + * SENTENCE: [1] The exponent is an exponent mark (e or E) followed by an optionaly signed decimal integer (a sequence of decimal digits). + * NUMBER: 3 + * DESCRIPTION: Real literals suffixed by f/F (float suffix) with a not allowed exponent mark at the beginning. + */ + +// TESTCASE NUMBER: 1 +val value_1 = E0f + +// TESTCASE NUMBER: 2 +val value_2 = e000F + +// TESTCASE NUMBER: 3 +val value_3 = E+0f + +// TESTCASE NUMBER: 4 +val value_4 = e00f + +// TESTCASE NUMBER: 5 +val value_5 = e+1F + +// TESTCASE NUMBER: 6 +val value_6 = e22F + +// TESTCASE NUMBER: 7 +val value_7 = E-333F + +// TESTCASE NUMBER: 8 +val value_8 = e4444f + +// TESTCASE NUMBER: 9 +val value_9 = e-55555f + +// TESTCASE NUMBER: 10 +val value_10 = e666666F + +// TESTCASE NUMBER: 11 +val value_11 = E7777777f + +// TESTCASE NUMBER: 12 +val value_12 = e-88888888F + +// TESTCASE NUMBER: 13 +val value_13 = E+999999999F diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg/1.3.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg/1.3.txt new file mode 100644 index 00000000000..4cb4c271728 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg/1.3.txt @@ -0,0 +1,15 @@ +package + +public val value_1: [ERROR : Type for E0f] +public val value_10: [ERROR : Type for e666666F] +public val value_11: [ERROR : Type for E7777777f] +public val value_12: [ERROR : ] +public val value_13: [ERROR : ] +public val value_2: [ERROR : Type for e000F] +public val value_3: [ERROR : ] +public val value_4: [ERROR : Type for e00f] +public val value_5: [ERROR : ] +public val value_6: [ERROR : Type for e22F] +public val value_7: [ERROR : ] +public val value_8: [ERROR : Type for e4444f] +public val value_9: [ERROR : ] diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg/1.4.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg/1.4.kt new file mode 100644 index 00000000000..4ef3fa6ca55 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg/1.4.kt @@ -0,0 +1,60 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 2 + * SENTENCE: [1] The exponent is an exponent mark (e or E) followed by an optionaly signed decimal integer (a sequence of decimal digits). + * NUMBER: 4 + * DESCRIPTION: Real literals suffixed by f/F (float suffix) with an exponent mark without digits after it. + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0.0EF + +// TESTCASE NUMBER: 2 +val value_2 = 00.0ef + +// TESTCASE NUMBER: 3 +val value_3 = 000.00e-f + +// TESTCASE NUMBER: 4 +val value_4 = 0000.000E+F + +// TESTCASE NUMBER: 5 +val value_5 = 1.0eF + +// TESTCASE NUMBER: 6 +val value_6 = 22.00E+f + +// TESTCASE NUMBER: 7 +val value_7 = 333.000ef + +// TESTCASE NUMBER: 8 +val value_8 = 4444.0000Ef + +// TESTCASE NUMBER: 9 +val value_9 = 55555.0e+F + +// TESTCASE NUMBER: 10 +val value_10 = 666666.00E-F + +// TESTCASE NUMBER: 11 +val value_11 = 7777777.000eF + +// TESTCASE NUMBER: 12 +val value_12 = 88888888.0000ef + +// TESTCASE NUMBER: 13 +val value_13 = 999999999.0E-F + +// TESTCASE NUMBER: 14 +val value_14 = 7.888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888e+f + +// TESTCASE NUMBER: 15 +val value_15 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eF + +// TESTCASE NUMBER: 16 +val value_16 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-f + +// TESTCASE NUMBER: 17 +val value_17 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+F diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg/1.4.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg/1.4.txt new file mode 100644 index 00000000000..5278165ebee --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg/1.4.txt @@ -0,0 +1,19 @@ +package + +public val value_1: kotlin.Double +public val value_10: kotlin.Double +public val value_11: kotlin.Double +public val value_12: kotlin.Double +public val value_13: kotlin.Double +public val value_14: kotlin.Double +public val value_15: kotlin.Double +public val value_16: kotlin.Double +public val value_17: kotlin.Double +public val value_2: kotlin.Double +public val value_3: kotlin.Double +public val value_4: kotlin.Double +public val value_5: kotlin.Double +public val value_6: kotlin.Double +public val value_7: kotlin.Double +public val value_8: kotlin.Double +public val value_9: kotlin.Double diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/pos/1.1.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/pos/1.1.kt new file mode 100644 index 00000000000..cc2e92a6bbc --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/pos/1.1.kt @@ -0,0 +1,126 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 2 + * SENTENCE: [1] The exponent is an exponent mark (e or E) followed by an optionaly signed decimal integer (a sequence of decimal digits). + * NUMBER: 1 + * DESCRIPTION: Simple real literals with an exponent mark. + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0.0e0 + +// TESTCASE NUMBER: 2 +val value_2 = 0.0e-00 + +// TESTCASE NUMBER: 3 +val value_3 = 0.0E000 + +// TESTCASE NUMBER: 4 +val value_4 = 0.0E+0000 + +// TESTCASE NUMBER: 5 +val value_5 = 00.0e+0 + +// TESTCASE NUMBER: 6 +val value_6 = 000.00e00 + +// TESTCASE NUMBER: 7 +val value_7 = 0000.000E-000 + +// TESTCASE NUMBER: 8 +val value_8 = 1.0E+1 + +// TESTCASE NUMBER: 9 +val value_9 = 22.00e22 + +// TESTCASE NUMBER: 10 +val value_10 = 333.000e-333 + +// TESTCASE NUMBER: 11 +val value_11 = 4444.0000e4444 + +// TESTCASE NUMBER: 12 +val value_12 = 55555.0E-55555 + +// TESTCASE NUMBER: 13 +val value_13 = 666666.00e666666 + +// TESTCASE NUMBER: 14 +val value_14 = 7777777.000E7777777 + +// TESTCASE NUMBER: 15 +val value_15 = 88888888.0000e-88888888 + +// TESTCASE NUMBER: 16 +val value_16 = 999999999.0E+999999999 + +// TESTCASE NUMBER: 17 +val value_17 = 0000000000.1234567890E999999999 + +// TESTCASE NUMBER: 18 +val value_18 = 123456789.23456789E+123456789 + +// TESTCASE NUMBER: 19 +val value_19 = 2345678.345678e00000000001 + +// TESTCASE NUMBER: 20 +val value_20 = 34567.4567E-100000000000 + +// TESTCASE NUMBER: 21 +val value_21 = 456.56e-0 + +// TESTCASE NUMBER: 22 +val value_22 = 5.65e000000000000 + +// TESTCASE NUMBER: 23 +val value_23 = 654.7654E+010 + +// TESTCASE NUMBER: 24 +val value_24 = 76543.876543E1 + +// TESTCASE NUMBER: 25 +val value_25 = 8765432.98765432e-2 + +// TESTCASE NUMBER: 26 +val value_26 = 987654321.0987654321E-3 + +// TESTCASE NUMBER: 27 +val value_27 = 0.1111e4 + +// TESTCASE NUMBER: 28 +val value_28 = 1.22222E-5 + +// TESTCASE NUMBER: 29 +val value_29 = 9.33333e+6 + +// TESTCASE NUMBER: 30 +val value_30 = 9.444444E7 + +// TESTCASE NUMBER: 31 +val value_31 = 8.5555555e8 + +// TESTCASE NUMBER: 32 +val value_32 = 2.66666666e308 + +// TESTCASE NUMBER: 33 +val value_33 = 3.777777777E-308 + +// TESTCASE NUMBER: 34 +val value_34 = 7.8888888888e+309 + +// TESTCASE NUMBER: 35 +val value_35 = 6.99999999999e-309 + +// TESTCASE NUMBER: 36 +val value_36 = 7.888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888e+111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 + +// TESTCASE NUMBER: 37 +val value_37 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + +// TESTCASE NUMBER: 38 +val value_38 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + +// TESTCASE NUMBER: 39 +val value_39 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/pos/1.1.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/pos/1.1.txt new file mode 100644 index 00000000000..b763ec732ad --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/pos/1.1.txt @@ -0,0 +1,41 @@ +package + +public val value_1: kotlin.Double = 0.0.toDouble() +public val value_10: kotlin.Double = 0.0.toDouble() +public val value_11: kotlin.Double = Infinity.toDouble() +public val value_12: kotlin.Double = 0.0.toDouble() +public val value_13: kotlin.Double = Infinity.toDouble() +public val value_14: kotlin.Double = Infinity.toDouble() +public val value_15: kotlin.Double = 0.0.toDouble() +public val value_16: kotlin.Double = Infinity.toDouble() +public val value_17: kotlin.Double = Infinity.toDouble() +public val value_18: kotlin.Double = Infinity.toDouble() +public val value_19: kotlin.Double = 2.345678345678E7.toDouble() +public val value_2: kotlin.Double = 0.0.toDouble() +public val value_20: kotlin.Double = 0.0.toDouble() +public val value_21: kotlin.Double = 456.56.toDouble() +public val value_22: kotlin.Double = 5.65.toDouble() +public val value_23: kotlin.Double = 6.547654E12.toDouble() +public val value_24: kotlin.Double = 765438.76543.toDouble() +public val value_25: kotlin.Double = 87654.3298765432.toDouble() +public val value_26: kotlin.Double = 987654.3210987655.toDouble() +public val value_27: kotlin.Double = 1111.0.toDouble() +public val value_28: kotlin.Double = 1.22222E-5.toDouble() +public val value_29: kotlin.Double = 9333330.0.toDouble() +public val value_3: kotlin.Double = 0.0.toDouble() +public val value_30: kotlin.Double = 9.444444E7.toDouble() +public val value_31: kotlin.Double = 8.5555555E8.toDouble() +public val value_32: kotlin.Double = Infinity.toDouble() +public val value_33: kotlin.Double = 3.777777777E-308.toDouble() +public val value_34: kotlin.Double = Infinity.toDouble() +public val value_35: kotlin.Double = 6.99999999999E-309.toDouble() +public val value_36: kotlin.Double = Infinity.toDouble() +public val value_37: kotlin.Double = 0.0.toDouble() +public val value_38: kotlin.Double = 0.0.toDouble() +public val value_39: kotlin.Double = 0.0.toDouble() +public val value_4: kotlin.Double = 0.0.toDouble() +public val value_5: kotlin.Double = 0.0.toDouble() +public val value_6: kotlin.Double = 0.0.toDouble() +public val value_7: kotlin.Double = 0.0.toDouble() +public val value_8: kotlin.Double = 10.0.toDouble() +public val value_9: kotlin.Double = 2.2E23.toDouble() diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/pos/1.2.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/pos/1.2.kt new file mode 100644 index 00000000000..d6cc3d74378 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/pos/1.2.kt @@ -0,0 +1,87 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 2 + * SENTENCE: [1] The exponent is an exponent mark (e or E) followed by an optionaly signed decimal integer (a sequence of decimal digits). + * NUMBER: 2 + * DESCRIPTION: Real literals suffixed by f/F (float suffix) with an exponent mark. + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0.0e0f + +// TESTCASE NUMBER: 2 +val value_2 = 0.0e-00F + +// TESTCASE NUMBER: 3 +val value_3 = 0.0E000F + +// TESTCASE NUMBER: 4 +val value_4 = 0.0E+0000f + +// TESTCASE NUMBER: 5 +val value_5 = 00.0e+0f + +// TESTCASE NUMBER: 6 +val value_6 = 000.00e00f + +// TESTCASE NUMBER: 7 +val value_7 = 0000.000E-000F + +// TESTCASE NUMBER: 8 +val value_8 = 1.0E+1F + +// TESTCASE NUMBER: 9 +val value_9 = 22.00e22F + +// TESTCASE NUMBER: 10 +val value_10 = 2345678.345678e00000000001F + +// TESTCASE NUMBER: 11 +val value_11 = 456.56e-0f + +// TESTCASE NUMBER: 12 +val value_12 = 5.65e000000000000F + +// TESTCASE NUMBER: 13 +val value_13 = 654.7654E+010f + +// TESTCASE NUMBER: 14 +val value_14 = 76543.876543E1f + +// TESTCASE NUMBER: 15 +val value_15 = 8765432.98765432e-2f + +// TESTCASE NUMBER: 16 +val value_16 = 987654321.0987654321E-3f + +// TESTCASE NUMBER: 17 +val value_17 = 0.1111e4f + +// TESTCASE NUMBER: 18 +val value_18 = 1.22222E-5F + +// TESTCASE NUMBER: 19 +val value_19 = 9.33333e+6F + +// TESTCASE NUMBER: 20 +val value_20 = 9.444444E7F + +// TESTCASE NUMBER: 21 +val value_21 = 8.5555555e8f + +// TESTCASE NUMBER: 22 +val value_22 = 3.777777777E-308f + +// TESTCASE NUMBER: 23 +val value_23 = 6.99999999999e-309F + +// TESTCASE NUMBER: 24 +val value_24 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f + +// TESTCASE NUMBER: 25 +val value_25 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F + +// TESTCASE NUMBER: 26 +val value_26 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/pos/1.2.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/pos/1.2.txt new file mode 100644 index 00000000000..a44aa559795 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/pos/1.2.txt @@ -0,0 +1,28 @@ +package + +public val value_1: kotlin.Float = 0.0.toFloat() +public val value_10: kotlin.Float = 2.3456784E7.toFloat() +public val value_11: kotlin.Float = 456.56.toFloat() +public val value_12: kotlin.Float = 5.65.toFloat() +public val value_13: kotlin.Float = 6.547654E12.toFloat() +public val value_14: kotlin.Float = 765438.75.toFloat() +public val value_15: kotlin.Float = 87654.33.toFloat() +public val value_16: kotlin.Float = 987654.3.toFloat() +public val value_17: kotlin.Float = 1111.0.toFloat() +public val value_18: kotlin.Float = 1.22222E-5.toFloat() +public val value_19: kotlin.Float = 9333330.0.toFloat() +public val value_2: kotlin.Float = 0.0.toFloat() +public val value_20: kotlin.Float = 9.444444E7.toFloat() +public val value_21: kotlin.Float = 8.5555552E8.toFloat() +public val value_22: kotlin.Float = 0.0.toFloat() +public val value_23: kotlin.Float = 0.0.toFloat() +public val value_24: kotlin.Float = 0.0.toFloat() +public val value_25: kotlin.Float = 0.0.toFloat() +public val value_26: kotlin.Float = 0.0.toFloat() +public val value_3: kotlin.Float = 0.0.toFloat() +public val value_4: kotlin.Float = 0.0.toFloat() +public val value_5: kotlin.Float = 0.0.toFloat() +public val value_6: kotlin.Float = 0.0.toFloat() +public val value_7: kotlin.Float = 0.0.toFloat() +public val value_8: kotlin.Float = 10.0.toFloat() +public val value_9: kotlin.Float = 2.2E23.toFloat() diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/neg/1.1.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/neg/1.1.kt new file mode 100644 index 00000000000..e60c6d41bbc --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/neg/1.1.kt @@ -0,0 +1,60 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [1] The whole-number part and the exponent part may be omitted. + * NUMBER: 1 + * DESCRIPTION: Real literals with omitted a whole-number part and an exponent mark without digits after it. + */ + +// TESTCASE NUMBER: 1 +val value_1 = .0E + +// TESTCASE NUMBER: 2 +val value_2 = .0e + +// TESTCASE NUMBER: 3 +val value_3 = .00e- + +// TESTCASE NUMBER: 4 +val value_4 = .000E+ + +// TESTCASE NUMBER: 5 +val value_5 = .0e + +// TESTCASE NUMBER: 6 +val value_6 = .00E+ + +// TESTCASE NUMBER: 7 +val value_7 = .000e + +// TESTCASE NUMBER: 8 +val value_8 = .0000E + +// TESTCASE NUMBER: 9 +val value_9 = .0e+ + +// TESTCASE NUMBER: 10 +val value_10 = .00E- + +// TESTCASE NUMBER: 11 +val value_11 = .000e + +// TESTCASE NUMBER: 12 +val value_12 = .0000e + +// TESTCASE NUMBER: 13 +val value_13 = .0E- + +// TESTCASE NUMBER: 14 +val value_14 = .888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888e+ + +// TESTCASE NUMBER: 15 +val value_15 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e + +// TESTCASE NUMBER: 16 +val value_16 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e- + +// TESTCASE NUMBER: 17 +val value_17 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+ diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/neg/1.1.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/neg/1.1.txt new file mode 100644 index 00000000000..5278165ebee --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/neg/1.1.txt @@ -0,0 +1,19 @@ +package + +public val value_1: kotlin.Double +public val value_10: kotlin.Double +public val value_11: kotlin.Double +public val value_12: kotlin.Double +public val value_13: kotlin.Double +public val value_14: kotlin.Double +public val value_15: kotlin.Double +public val value_16: kotlin.Double +public val value_17: kotlin.Double +public val value_2: kotlin.Double +public val value_3: kotlin.Double +public val value_4: kotlin.Double +public val value_5: kotlin.Double +public val value_6: kotlin.Double +public val value_7: kotlin.Double +public val value_8: kotlin.Double +public val value_9: kotlin.Double diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/neg/1.2.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/neg/1.2.kt new file mode 100644 index 00000000000..8da12183c87 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/neg/1.2.kt @@ -0,0 +1,60 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [1] The whole-number part and the exponent part may be omitted. + * NUMBER: 2 + * DESCRIPTION: Real literals with omitted a whole-number part, suffixed by f/F (float suffix) followed by an exponent mark without digits. + */ + +// TESTCASE NUMBER: 1 +val value_1 = .0EF + +// TESTCASE NUMBER: 2 +val value_2 = .0ef + +// TESTCASE NUMBER: 3 +val value_3 = .00e-f + +// TESTCASE NUMBER: 4 +val value_4 = .000E+F + +// TESTCASE NUMBER: 5 +val value_5 = .0eF + +// TESTCASE NUMBER: 6 +val value_6 = .00E+f + +// TESTCASE NUMBER: 7 +val value_7 = .000ef + +// TESTCASE NUMBER: 8 +val value_8 = .0000Ef + +// TESTCASE NUMBER: 9 +val value_9 = .0e+F + +// TESTCASE NUMBER: 10 +val value_10 = .00E-F + +// TESTCASE NUMBER: 11 +val value_11 = .000eF + +// TESTCASE NUMBER: 12 +val value_12 = .0000ef + +// TESTCASE NUMBER: 13 +val value_13 = .0E-F + +// TESTCASE NUMBER: 14 +val value_14 = .888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888e+f + +// TESTCASE NUMBER: 15 +val value_15 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eF + +// TESTCASE NUMBER: 16 +val value_16 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-f + +// TESTCASE NUMBER: 17 +val value_17 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+F diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/neg/1.2.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/neg/1.2.txt new file mode 100644 index 00000000000..5278165ebee --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/neg/1.2.txt @@ -0,0 +1,19 @@ +package + +public val value_1: kotlin.Double +public val value_10: kotlin.Double +public val value_11: kotlin.Double +public val value_12: kotlin.Double +public val value_13: kotlin.Double +public val value_14: kotlin.Double +public val value_15: kotlin.Double +public val value_16: kotlin.Double +public val value_17: kotlin.Double +public val value_2: kotlin.Double +public val value_3: kotlin.Double +public val value_4: kotlin.Double +public val value_5: kotlin.Double +public val value_6: kotlin.Double +public val value_7: kotlin.Double +public val value_8: kotlin.Double +public val value_9: kotlin.Double diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/neg/2.1.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/neg/2.1.kt new file mode 100644 index 00000000000..a9c69a951ba --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/neg/2.1.kt @@ -0,0 +1,36 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [2] The fraction part may be omitted only together with the decimal point, if the whole-number part and either the exponent part or the type suffix are present. + * NUMBER: 1 + * DESCRIPTION: Real literals with omitted a fraction part and an exponent mark without digits after it. + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0e + +// TESTCASE NUMBER: 2 +val value_2 = 00e- + +// TESTCASE NUMBER: 3 +val value_3 = 000E+ + +// TESTCASE NUMBER: 4 +val value_4 = 0000e+ + +// TESTCASE NUMBER: 5 +val value_5 = 00000000000000000000000000000000000000E + +// TESTCASE NUMBER: 6 +val value_6 = 34567E+ + +// TESTCASE NUMBER: 7 +val value_7 = 456e- + +// TESTCASE NUMBER: 8 +val value_8 = 55555e+f + +// TESTCASE NUMBER: 9 +val value_9 = 666666E-F diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/neg/2.1.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/neg/2.1.txt new file mode 100644 index 00000000000..5e458df0514 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/neg/2.1.txt @@ -0,0 +1,11 @@ +package + +public val value_1: kotlin.Double +public val value_2: kotlin.Double +public val value_3: kotlin.Double +public val value_4: kotlin.Double +public val value_5: kotlin.Double +public val value_6: kotlin.Double +public val value_7: kotlin.Double +public val value_8: kotlin.Double +public val value_9: kotlin.Double diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.1.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.1.kt new file mode 100644 index 00000000000..6a3674c47d2 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.1.kt @@ -0,0 +1,96 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [1] The whole-number part and the exponent part may be omitted. + * NUMBER: 1 + * DESCRIPTION: Simple real literals with omitted a whole-number part. + */ + +// TESTCASE NUMBER: 1 +val value_1 = .0 + +// TESTCASE NUMBER: 2 +val value_2 = .00 + +// TESTCASE NUMBER: 3 +val value_3 = .000 + +// TESTCASE NUMBER: 4 +val value_4 = .0000 + +// TESTCASE NUMBER: 5 +val value_5 = .1234567890 + +// TESTCASE NUMBER: 6 +val value_6 = .23456789 + +// TESTCASE NUMBER: 7 +val value_7 = .345678 + +// TESTCASE NUMBER: 8 +val value_8 = .4567 + +// TESTCASE NUMBER: 9 +val value_9 = .56 + +// TESTCASE NUMBER: 10 +val value_10 = .65 + +// TESTCASE NUMBER: 11 +val value_11 = .7654 + +// TESTCASE NUMBER: 12 +val value_12 = .876543 + +// TESTCASE NUMBER: 13 +val value_13 = .98765432 + +// TESTCASE NUMBER: 14 +val value_14 = .0987654321 + +// TESTCASE NUMBER: 15 +val value_15 = .1111 + +// TESTCASE NUMBER: 16 +val value_16 = .22222 + +// TESTCASE NUMBER: 17 +val value_17 = .33333 + +// TESTCASE NUMBER: 18 +val value_18 = .444444 + +// TESTCASE NUMBER: 19 +val value_19 = .5555555 + +// TESTCASE NUMBER: 20 +val value_20 = .66666666 + +// TESTCASE NUMBER: 21 +val value_21 = .777777777 + +// TESTCASE NUMBER: 22 +val value_22 = .8888888888 + +// TESTCASE NUMBER: 23 +val value_23 = .99999999999 + +// TESTCASE NUMBER: 24 +val value_24 = .00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 + +// TESTCASE NUMBER: 25 +val value_25 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 + +// TESTCASE NUMBER: 26 +val value_26 = .0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456789012345678901234567890123456789012345678901234567890 + +// TESTCASE NUMBER: 27 +val value_27 = .44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444441 + +// TESTCASE NUMBER: 28 +val value_28 = .777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777771 + +// TESTCASE NUMBER: 29 +val value_29 = .9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999123456789912345678991234567899123456789912345678991234567899 diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.1.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.1.txt new file mode 100644 index 00000000000..8fbd4ca7bcc --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.1.txt @@ -0,0 +1,31 @@ +package + +public val value_1: kotlin.Double = 0.0.toDouble() +public val value_10: kotlin.Double = 0.65.toDouble() +public val value_11: kotlin.Double = 0.7654.toDouble() +public val value_12: kotlin.Double = 0.876543.toDouble() +public val value_13: kotlin.Double = 0.98765432.toDouble() +public val value_14: kotlin.Double = 0.0987654321.toDouble() +public val value_15: kotlin.Double = 0.1111.toDouble() +public val value_16: kotlin.Double = 0.22222.toDouble() +public val value_17: kotlin.Double = 0.33333.toDouble() +public val value_18: kotlin.Double = 0.444444.toDouble() +public val value_19: kotlin.Double = 0.5555555.toDouble() +public val value_2: kotlin.Double = 0.0.toDouble() +public val value_20: kotlin.Double = 0.66666666.toDouble() +public val value_21: kotlin.Double = 0.777777777.toDouble() +public val value_22: kotlin.Double = 0.8888888888.toDouble() +public val value_23: kotlin.Double = 0.99999999999.toDouble() +public val value_24: kotlin.Double = 1.0E-323.toDouble() +public val value_25: kotlin.Double = 0.0.toDouble() +public val value_26: kotlin.Double = 1.0E-323.toDouble() +public val value_27: kotlin.Double = 0.4444444444444444.toDouble() +public val value_28: kotlin.Double = 0.7777777777777778.toDouble() +public val value_29: kotlin.Double = 1.0.toDouble() +public val value_3: kotlin.Double = 0.0.toDouble() +public val value_4: kotlin.Double = 0.0.toDouble() +public val value_5: kotlin.Double = 0.123456789.toDouble() +public val value_6: kotlin.Double = 0.23456789.toDouble() +public val value_7: kotlin.Double = 0.345678.toDouble() +public val value_8: kotlin.Double = 0.4567.toDouble() +public val value_9: kotlin.Double = 0.56.toDouble() diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.2.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.2.kt new file mode 100644 index 00000000000..33ebf2cc1bb --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.2.kt @@ -0,0 +1,99 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [1] The whole-number part and the exponent part may be omitted. + * NUMBER: 2 + * DESCRIPTION: Real literals with omitted a whole-number part and an exponent mark. + */ + +// TESTCASE NUMBER: 1 +val value_1 = .0e0 + +// TESTCASE NUMBER: 2 +val value_2 = .0e-00 + +// TESTCASE NUMBER: 3 +val value_3 = .0E000 + +// TESTCASE NUMBER: 4 +val value_4 = .0E+0000 + +// TESTCASE NUMBER: 5 +val value_5 = .0e+0 + +// TESTCASE NUMBER: 6 +val value_6 = .00e00 + +// TESTCASE NUMBER: 7 +val value_7 = .000E-000 + +// TESTCASE NUMBER: 8 +val value_8 = .0E+1 + +// TESTCASE NUMBER: 9 +val value_9 = .00e22 + +// TESTCASE NUMBER: 10 +val value_10 = .000e-333 + +// TESTCASE NUMBER: 12 +val value_12 = .0E-55555 + +// TESTCASE NUMBER: 15 +val value_15 = .0000e-88888888 + +// TESTCASE NUMBER: 19 +val value_19 = .345678e00000000001 + +// TESTCASE NUMBER: 20 +val value_20 = .4567E-100000000000 + +// TESTCASE NUMBER: 21 +val value_21 = .56e-0 + +// TESTCASE NUMBER: 22 +val value_22 = .65e000000000000 + +// TESTCASE NUMBER: 23 +val value_23 = .7654E+010 + +// TESTCASE NUMBER: 24 +val value_24 = .876543E1 + +// TESTCASE NUMBER: 25 +val value_25 = .98765432e-2 + +// TESTCASE NUMBER: 26 +val value_26 = .0987654321E-3 + +// TESTCASE NUMBER: 27 +val value_27 = .1111e4 + +// TESTCASE NUMBER: 28 +val value_28 = .22222E-5 + +// TESTCASE NUMBER: 29 +val value_29 = .33333e+6 + +// TESTCASE NUMBER: 30 +val value_30 = .444444E7 + +// TESTCASE NUMBER: 31 +val value_31 = .5555555e8 + +// TESTCASE NUMBER: 33 +val value_33 = .777777777E-308 + +// TESTCASE NUMBER: 35 +val value_35 = .99999999999e-309 + +// TESTCASE NUMBER: 37 +val value_37 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + +// TESTCASE NUMBER: 38 +val value_38 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + +// TESTCASE NUMBER: 39 +val value_39 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.2.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.2.txt new file mode 100644 index 00000000000..48c84151f2c --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.2.txt @@ -0,0 +1,32 @@ +package + +public val value_1: kotlin.Double = 0.0.toDouble() +public val value_10: kotlin.Double = 0.0.toDouble() +public val value_12: kotlin.Double = 0.0.toDouble() +public val value_15: kotlin.Double = 0.0.toDouble() +public val value_19: kotlin.Double = 3.45678.toDouble() +public val value_2: kotlin.Double = 0.0.toDouble() +public val value_20: kotlin.Double = 0.0.toDouble() +public val value_21: kotlin.Double = 0.56.toDouble() +public val value_22: kotlin.Double = 0.65.toDouble() +public val value_23: kotlin.Double = 7.654E9.toDouble() +public val value_24: kotlin.Double = 8.76543.toDouble() +public val value_25: kotlin.Double = 0.0098765432.toDouble() +public val value_26: kotlin.Double = 9.87654321E-5.toDouble() +public val value_27: kotlin.Double = 1111.0.toDouble() +public val value_28: kotlin.Double = 2.2222E-6.toDouble() +public val value_29: kotlin.Double = 333330.0.toDouble() +public val value_3: kotlin.Double = 0.0.toDouble() +public val value_30: kotlin.Double = 4444440.0.toDouble() +public val value_31: kotlin.Double = 5.555555E7.toDouble() +public val value_33: kotlin.Double = 7.77777777E-309.toDouble() +public val value_35: kotlin.Double = 9.9999999999E-310.toDouble() +public val value_37: kotlin.Double = 0.0.toDouble() +public val value_38: kotlin.Double = 0.0.toDouble() +public val value_39: kotlin.Double = 0.0.toDouble() +public val value_4: kotlin.Double = 0.0.toDouble() +public val value_5: kotlin.Double = 0.0.toDouble() +public val value_6: kotlin.Double = 0.0.toDouble() +public val value_7: kotlin.Double = 0.0.toDouble() +public val value_8: kotlin.Double = 0.0.toDouble() +public val value_9: kotlin.Double = 0.0.toDouble() diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.3.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.3.kt new file mode 100644 index 00000000000..76170b0a78f --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.3.kt @@ -0,0 +1,29 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [1] The whole-number part and the exponent part may be omitted. + * NUMBER: 3 + * DESCRIPTION: Real literals separeted by comments with omitted a whole-number part. + */ + +// TESTCASE NUMBER: 1 +val value_1 = /**/.99901 + +// TESTCASE NUMBER: 2 +val value_2 = /** some doc */.1f + +// TESTCASE NUMBER: 3 +val value_3 = /** some doc *//**/.1 + +// TESTCASE NUMBER: 4 +val value_4 = /** some /** some doc */ doc */.1e1 + +// TESTCASE NUMBER: 5 +val value_5 = /**/ +.1F + +// TESTCASE NUMBER: 6 +val value_6 = //0 +.0 diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.3.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.3.txt new file mode 100644 index 00000000000..9f2964f0317 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.3.txt @@ -0,0 +1,8 @@ +package + +public val value_1: kotlin.Double = 0.99901.toDouble() +public val value_2: kotlin.Float = 0.1.toFloat() +public val value_3: kotlin.Double = 0.1.toDouble() +public val value_4: kotlin.Double = 1.0.toDouble() +public val value_5: kotlin.Float = 0.1.toFloat() +public val value_6: kotlin.Double = 0.0.toDouble() diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.4.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.4.kt new file mode 100644 index 00000000000..df1514ffe5f --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.4.kt @@ -0,0 +1,78 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [1] The whole-number part and the exponent part may be omitted. + * NUMBER: 4 + * DESCRIPTION: Real literals suffixed by f/F (float suffix) with omitted a whole-number part. + */ + +// TESTCASE NUMBER: 1 +val value_1 = .0F + +// TESTCASE NUMBER: 2 +val value_2 = .00F + +// TESTCASE NUMBER: 3 +val value_3 = .000F + +// TESTCASE NUMBER: 4 +val value_4 = .0000f + +// TESTCASE NUMBER: 5 +val value_5 = .1234567890f + +// TESTCASE NUMBER: 6 +val value_6 = .23456789f + +// TESTCASE NUMBER: 7 +val value_7 = .345678F + +// TESTCASE NUMBER: 8 +val value_8 = .4567f + +// TESTCASE NUMBER: 9 +val value_9 = .56F + +// TESTCASE NUMBER: 10 +val value_10 = .65F + +// TESTCASE NUMBER: 11 +val value_11 = .7654f + +// TESTCASE NUMBER: 12 +val value_12 = .876543f + +// TESTCASE NUMBER: 13 +val value_13 = .98765432F + +// TESTCASE NUMBER: 14 +val value_14 = .0987654321f + +// TESTCASE NUMBER: 15 +val value_15 = .1111f + +// TESTCASE NUMBER: 16 +val value_16 = .22222f + +// TESTCASE NUMBER: 17 +val value_17 = .33333F + +// TESTCASE NUMBER: 18 +val value_18 = .444444F + +// TESTCASE NUMBER: 19 +val value_19 = .5555555F + +// TESTCASE NUMBER: 20 +val value_20 = .66666666F + +// TESTCASE NUMBER: 21 +val value_21 = .777777777F + +// TESTCASE NUMBER: 22 +val value_22 = .8888888888f + +// TESTCASE NUMBER: 23 +val value_23 = .99999999999f diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.4.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.4.txt new file mode 100644 index 00000000000..27fa57242f5 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.4.txt @@ -0,0 +1,25 @@ +package + +public val value_1: kotlin.Float = 0.0.toFloat() +public val value_10: kotlin.Float = 0.65.toFloat() +public val value_11: kotlin.Float = 0.7654.toFloat() +public val value_12: kotlin.Float = 0.876543.toFloat() +public val value_13: kotlin.Float = 0.9876543.toFloat() +public val value_14: kotlin.Float = 0.09876543.toFloat() +public val value_15: kotlin.Float = 0.1111.toFloat() +public val value_16: kotlin.Float = 0.22222.toFloat() +public val value_17: kotlin.Float = 0.33333.toFloat() +public val value_18: kotlin.Float = 0.444444.toFloat() +public val value_19: kotlin.Float = 0.5555555.toFloat() +public val value_2: kotlin.Float = 0.0.toFloat() +public val value_20: kotlin.Float = 0.6666667.toFloat() +public val value_21: kotlin.Float = 0.7777778.toFloat() +public val value_22: kotlin.Float = 0.8888889.toFloat() +public val value_23: kotlin.Float = 1.0.toFloat() +public val value_3: kotlin.Float = 0.0.toFloat() +public val value_4: kotlin.Float = 0.0.toFloat() +public val value_5: kotlin.Float = 0.12345679.toFloat() +public val value_6: kotlin.Float = 0.2345679.toFloat() +public val value_7: kotlin.Float = 0.345678.toFloat() +public val value_8: kotlin.Float = 0.4567.toFloat() +public val value_9: kotlin.Float = 0.56.toFloat() diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.5.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.5.kt new file mode 100644 index 00000000000..4f8b220e852 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.5.kt @@ -0,0 +1,87 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [1] The whole-number part and the exponent part may be omitted. + * NUMBER: 5 + * DESCRIPTION: Real literals suffixed by f/F (float suffix) with omitted a whole-number part and an exponent mark. + */ + +// TESTCASE NUMBER: 1 +val value_1 = .0e0f + +// TESTCASE NUMBER: 2 +val value_2 = .0e-00F + +// TESTCASE NUMBER: 3 +val value_3 = .0E000F + +// TESTCASE NUMBER: 4 +val value_4 = .0E+0000f + +// TESTCASE NUMBER: 5 +val value_5 = .0e+0f + +// TESTCASE NUMBER: 6 +val value_6 = .00e00f + +// TESTCASE NUMBER: 7 +val value_7 = .000E-000F + +// TESTCASE NUMBER: 8 +val value_8 = .0E+1F + +// TESTCASE NUMBER: 9 +val value_9 = .00e22F + +// TESTCASE NUMBER: 10 +val value_10 = .345678e00000000001F + +// TESTCASE NUMBER: 11 +val value_11 = .56e-0f + +// TESTCASE NUMBER: 12 +val value_12 = .65e000000000000F + +// TESTCASE NUMBER: 13 +val value_13 = .7654E+010f + +// TESTCASE NUMBER: 14 +val value_14 = .876543E1f + +// TESTCASE NUMBER: 15 +val value_15 = .98765432e-2f + +// TESTCASE NUMBER: 16 +val value_16 = .0987654321E-3f + +// TESTCASE NUMBER: 17 +val value_17 = .1111e4f + +// TESTCASE NUMBER: 18 +val value_18 = .22222E-5F + +// TESTCASE NUMBER: 19 +val value_19 = .33333e+6F + +// TESTCASE NUMBER: 20 +val value_20 = .444444E7F + +// TESTCASE NUMBER: 21 +val value_21 = .5555555e8f + +// TESTCASE NUMBER: 22 +val value_22 = .777777777E-308f + +// TESTCASE NUMBER: 23 +val value_23 = .99999999999e-309F + +// TESTCASE NUMBER: 24 +val value_24 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f + +// TESTCASE NUMBER: 25 +val value_25 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F + +// TESTCASE NUMBER: 26 +val value_26 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.5.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.5.txt new file mode 100644 index 00000000000..20ce806e709 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.5.txt @@ -0,0 +1,28 @@ +package + +public val value_1: kotlin.Float = 0.0.toFloat() +public val value_10: kotlin.Float = 3.45678.toFloat() +public val value_11: kotlin.Float = 0.56.toFloat() +public val value_12: kotlin.Float = 0.65.toFloat() +public val value_13: kotlin.Float = 7.6540001E9.toFloat() +public val value_14: kotlin.Float = 8.76543.toFloat() +public val value_15: kotlin.Float = 0.009876544.toFloat() +public val value_16: kotlin.Float = 9.8765435E-5.toFloat() +public val value_17: kotlin.Float = 1111.0.toFloat() +public val value_18: kotlin.Float = 2.2222E-6.toFloat() +public val value_19: kotlin.Float = 333330.0.toFloat() +public val value_2: kotlin.Float = 0.0.toFloat() +public val value_20: kotlin.Float = 4444440.0.toFloat() +public val value_21: kotlin.Float = 5.5555552E7.toFloat() +public val value_22: kotlin.Float = 0.0.toFloat() +public val value_23: kotlin.Float = 0.0.toFloat() +public val value_24: kotlin.Float = 0.0.toFloat() +public val value_25: kotlin.Float = 0.0.toFloat() +public val value_26: kotlin.Float = 0.0.toFloat() +public val value_3: kotlin.Float = 0.0.toFloat() +public val value_4: kotlin.Float = 0.0.toFloat() +public val value_5: kotlin.Float = 0.0.toFloat() +public val value_6: kotlin.Float = 0.0.toFloat() +public val value_7: kotlin.Float = 0.0.toFloat() +public val value_8: kotlin.Float = 0.0.toFloat() +public val value_9: kotlin.Float = 0.0.toFloat() diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/2.1.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/2.1.kt new file mode 100644 index 00000000000..c800bebd06a --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/2.1.kt @@ -0,0 +1,84 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [2] The fraction part may be omitted only together with the decimal point, if the whole-number part and either the exponent part or the type suffix are present. + * NUMBER: 1 + * DESCRIPTION: Simple real literals with omitted a fraction part, suffixed by f/F (float suffix). + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0F + +// TESTCASE NUMBER: 2 +val value_2 = 00F + +// TESTCASE NUMBER: 3 +val value_3 = 000f + +// TESTCASE NUMBER: 4 +val value_4 = 0000F + +// TESTCASE NUMBER: 5 +val value_5 = 00000000000000000000000000000000000000f + +// TESTCASE NUMBER: 6 +val value_6 = 1f + +// TESTCASE NUMBER: 7 +val value_7 = 22f + +// TESTCASE NUMBER: 8 +val value_8 = 333F + +// TESTCASE NUMBER: 9 +val value_9 = 4444f + +// TESTCASE NUMBER: 10 +val value_10 = 55555F + +// TESTCASE NUMBER: 11 +val value_11 = 666666f + +// TESTCASE NUMBER: 12 +val value_12 = 7777777f + +// TESTCASE NUMBER: 13 +val value_13 = 88888888F + +// TESTCASE NUMBER: 14 +val value_14 = 999999999F + +// TESTCASE NUMBER: 15 +val value_15 = 123456789f + +// TESTCASE NUMBER: 16 +val value_16 = 2345678F + +// TESTCASE NUMBER: 17 +val value_17 = 34567F + +// TESTCASE NUMBER: 18 +val value_18 = 456F + +// TESTCASE NUMBER: 19 +val value_19 = 5f + +// TESTCASE NUMBER: 20 +val value_20 = 654F + +// TESTCASE NUMBER: 21 +val value_21 = 76543F + +// TESTCASE NUMBER: 22 +val value_22 = 8765432f + +// TESTCASE NUMBER: 23 +val value_23 = 987654321F + +// TESTCASE NUMBER: 24 +val value_24 = 888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111F + +// TESTCASE NUMBER: 25 +val value_25 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/2.1.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/2.1.txt new file mode 100644 index 00000000000..7666b271db7 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/2.1.txt @@ -0,0 +1,27 @@ +package + +public val value_1: kotlin.Float = 0.0.toFloat() +public val value_10: kotlin.Float = 55555.0.toFloat() +public val value_11: kotlin.Float = 666666.0.toFloat() +public val value_12: kotlin.Float = 7777777.0.toFloat() +public val value_13: kotlin.Float = 8.8888888E7.toFloat() +public val value_14: kotlin.Float = 1.0E9.toFloat() +public val value_15: kotlin.Float = 1.23456792E8.toFloat() +public val value_16: kotlin.Float = 2345678.0.toFloat() +public val value_17: kotlin.Float = 34567.0.toFloat() +public val value_18: kotlin.Float = 456.0.toFloat() +public val value_19: kotlin.Float = 5.0.toFloat() +public val value_2: kotlin.Float = 0.0.toFloat() +public val value_20: kotlin.Float = 654.0.toFloat() +public val value_21: kotlin.Float = 76543.0.toFloat() +public val value_22: kotlin.Float = 8765432.0.toFloat() +public val value_23: kotlin.Float = 9.8765434E8.toFloat() +public val value_24: kotlin.Float = Infinity.toFloat() +public val value_25: kotlin.Float = 0.0.toFloat() +public val value_3: kotlin.Float = 0.0.toFloat() +public val value_4: kotlin.Float = 0.0.toFloat() +public val value_5: kotlin.Float = 0.0.toFloat() +public val value_6: kotlin.Float = 1.0.toFloat() +public val value_7: kotlin.Float = 22.0.toFloat() +public val value_8: kotlin.Float = 333.0.toFloat() +public val value_9: kotlin.Float = 4444.0.toFloat() diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/2.2.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/2.2.kt new file mode 100644 index 00000000000..429908d7b95 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/2.2.kt @@ -0,0 +1,78 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [2] The fraction part may be omitted only together with the decimal point, if the whole-number part and either the exponent part or the type suffix are present. + * NUMBER: 2 + * DESCRIPTION: Real literals with omitted a fraction part and an exponent mark. + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0e0 + +// TESTCASE NUMBER: 2 +val value_2 = 00e00 + +// TESTCASE NUMBER: 3 +val value_3 = 000E-10 + +// TESTCASE NUMBER: 4 +val value_4 = 0000e+00000000000 + +// TESTCASE NUMBER: 5 +val value_5 = 00000000000000000000000000000000000000E1 + +// TESTCASE NUMBER: 6 +val value_6 = 1e1 + +// TESTCASE NUMBER: 7 +val value_7 = 22E-1 + +// TESTCASE NUMBER: 8 +val value_8 = 333e-00000000000 + +// TESTCASE NUMBER: 9 +val value_9 = 4444E-99999999999999999 + +// TESTCASE NUMBER: 10 +val value_10 = 55555e10 + +// TESTCASE NUMBER: 11 +val value_11 = 666666E00010 + +// TESTCASE NUMBER: 12 +val value_12 = 7777777e09090909090 + +// TESTCASE NUMBER: 13 +val value_13 = 88888888e1234567890 + +// TESTCASE NUMBER: 14 +val value_14 = 999999999E1234567890 + +// TESTCASE NUMBER: 15 +val value_15 = 123456789e987654321 + +// TESTCASE NUMBER: 16 +val value_16 = 2345678E0 + +// TESTCASE NUMBER: 17 +val value_17 = 34567E+010 + +// TESTCASE NUMBER: 18 +val value_18 = 456e-09876543210 + +// TESTCASE NUMBER: 19 +val value_19 = 5e505 + +// TESTCASE NUMBER: 20 +val value_20 = 654e5 + +// TESTCASE NUMBER: 21 +val value_21 = 76543E-91823 + +// TESTCASE NUMBER: 22 +val value_22 = 8765432e+90 + +// TESTCASE NUMBER: 23 +val value_23 = 987654321e-1 diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/2.2.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/2.2.txt new file mode 100644 index 00000000000..9086bf938a7 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/2.2.txt @@ -0,0 +1,25 @@ +package + +public val value_1: kotlin.Double = 0.0.toDouble() +public val value_10: kotlin.Double = 5.5555E14.toDouble() +public val value_11: kotlin.Double = 6.66666E15.toDouble() +public val value_12: kotlin.Double = Infinity.toDouble() +public val value_13: kotlin.Double = Infinity.toDouble() +public val value_14: kotlin.Double = Infinity.toDouble() +public val value_15: kotlin.Double = Infinity.toDouble() +public val value_16: kotlin.Double = 2345678.0.toDouble() +public val value_17: kotlin.Double = 3.4567E14.toDouble() +public val value_18: kotlin.Double = 0.0.toDouble() +public val value_19: kotlin.Double = Infinity.toDouble() +public val value_2: kotlin.Double = 0.0.toDouble() +public val value_20: kotlin.Double = 6.54E7.toDouble() +public val value_21: kotlin.Double = 0.0.toDouble() +public val value_22: kotlin.Double = 8.765432E96.toDouble() +public val value_23: kotlin.Double = 9.87654321E7.toDouble() +public val value_3: kotlin.Double = 0.0.toDouble() +public val value_4: kotlin.Double = 0.0.toDouble() +public val value_5: kotlin.Double = 0.0.toDouble() +public val value_6: kotlin.Double = 10.0.toDouble() +public val value_7: kotlin.Double = 2.2.toDouble() +public val value_8: kotlin.Double = 333.0.toDouble() +public val value_9: kotlin.Double = 0.0.toDouble() diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/2.3.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/2.3.kt new file mode 100644 index 00000000000..839e5d64386 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/2.3.kt @@ -0,0 +1,78 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [2] The fraction part may be omitted only together with the decimal point, if the whole-number part and either the exponent part or the type suffix are present. + * NUMBER: 3 + * DESCRIPTION: Real literals with omitted a fraction part and an exponent mark, suffixed by f/F (float suffix). + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0e0f + +// TESTCASE NUMBER: 2 +val value_2 = 00e00F + +// TESTCASE NUMBER: 3 +val value_3 = 000E-10f + +// TESTCASE NUMBER: 4 +val value_4 = 0000e+00000000000f + +// TESTCASE NUMBER: 5 +val value_5 = 00000000000000000000000000000000000000E1F + +// TESTCASE NUMBER: 6 +val value_6 = 1e1F + +// TESTCASE NUMBER: 7 +val value_7 = 22E-1f + +// TESTCASE NUMBER: 8 +val value_8 = 333e-00000000000F + +// TESTCASE NUMBER: 9 +val value_9 = 4444E-99999999999999999f + +// TESTCASE NUMBER: 10 +val value_10 = 55555e10f + +// TESTCASE NUMBER: 11 +val value_11 = 666666E00010F + +// TESTCASE NUMBER: 12 +val value_12 = 7777777e09090909090F + +// TESTCASE NUMBER: 13 +val value_13 = 88888888e1234567890F + +// TESTCASE NUMBER: 14 +val value_14 = 999999999E1234567890f + +// TESTCASE NUMBER: 15 +val value_15 = 123456789e987654321F + +// TESTCASE NUMBER: 16 +val value_16 = 2345678E0f + +// TESTCASE NUMBER: 17 +val value_17 = 34567E+010f + +// TESTCASE NUMBER: 18 +val value_18 = 456e-09876543210F + +// TESTCASE NUMBER: 19 +val value_19 = 5e505f + +// TESTCASE NUMBER: 20 +val value_20 = 654e5F + +// TESTCASE NUMBER: 21 +val value_21 = 76543E-91823f + +// TESTCASE NUMBER: 22 +val value_22 = 8765432e+90F + +// TESTCASE NUMBER: 23 +val value_23 = 987654321e-1f diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/2.3.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/2.3.txt new file mode 100644 index 00000000000..59e062d95f3 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/2.3.txt @@ -0,0 +1,25 @@ +package + +public val value_1: kotlin.Float = 0.0.toFloat() +public val value_10: kotlin.Float = 5.55549993E14.toFloat() +public val value_11: kotlin.Float = 6.66666E15.toFloat() +public val value_12: kotlin.Float = Infinity.toFloat() +public val value_13: kotlin.Float = Infinity.toFloat() +public val value_14: kotlin.Float = Infinity.toFloat() +public val value_15: kotlin.Float = Infinity.toFloat() +public val value_16: kotlin.Float = 2345678.0.toFloat() +public val value_17: kotlin.Float = 3.45670007E14.toFloat() +public val value_18: kotlin.Float = 0.0.toFloat() +public val value_19: kotlin.Float = Infinity.toFloat() +public val value_2: kotlin.Float = 0.0.toFloat() +public val value_20: kotlin.Float = 6.54E7.toFloat() +public val value_21: kotlin.Float = 0.0.toFloat() +public val value_22: kotlin.Float = Infinity.toFloat() +public val value_23: kotlin.Float = 9.8765432E7.toFloat() +public val value_3: kotlin.Float = 0.0.toFloat() +public val value_4: kotlin.Float = 0.0.toFloat() +public val value_5: kotlin.Float = 0.0.toFloat() +public val value_6: kotlin.Float = 10.0.toFloat() +public val value_7: kotlin.Float = 2.2.toFloat() +public val value_8: kotlin.Float = 333.0.toFloat() +public val value_9: kotlin.Float = 0.0.toFloat() diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/1.1.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/1.1.kt new file mode 100644 index 00000000000..7a9e8003559 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/1.1.kt @@ -0,0 +1,54 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 4 + * SENTENCE: [1] The digits of the whole-number part or the fraction part or the exponent may be optionally separated by underscores, but an underscore may not be placed between, before, or after these parts. + * NUMBER: 1 + * DESCRIPTION: Real literals without digits after an exponent mark and with undescores in the different pisitions. + */ + +// TESTCASE NUMBER: 1 +val value_1 = .0_0e- + +// TESTCASE NUMBER: 2 +val value_2 = 0_0___0E+ + +// TESTCASE NUMBER: 3 +val value_3 = .0_0e-F + +// TESTCASE NUMBER: 4 +val value_4 = 0__________________________0E+ + +// TESTCASE NUMBER: 5 +val value_5 = 0_00e + +// TESTCASE NUMBER: 6 +val value_6 = .0_0__0___0E + +// TESTCASE NUMBER: 7 +val value_7 = 0_1e+f + +// TESTCASE NUMBER: 8 +val value_8 = .0_0E- + +// TESTCASE NUMBER: 9 +val value_9 = 0___0__0e + +// TESTCASE NUMBER: 10 +val value_10 = 0_00_0ef + +// TESTCASE NUMBER: 11 +val value_11 = .0_5E-F + +// TESTCASE NUMBER: 12 +val value_12 = .8____8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888_____8888888888888888888e+f + +// TESTCASE NUMBER: 13 +val value_13 = 0_0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_0eF + +// TESTCASE NUMBER: 14 +val value_14 = 0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_e-f + +// TESTCASE NUMBER: 15 +val value_15 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+ diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/1.1.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/1.1.txt new file mode 100644 index 00000000000..66f3561bed4 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/1.1.txt @@ -0,0 +1,17 @@ +package + +public val value_1: kotlin.Double +public val value_10: kotlin.Double +public val value_11: kotlin.Double +public val value_12: kotlin.Double +public val value_13: kotlin.Double +public val value_14: kotlin.Double +public val value_15: kotlin.Double +public val value_2: kotlin.Double +public val value_3: kotlin.Double +public val value_4: kotlin.Double +public val value_5: kotlin.Double +public val value_6: kotlin.Double +public val value_7: kotlin.Double +public val value_8: kotlin.Double +public val value_9: kotlin.Double diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/1.2.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/1.2.kt new file mode 100644 index 00000000000..9df5061cab7 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/1.2.kt @@ -0,0 +1,54 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 4 + * SENTENCE: [1] The digits of the whole-number part or the fraction part or the exponent may be optionally separated by underscores, but an underscore may not be placed between, before, or after these parts. + * NUMBER: 2 + * DESCRIPTION: Real literals with underscores at the end. + */ + +// TESTCASE NUMBER: 1 +val value_1= .0_0e-0___ + +// TESTCASE NUMBER: 2 +val value_2 = 0_0___0E+10_ + +// TESTCASE NUMBER: 3 +val value_3 = .0_0e-0_F + +// TESTCASE NUMBER: 4 +val value_4 = 0__________________________0E+3___ + +// TESTCASE NUMBER: 5 +val value_5 = 0_00e1_ + +// TESTCASE NUMBER: 6 +val value_6 = .0_0__0___0E0_______________ + +// TESTCASE NUMBER: 7 +val value_7 = 0_1e+100_____f + +// TESTCASE NUMBER: 8 +val value_8 = .0_0E-0001___ + +// TESTCASE NUMBER: 9 +val value_9 = 0___0__0e4___ + +// TESTCASE NUMBER: 10 +val value_10 = 0_00_0e99_f + +// TESTCASE NUMBER: 11 +val value_11 = .0_5E-93_______F + +// TESTCASE NUMBER: 12 +val value_12 = .8____8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888_____8888888888888888888e+5_f + +// TESTCASE NUMBER: 13 +val value_13 = 0_0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_0e40_F + +// TESTCASE NUMBER: 14 +val value_14 = 0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_e-10_f + +// TESTCASE NUMBER: 15 +val value_15 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+75_ diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/1.2.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/1.2.txt new file mode 100644 index 00000000000..a58c3994423 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/1.2.txt @@ -0,0 +1,17 @@ +package + +public val value_1: kotlin.Double = 0.0.toDouble() +public val value_10: kotlin.Float = 0.0.toFloat() +public val value_11: kotlin.Float = 0.0.toFloat() +public val value_12: kotlin.Float = 88888.89.toFloat() +public val value_13: kotlin.Float = 0.0.toFloat() +public val value_14: kotlin.Float = 0.0.toFloat() +public val value_15: kotlin.Double = 0.0.toDouble() +public val value_2: kotlin.Double = 0.0.toDouble() +public val value_3: kotlin.Float = 0.0.toFloat() +public val value_4: kotlin.Double = 0.0.toDouble() +public val value_5: kotlin.Double = 0.0.toDouble() +public val value_6: kotlin.Double = 0.0.toDouble() +public val value_7: kotlin.Float = Infinity.toFloat() +public val value_8: kotlin.Double = 0.0.toDouble() +public val value_9: kotlin.Double = 0.0.toDouble() diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/2.1.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/2.1.kt new file mode 100644 index 00000000000..a03af350224 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/2.1.kt @@ -0,0 +1,51 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 4 + * SENTENCE: [2] It also may not be placed before or after the exponent mark symbol. + * NUMBER: 1 + * DESCRIPTION: Real literals with underscores before an exponent mark. + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0_E0 + +// TESTCASE NUMBER: 2 +val value_2 = 1.1_E2 + +// TESTCASE NUMBER: 3 +val value_3 = .0__0_e-0___0 + +// TESTCASE NUMBER: 4 +val value_4 = 0__0.0_____e0f + +// TESTCASE NUMBER: 5 +val value_5 = 9_______9______9_____9____9___9__9_9.0___E-1 + +// TESTCASE NUMBER: 6 +val value_6 = 0_0_0_0_0_0_0_0_0_0.12345678___e+90F + +// TESTCASE NUMBER: 7 +val value_7 = 1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9_e-0 + +// TESTCASE NUMBER: 8 +val value_8 = 456.5__e0_6 + +// TESTCASE NUMBER: 9 +val value_9 = 5.6_0_E+05F + +// TESTCASE NUMBER: 10 +val value_10 = 6_54.76_5__e-4 + +// TESTCASE NUMBER: 11 +val value_11 = 9_____________87654321.0__e-9_8765432_____________1F + +// TESTCASE NUMBER: 12 +val value_12 = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000_e000000000000000000000000000000000000000000000000000000000000000_0F + +// TESTCASE NUMBER: 13 +val value_13 = 0_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0____E-0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + +// TESTCASE NUMBER: 14 +val value_14 = 9999999999999999999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_333333333333333333333333333333333333333_e3_3f diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/2.1.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/2.1.txt new file mode 100644 index 00000000000..96b767922c6 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/2.1.txt @@ -0,0 +1,16 @@ +package + +public val value_1: kotlin.Double = 0.0.toDouble() +public val value_10: kotlin.Double = 0.0654765.toDouble() +public val value_11: kotlin.Float = 0.0.toFloat() +public val value_12: kotlin.Float = 0.0.toFloat() +public val value_13: kotlin.Double = 0.0.toDouble() +public val value_14: kotlin.Float = Infinity.toFloat() +public val value_2: kotlin.Double = 110.0.toDouble() +public val value_3: kotlin.Double = 0.0.toDouble() +public val value_4: kotlin.Float = 0.0.toFloat() +public val value_5: kotlin.Double = 9999999.9.toDouble() +public val value_6: kotlin.Float = Infinity.toFloat() +public val value_7: kotlin.Double = 1.234567892345679E8.toDouble() +public val value_8: kotlin.Double = 4.565E8.toDouble() +public val value_9: kotlin.Float = 560000.0.toFloat() diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/2.2.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/2.2.kt new file mode 100644 index 00000000000..30ac508143a --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/2.2.kt @@ -0,0 +1,96 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 4 + * SENTENCE: [2] It also may not be placed before or after the exponent mark symbol. + * NUMBER: 2 + * DESCRIPTION: Real literals with underscores after an exponent mark. + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0e___0 + +// TESTCASE NUMBER: 2 +val value_2 = .0e_0 + +// TESTCASE NUMBER: 3 +val value_3 = 0.1e__2 + +// TESTCASE NUMBER: 4 +val value_4 = 2.1e_2 + +// TESTCASE NUMBER: 5 +val value_5 = 1E-_2F + +// TESTCASE NUMBER: 6 +val value_6 = 3e+_0f + +// TESTCASE NUMBER: 7 +val value_7 = 5E_-0 + +// TESTCASE NUMBER: 8 +val value_8 = 5e_-0F + +// TESTCASE NUMBER: 9 +val value_9 = 5e_00000000 + +// TESTCASE NUMBER: 10 +val value_10 = 0.0_0e_1_0f + +// TESTCASE NUMBER: 11 +val value_11 = 0.0_0E____-0__0_0F + +// TESTCASE NUMBER: 12 +val value_12 = .0_0E__0_0 + +// TESTCASE NUMBER: 13 +val value_13 = 00_______________00.0_0e+__0_0 + +// TESTCASE NUMBER: 14 +val value_14 = .0e-__1_0F + +// TESTCASE NUMBER: 15 +val value_15 = 33__3.0e_10__0 + +// TESTCASE NUMBER: 16 +val value_16 = .0E_0______00F + +// TESTCASE NUMBER: 17 +val value_17 = 666_666.0__________________________________________________1E+_2___________________________________________________________________0F + +// TESTCASE NUMBER: 18 +val value_18 = 8888888_8.000e_____0f + +// TESTCASE NUMBER: 19 +val value_19 = 9_______9______9_____9____9___9__9_9.0E__-1 + +// TESTCASE NUMBER: 20 +val value_20 = 0_0_0_0_0_0_0_0_0_0.12345678e+__90F + +// TESTCASE NUMBER: 21 +val value_21 = 1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9e_-_0 + +// TESTCASE NUMBER: 22 +val value_22 = .345______________6e_____7_______8f + +// TESTCASE NUMBER: 23 +val value_23 = .45_6E_7f + +// TESTCASE NUMBER: 24 +val value_24 = 6_54.765e-_4 + +// TESTCASE NUMBER: 25 +val value_25 = 7_6543.8E____7654_3 + +// TESTCASE NUMBER: 26 +val value_26 = .9E+_______0_____________8765432f + +// TESTCASE NUMBER: 27 +val value_27 = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000e_000000000000000000000000000000000000000000000000000000000000000_0F + +// TESTCASE NUMBER: 28 +val value_28 = 0_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0E-_0___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + +// TESTCASE NUMBER: 29 +val value_29 = 9999999999999999999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_333333333333333333333333333333333333333e___3_3f diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/2.2.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/2.2.txt new file mode 100644 index 00000000000..b2692d2a38c --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/2.2.txt @@ -0,0 +1,31 @@ +package + +public val value_1: kotlin.Double = 0.0.toDouble() +public val value_10: kotlin.Float = 0.0.toFloat() +public val value_11: kotlin.Double +public val value_12: kotlin.Double = 0.0.toDouble() +public val value_13: kotlin.Double = 0.0.toDouble() +public val value_14: kotlin.Float = 0.0.toFloat() +public val value_15: kotlin.Double = 3.33E102.toDouble() +public val value_16: kotlin.Float = 0.0.toFloat() +public val value_17: kotlin.Float = 6.66666E25.toFloat() +public val value_18: kotlin.Float = 8.8888888E7.toFloat() +public val value_19: kotlin.Double +public val value_2: kotlin.Double = 0.0.toDouble() +public val value_20: kotlin.Float = Infinity.toFloat() +public val value_21: [ERROR : Type for 1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9e_-_0] +public val value_22: kotlin.Float = Infinity.toFloat() +public val value_23: kotlin.Float = 4560000.0.toFloat() +public val value_24: kotlin.Double = 0.0654765.toDouble() +public val value_25: kotlin.Double = Infinity.toDouble() +public val value_26: kotlin.Float = Infinity.toFloat() +public val value_27: kotlin.Float = 0.0.toFloat() +public val value_28: kotlin.Double = 0.0.toDouble() +public val value_29: kotlin.Float = Infinity.toFloat() +public val value_3: kotlin.Double = 10.0.toDouble() +public val value_4: kotlin.Double = 210.0.toDouble() +public val value_5: kotlin.Float = 0.01.toFloat() +public val value_6: kotlin.Float = 3.0.toFloat() +public val value_7: kotlin.Double +public val value_8: kotlin.Double +public val value_9: kotlin.Double = 5.0.toDouble() diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/2.3.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/2.3.kt new file mode 100644 index 00000000000..b2ebf30b068 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/2.3.kt @@ -0,0 +1,87 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 4 + * SENTENCE: [2] It also may not be placed before or after the exponent mark symbol. + * NUMBER: 3 + * DESCRIPTION: Real literals with underscores around an exponent mark. + */ + +// TESTCASE NUMBER: 1 +val value_1 = .0__e_0 + +// TESTCASE NUMBER: 2 +val value_2 = 2.1_e_2 + +// TESTCASE NUMBER: 3 +val value_3 = 1_E-_2F + +// TESTCASE NUMBER: 4 +val value_4 = 3_e+_0f + +// TESTCASE NUMBER: 5 +val value_5 = 5_E_-0 + +// TESTCASE NUMBER: 6 +val value_6 = 5_e_-0F + +// TESTCASE NUMBER: 7 +val value_7 = 5_e_00000000 + +// TESTCASE NUMBER: 8 +val value_8 = 0.0_0___E____-0__0_0F + +// TESTCASE NUMBER: 9 +val value_9 = 0__0.0_____e___0f + +// TESTCASE NUMBER: 10 +val value_10 = .0_0_E__0_0 + +// TESTCASE NUMBER: 11 +val value_11 = 00_______________00.0_0__e+__0_0 + +// TESTCASE NUMBER: 12 +val value_12 = 33__3.0_e_10__0 + +// TESTCASE NUMBER: 13 +val value_13 = .0_E_0______00F + +// TESTCASE NUMBER: 14 +val value_14 = 5_________555_________5.0____e____-____9 + +// TESTCASE NUMBER: 15 +val value_15 = 666_666.0__________________________________________________1_E+_2___________________________________________________________________0F + +// TESTCASE NUMBER: 16 +val value_16 = 9_______9______9_____9____9___9__9_9.0___E__-1 + +// TESTCASE NUMBER: 17 +val value_17 = 0_0_0_0_0_0_0_0_0_0.12345678___e+__90F + +// TESTCASE NUMBER: 18 +val value_18 = 1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9_e_-_0 + +// TESTCASE NUMBER: 19 +val value_19 = .45_6_E_7f + +// TESTCASE NUMBER: 20 +val value_20 = 456.5__e_0_6 + +// TESTCASE NUMBER: 21 +val value_21 = 6_54.76_5_e-_4 + +// TESTCASE NUMBER: 22 +val value_22 = 7_6543.8____E____7654_3 + +// TESTCASE NUMBER: 23 +val value_23 = 9_____________87654321.0__e__-9_8765432_____________1F + +// TESTCASE NUMBER: 24 +val value_24 = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000_e_000000000000000000000000000000000000000000000000000000000000000_0F + +// TESTCASE NUMBER: 25 +val value_25 = 0_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0_E-_0___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + +// TESTCASE NUMBER: 26 +val value_26 = 9999999999999999999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_333333333333333333333333333333333333333_e_3_3f diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/2.3.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/2.3.txt new file mode 100644 index 00000000000..4f87db23bb7 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/2.3.txt @@ -0,0 +1,28 @@ +package + +public val value_1: kotlin.Double = 0.0.toDouble() +public val value_10: kotlin.Double = 0.0.toDouble() +public val value_11: kotlin.Double = 0.0.toDouble() +public val value_12: kotlin.Double = 3.33E102.toDouble() +public val value_13: kotlin.Float = 0.0.toFloat() +public val value_14: [ERROR : Type for 5_________555_________5.0____e____-____9] +public val value_15: kotlin.Float = 6.66666E25.toFloat() +public val value_16: kotlin.Double +public val value_17: kotlin.Float = Infinity.toFloat() +public val value_18: [ERROR : Type for 1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9_e_-_0] +public val value_19: kotlin.Float = 4560000.0.toFloat() +public val value_2: kotlin.Double = 210.0.toDouble() +public val value_20: kotlin.Double = 4.565E8.toDouble() +public val value_21: kotlin.Double = 0.0654765.toDouble() +public val value_22: kotlin.Double = Infinity.toDouble() +public val value_23: kotlin.Double +public val value_24: kotlin.Float = 0.0.toFloat() +public val value_25: kotlin.Double = 0.0.toDouble() +public val value_26: kotlin.Float = Infinity.toFloat() +public val value_3: kotlin.Float = 0.01.toFloat() +public val value_4: kotlin.Float = 3.0.toFloat() +public val value_5: kotlin.Double +public val value_6: kotlin.Double +public val value_7: kotlin.Double = 5.0.toDouble() +public val value_8: kotlin.Double +public val value_9: kotlin.Float = 0.0.toFloat() diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.1.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.1.kt new file mode 100644 index 00000000000..a1f2ef005b1 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.1.kt @@ -0,0 +1,90 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 4 + * SENTENCE: [1] The digits of the whole-number part or the fraction part or the exponent may be optionally separated by underscores, but an underscore may not be placed between, before, or after these parts. + * NUMBER: 1 + * DESCRIPTION: Real literals with underscores in a whole-number part and a fraction part. + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0.0_0 + +// TESTCASE NUMBER: 2 +val value_2 = 0.0__0___0 + +// TESTCASE NUMBER: 3 +val value_3 = 0.0_0__0_0 + +// TESTCASE NUMBER: 4 +val value_4 = 0__0.0 + +// TESTCASE NUMBER: 5 +val value_5 = 0_0_0.0______0 + +// TESTCASE NUMBER: 6 +val value_6 = 00_______________00.0_0_0 + +// TESTCASE NUMBER: 7 +val value_7 = 2_2.0_0 + +// TESTCASE NUMBER: 8 +val value_8 = 33__3.00__0 + +// TESTCASE NUMBER: 9 +val value_9 = 4_44____4.00______00 + +// TESTCASE NUMBER: 10 +val value_10 = 5_________555_________5.0 + +// TESTCASE NUMBER: 11 +val value_11 = 666_666.0_____________________________________________________________________________________________________________________0 + +// TESTCASE NUMBER: 12 +val value_12 = 7777777.0_0_0 + +// TESTCASE NUMBER: 13 +val value_13 = 8888888_8.0000 + +// TESTCASE NUMBER: 14 +val value_14 = 9_______9______9_____9____9___9__9_9.0 + +// TESTCASE NUMBER: 15 +val value_15 = 0_0_0_0_0_0_0_0_0_0.1234567890 + +// TESTCASE NUMBER: 16 +val value_16 = 1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9 + +// TESTCASE NUMBER: 17 +val value_17 = 234_5_678.345______________678 + +// TESTCASE NUMBER: 18 +val value_18 = 3_456_7.4567 + +// TESTCASE NUMBER: 19 +val value_19 = 456.5_6 + +// TESTCASE NUMBER: 20 +val value_20 = 5.6_5 + +// TESTCASE NUMBER: 21 +val value_21 = 6_54.7654 + +// TESTCASE NUMBER: 22 +val value_22 = 7_6543.87654_3 + +// TESTCASE NUMBER: 23 +val value_23 = 876543_____________2.9_____________8765432 + +// TESTCASE NUMBER: 24 +val value_24 = 9_____________87654321.098765432_____________1 + +// TESTCASE NUMBER: 25 +val value_25 = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_0 + +// TESTCASE NUMBER: 26 +val value_26 = 0_000000000000000000000000000000000000000000000000000000000000000000000000_000000000000000000000000000000000000000000000000000000000000000000000000_000000000000000000000000000000000000000000000000000000000000000000000000_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 + +// TESTCASE NUMBER: 27 +val value_27 = 9999999999999999999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________999999999999999999999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________999999999999999999999999999999999999999999999_______________99999999999999999999999999999_______________99999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_33333333333333333333333333333333333333333 diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.1.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.1.txt new file mode 100644 index 00000000000..ab4db04767d --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.1.txt @@ -0,0 +1,29 @@ +package + +public val value_1: kotlin.Double = 0.0.toDouble() +public val value_10: kotlin.Double = 55555.0.toDouble() +public val value_11: kotlin.Double = 666666.0.toDouble() +public val value_12: kotlin.Double = 7777777.0.toDouble() +public val value_13: kotlin.Double = 8.8888888E7.toDouble() +public val value_14: kotlin.Double = 9.9999999E7.toDouble() +public val value_15: kotlin.Double = 0.123456789.toDouble() +public val value_16: kotlin.Double = 1.234567892345679E8.toDouble() +public val value_17: kotlin.Double = 2345678.345678.toDouble() +public val value_18: kotlin.Double = 34567.4567.toDouble() +public val value_19: kotlin.Double = 456.56.toDouble() +public val value_2: kotlin.Double = 0.0.toDouble() +public val value_20: kotlin.Double = 5.65.toDouble() +public val value_21: kotlin.Double = 654.7654.toDouble() +public val value_22: kotlin.Double = 76543.876543.toDouble() +public val value_23: kotlin.Double = 8765432.98765432.toDouble() +public val value_24: kotlin.Double = 9.876543210987654E8.toDouble() +public val value_25: kotlin.Double = 0.0.toDouble() +public val value_26: kotlin.Double = 0.0.toDouble() +public val value_27: kotlin.Double = Infinity.toDouble() +public val value_3: kotlin.Double = 0.0.toDouble() +public val value_4: kotlin.Double = 0.0.toDouble() +public val value_5: kotlin.Double = 0.0.toDouble() +public val value_6: kotlin.Double = 0.0.toDouble() +public val value_7: kotlin.Double = 22.0.toDouble() +public val value_8: kotlin.Double = 333.0.toDouble() +public val value_9: kotlin.Double = 4444.0.toDouble() diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.2.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.2.kt new file mode 100644 index 00000000000..d2288a56113 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.2.kt @@ -0,0 +1,90 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 4 + * SENTENCE: [1] The digits of the whole-number part or the fraction part or the exponent may be optionally separated by underscores, but an underscore may not be placed between, before, or after these parts. + * NUMBER: 2 + * DESCRIPTION: Real literals suffixed by f/F (float suffix) with underscores in a whole-number part and a fraction part. + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0.0_0f + +// TESTCASE NUMBER: 2 +val value_2 = 0.0__0___0F + +// TESTCASE NUMBER: 3 +val value_3 = 0.0_0__0_0f + +// TESTCASE NUMBER: 4 +val value_4 = 0__0.0F + +// TESTCASE NUMBER: 5 +val value_5 = 0_0_0.0______0f + +// TESTCASE NUMBER: 6 +val value_6 = 00_______________00.0_0_0F + +// TESTCASE NUMBER: 7 +val value_7 = 2_2.0_0F + +// TESTCASE NUMBER: 8 +val value_8 = 33__3.00__0F + +// TESTCASE NUMBER: 9 +val value_9 = 4_44____4.00______00f + +// TESTCASE NUMBER: 10 +val value_10 = 5_________555_________5.0F + +// TESTCASE NUMBER: 11 +val value_11 = 666_666.0_____________________________________________________________________________________________________________________0F + +// TESTCASE NUMBER: 12 +val value_12 = 7777777.0_0_0f + +// TESTCASE NUMBER: 13 +val value_13 = 8888888_8.0000F + +// TESTCASE NUMBER: 14 +val value_14 = 9_______9______9_____9____9___9__9_9.0f + +// TESTCASE NUMBER: 15 +val value_15 = 0_0_0_0_0_0_0_0_0_0.1234567890f + +// TESTCASE NUMBER: 16 +val value_16 = 1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9F + +// TESTCASE NUMBER: 17 +val value_17 = 234_5_678.345______________678F + +// TESTCASE NUMBER: 18 +val value_18 = 3_456_7.4567f + +// TESTCASE NUMBER: 19 +val value_19 = 456.5_6F + +// TESTCASE NUMBER: 20 +val value_20 = 5.6_5f + +// TESTCASE NUMBER: 21 +val value_21 = 6_54.7654F + +// TESTCASE NUMBER: 22 +val value_22 = 7_6543.87654_3F + +// TESTCASE NUMBER: 23 +val value_23 = 876543_____________2.9_____________8765432f + +// TESTCASE NUMBER: 24 +val value_24 = 9_____________87654321.098765432_____________1F + +// TESTCASE NUMBER: 25 +val value_25 = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_0F + +// TESTCASE NUMBER: 26 +val value_26 = 0_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0___0000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f + +// TESTCASE NUMBER: 27 +val value_27 = 9999999999999999999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_33333333333333333333333333333333333333333f diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.2.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.2.txt new file mode 100644 index 00000000000..7b0005d7634 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.2.txt @@ -0,0 +1,29 @@ +package + +public val value_1: kotlin.Float = 0.0.toFloat() +public val value_10: kotlin.Float = 55555.0.toFloat() +public val value_11: kotlin.Float = 666666.0.toFloat() +public val value_12: kotlin.Float = 7777777.0.toFloat() +public val value_13: kotlin.Float = 8.8888888E7.toFloat() +public val value_14: kotlin.Float = 1.0E8.toFloat() +public val value_15: kotlin.Float = 0.12345679.toFloat() +public val value_16: kotlin.Float = 1.23456792E8.toFloat() +public val value_17: kotlin.Float = 2345678.2.toFloat() +public val value_18: kotlin.Float = 34567.457.toFloat() +public val value_19: kotlin.Float = 456.56.toFloat() +public val value_2: kotlin.Float = 0.0.toFloat() +public val value_20: kotlin.Float = 5.65.toFloat() +public val value_21: kotlin.Float = 654.7654.toFloat() +public val value_22: kotlin.Float = 76543.875.toFloat() +public val value_23: kotlin.Float = 8765433.0.toFloat() +public val value_24: kotlin.Float = 9.8765434E8.toFloat() +public val value_25: kotlin.Float = 0.0.toFloat() +public val value_26: kotlin.Float = 0.0.toFloat() +public val value_27: kotlin.Float = Infinity.toFloat() +public val value_3: kotlin.Float = 0.0.toFloat() +public val value_4: kotlin.Float = 0.0.toFloat() +public val value_5: kotlin.Float = 0.0.toFloat() +public val value_6: kotlin.Float = 0.0.toFloat() +public val value_7: kotlin.Float = 22.0.toFloat() +public val value_8: kotlin.Float = 333.0.toFloat() +public val value_9: kotlin.Float = 4444.0.toFloat() diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.3.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.3.kt new file mode 100644 index 00000000000..922d0937015 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.3.kt @@ -0,0 +1,90 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 4 + * SENTENCE: [1] The digits of the whole-number part or the fraction part or the exponent may be optionally separated by underscores, but an underscore may not be placed between, before, or after these parts. + * NUMBER: 3 + * DESCRIPTION: Real literals suffixed by f/F (float suffix) with an exponent mark and underscores in a whole-number part, a fraction part and an exponent part. + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0.0_0e1_0f + +// TESTCASE NUMBER: 2 +val value_2 = 0.0__0e-0___0 + +// TESTCASE NUMBER: 3 +val value_3 = 0.0_0E-0__0_0F + +// TESTCASE NUMBER: 4 +val value_4 = 0__0.0e0f + +// TESTCASE NUMBER: 5 +val value_5 = 0_0_0.0_0E0_0 + +// TESTCASE NUMBER: 6 +val value_6 = 00_______________00.0_0e+0_0 + +// TESTCASE NUMBER: 7 +val value_7 = 2_2.0e1_0F + +// TESTCASE NUMBER: 8 +val value_8 = 33__3.0e10__0 + +// TESTCASE NUMBER: 9 +val value_9 = 4_44____4.0E0______00F + +// TESTCASE NUMBER: 10 +val value_10 = 5_________555_________5.0e-9 + +// TESTCASE NUMBER: 11 +val value_11 = 666_666.0__________________________________________________1E+2___________________________________________________________________0F + +// TESTCASE NUMBER: 12 +val value_12 = 7777777.0_0e3_0 + +// TESTCASE NUMBER: 13 +val value_13 = 8888888_8.000e0f + +// TESTCASE NUMBER: 14 +val value_14 = 9_______9______9_____9____9___9__9_9.0E-1 + +// TESTCASE NUMBER: 15 +val value_15 = 0_0_0_0_0_0_0_0_0_0.12345678e+90F + +// TESTCASE NUMBER: 16 +val value_16 = 1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9e-0 + +// TESTCASE NUMBER: 17 +val value_17 = 234_5_678.345______________6e7_______8f + +// TESTCASE NUMBER: 18 +val value_18 = 3_456_7.45_6E7f + +// TESTCASE NUMBER: 19 +val value_19 = 456.5e0_6 + +// TESTCASE NUMBER: 20 +val value_20 = 5.6_0E+05F + +// TESTCASE NUMBER: 21 +val value_21 = 6_54.76_5e-4 + +// TESTCASE NUMBER: 22 +val value_22 = 7_6543.8E7654_3 + +// TESTCASE NUMBER: 23 +val value_23 = 876543_____________2.9E+0_____________8765432f + +// TESTCASE NUMBER: 24 +val value_24 = 9_____________87654321.0e-9_8765432_____________1F + +// TESTCASE NUMBER: 25 +val value_25 = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000_0F + +// TESTCASE NUMBER: 26 +val value_26 = 0_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0E-0___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + +// TESTCASE NUMBER: 27 +val value_27 = 9999999999999999999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_333333333333333333333333333333333333333e3_3f diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.3.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.3.txt new file mode 100644 index 00000000000..66a5c6f8d88 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.3.txt @@ -0,0 +1,29 @@ +package + +public val value_1: kotlin.Float = 0.0.toFloat() +public val value_10: kotlin.Double = 5.5555E-5.toDouble() +public val value_11: kotlin.Float = 6.66666E25.toFloat() +public val value_12: kotlin.Double = 7.777777E36.toDouble() +public val value_13: kotlin.Float = 8.8888888E7.toFloat() +public val value_14: kotlin.Double = 9999999.9.toDouble() +public val value_15: kotlin.Float = Infinity.toFloat() +public val value_16: kotlin.Double = 1.234567892345679E8.toDouble() +public val value_17: kotlin.Float = Infinity.toFloat() +public val value_18: kotlin.Float = 3.45674547E11.toFloat() +public val value_19: kotlin.Double = 4.565E8.toDouble() +public val value_2: kotlin.Double = 0.0.toDouble() +public val value_20: kotlin.Float = 560000.0.toFloat() +public val value_21: kotlin.Double = 0.0654765.toDouble() +public val value_22: kotlin.Double = Infinity.toDouble() +public val value_23: kotlin.Float = Infinity.toFloat() +public val value_24: kotlin.Float = 0.0.toFloat() +public val value_25: kotlin.Float = 0.0.toFloat() +public val value_26: kotlin.Double = 0.0.toDouble() +public val value_27: kotlin.Float = Infinity.toFloat() +public val value_3: kotlin.Float = 0.0.toFloat() +public val value_4: kotlin.Float = 0.0.toFloat() +public val value_5: kotlin.Double = 0.0.toDouble() +public val value_6: kotlin.Double = 0.0.toDouble() +public val value_7: kotlin.Float = 2.19999994E11.toFloat() +public val value_8: kotlin.Double = 3.33E102.toDouble() +public val value_9: kotlin.Float = 4444.0.toFloat() diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.4.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.4.kt new file mode 100644 index 00000000000..88cbd2445fb --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.4.kt @@ -0,0 +1,96 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 4 + * SENTENCE: [1] The digits of the whole-number part or the fraction part or the exponent may be optionally separated by underscores, but an underscore may not be placed between, before, or after these parts. + * NUMBER: 4 + * DESCRIPTION: Real literals with an omitted whole-number part and underscores in a whole-number part, a fraction part and an exponent part. + */ + +// TESTCASE NUMBER: 1 +val value_1 = .0_0 + +// TESTCASE NUMBER: 2 +val value_2 = .0_0f + +// TESTCASE NUMBER: 3 +val value_3 = .0_0e-0_0 + +// TESTCASE NUMBER: 4 +val value_4 = .0_0e0_0F + +// TESTCASE NUMBER: 5 +val value_5 = .0__0F + +// TESTCASE NUMBER: 6 +val value_6 = .0_0E+0__0_0F + +// TESTCASE NUMBER: 7 +val value_7 = .0e0f + +// TESTCASE NUMBER: 8 +val value_8 = .0_0E0_0 + +// TESTCASE NUMBER: 9 +val value_9 = .0e1_0F + +// TESTCASE NUMBER: 10 +val value_10 = .0e10__0 + +// TESTCASE NUMBER: 11 +val value_11 = .00______00F + +// TESTCASE NUMBER: 12 +val value_12 = .0___9 + +// TESTCASE NUMBER: 13 +val value_13 = .0__________________________________________________12___________________________________________________________________0F + +// TESTCASE NUMBER: 14 +val value_14 = .0_0e+3_0 + +// TESTCASE NUMBER: 15 +val value_15 = .000e0f + +// TESTCASE NUMBER: 16 +val value_16 = .9_______9______9_____9____9___9__9_90E-1 + +// TESTCASE NUMBER: 17 +val value_17 = .12345678_90 + +// TESTCASE NUMBER: 18 +val value_18 = .1_2_3_4_5_6_7_8_9_0 + +// TESTCASE NUMBER: 19 +val value_19 = .345______________6e-7_______8f + +// TESTCASE NUMBER: 20 +val value_20 = .45_67f + +// TESTCASE NUMBER: 21 +val value_21 = .5e+0_6 + +// TESTCASE NUMBER: 22 +val value_22 = .6_0______________05F + +// TESTCASE NUMBER: 23 +val value_23 = .76_5e4 + +// TESTCASE NUMBER: 24 +val value_24 = .8E7654_3 + +// TESTCASE NUMBER: 25 +val value_25 = .9E0_____________8765432f + +// TESTCASE NUMBER: 26 +val value_26 = .09_8765432_____________1F + +// TESTCASE NUMBER: 27 +val value_27 = .000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000_0F + +// TESTCASE NUMBER: 28 +val value_28 = .00___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + +// TESTCASE NUMBER: 29 +val value_29 = .33333333333333333333333333333333333333333333333_333333333333333333333333333333333333333e3_3f diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.4.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.4.txt new file mode 100644 index 00000000000..fe0b022c3bb --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.4.txt @@ -0,0 +1,31 @@ +package + +public val value_1: kotlin.Double = 0.0.toDouble() +public val value_10: kotlin.Double = 0.0.toDouble() +public val value_11: kotlin.Float = 0.0.toFloat() +public val value_12: kotlin.Double = 0.09.toDouble() +public val value_13: kotlin.Float = 0.012.toFloat() +public val value_14: kotlin.Double = 0.0.toDouble() +public val value_15: kotlin.Float = 0.0.toFloat() +public val value_16: kotlin.Double = 0.099999999.toDouble() +public val value_17: kotlin.Double = 0.123456789.toDouble() +public val value_18: kotlin.Double = 0.123456789.toDouble() +public val value_19: kotlin.Float = 0.0.toFloat() +public val value_2: kotlin.Float = 0.0.toFloat() +public val value_20: kotlin.Float = 0.4567.toFloat() +public val value_21: kotlin.Double = 500000.0.toDouble() +public val value_22: kotlin.Float = 0.6005.toFloat() +public val value_23: kotlin.Double = 7650.0.toDouble() +public val value_24: kotlin.Double = Infinity.toDouble() +public val value_25: kotlin.Float = Infinity.toFloat() +public val value_26: kotlin.Float = 0.09876543.toFloat() +public val value_27: kotlin.Float = 0.0.toFloat() +public val value_28: kotlin.Double = 0.0.toDouble() +public val value_29: kotlin.Float = 3.3333334E32.toFloat() +public val value_3: kotlin.Double = 0.0.toDouble() +public val value_4: kotlin.Float = 0.0.toFloat() +public val value_5: kotlin.Float = 0.0.toFloat() +public val value_6: kotlin.Float = 0.0.toFloat() +public val value_7: kotlin.Float = 0.0.toFloat() +public val value_8: kotlin.Double = 0.0.toDouble() +public val value_9: kotlin.Float = 0.0.toFloat() diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.5.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.5.kt new file mode 100644 index 00000000000..06c0f16722c --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.5.kt @@ -0,0 +1,102 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 4 + * SENTENCE: [1] The digits of the whole-number part or the fraction part or the exponent may be optionally separated by underscores, but an underscore may not be placed between, before, or after these parts. + * NUMBER: 5 + * DESCRIPTION: Real literals with an omitted fraction part and underscores in a whole-number part, a fraction part and an exponent part. + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0_0F + +// TESTCASE NUMBER: 2 +val value_2 = 0_0E-0_0F + +// TESTCASE NUMBER: 3 +val value_3 = 0_0E-0_0 + +// TESTCASE NUMBER: 4 +val value_4 = 0_0____0f + +// TESTCASE NUMBER: 5 +val value_5 = 0_0____0e-0f + +// TESTCASE NUMBER: 6 +val value_6 = 0_0_0_0F + +// TESTCASE NUMBER: 7 +val value_7 = 0_0_0_0E-0_0_0_0F + +// TESTCASE NUMBER: 8 +val value_8 = 0000000000000000000_______________0000000000000000000f + +// TESTCASE NUMBER: 9 +val value_9 = 0000000000000000000_______________0000000000000000000e+0f + +// TESTCASE NUMBER: 10 +val value_10 = 0000000000000000000_______________0000000000000000000E-0 + +// TESTCASE NUMBER: 11 +val value_11 = 2___2e-2___2f + +// TESTCASE NUMBER: 12 +val value_12 = 33_3E0_0F + +// TESTCASE NUMBER: 13 +val value_13 = 4_444E-4_444f + +// TESTCASE NUMBER: 14 +val value_14 = 55_5_55F + +// TESTCASE NUMBER: 15 +val value_15 = 666____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________666f + +// TESTCASE NUMBER: 16 +val value_16 = 666____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________666E-10 + +// TESTCASE NUMBER: 17 +val value_17 = 7_7_7_7_7_7_7f + +// TESTCASE NUMBER: 18 +val value_18 = 8888888________8e-9000000_0 + +// TESTCASE NUMBER: 19 +val value_19 = 9________9_______9______9_____9____9___9__9_9F + +// TESTCASE NUMBER: 20 +val value_20 = 1__2_3__4____5_____6__7_89f + +// TESTCASE NUMBER: 21 +val value_21 = 2__34567e8 + +// TESTCASE NUMBER: 22 +val value_22 = 345_6E+9_7F + +// TESTCASE NUMBER: 23 +val value_23 = 45_____________________________________________________________6E-12313413_4 + +// TESTCASE NUMBER: 24 +val value_24 = 5_______________________________________________________________________________________________________________________________________________________________________________________5f + +// TESTCASE NUMBER: 25 +val value_25 = 6__________________________________________________54F + +// TESTCASE NUMBER: 26 +val value_26 = 76_5___4e3___________33333333 + +// TESTCASE NUMBER: 27 +val value_27 = 876543_____________________________________________________________2f + +// TESTCASE NUMBER: 28 +val value_28 = 9_8__7654__3_21F + +// TESTCASE NUMBER: 29 +val value_29 = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0__0F + +// TESTCASE NUMBER: 30 +val value_30 = 0___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f + +// TESTCASE NUMBER: 31 +val value_31 = 33333333333333333333333333333333333333333333333_33333333333333333333333333333333333333333E-1_0_0 diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.5.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.5.txt new file mode 100644 index 00000000000..9ee1139a15f --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.5.txt @@ -0,0 +1,33 @@ +package + +public val value_1: kotlin.Float = 0.0.toFloat() +public val value_10: kotlin.Double = 0.0.toDouble() +public val value_11: kotlin.Float = 2.2E-21.toFloat() +public val value_12: kotlin.Float = 333.0.toFloat() +public val value_13: kotlin.Float = 0.0.toFloat() +public val value_14: kotlin.Float = 55555.0.toFloat() +public val value_15: kotlin.Float = 666666.0.toFloat() +public val value_16: kotlin.Double = 6.66666E-5.toDouble() +public val value_17: kotlin.Float = 7777777.0.toFloat() +public val value_18: kotlin.Double = 0.0.toDouble() +public val value_19: kotlin.Float = 1.0E9.toFloat() +public val value_2: kotlin.Float = 0.0.toFloat() +public val value_20: kotlin.Float = 1.23456792E8.toFloat() +public val value_21: kotlin.Double = 2.34567E13.toDouble() +public val value_22: kotlin.Float = Infinity.toFloat() +public val value_23: kotlin.Double = 0.0.toDouble() +public val value_24: kotlin.Float = 55.0.toFloat() +public val value_25: kotlin.Float = 654.0.toFloat() +public val value_26: kotlin.Double = Infinity.toDouble() +public val value_27: kotlin.Float = 8765432.0.toFloat() +public val value_28: kotlin.Float = 9.8765434E8.toFloat() +public val value_29: kotlin.Float = 0.0.toFloat() +public val value_3: kotlin.Double = 0.0.toDouble() +public val value_30: kotlin.Float = 0.0.toFloat() +public val value_31: kotlin.Double = 3.3333333333333334E-13.toDouble() +public val value_4: kotlin.Float = 0.0.toFloat() +public val value_5: kotlin.Float = 0.0.toFloat() +public val value_6: kotlin.Float = 0.0.toFloat() +public val value_7: kotlin.Float = 0.0.toFloat() +public val value_8: kotlin.Float = 0.0.toFloat() +public val value_9: kotlin.Float = 0.0.toFloat() diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.1.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.1.kt new file mode 100644 index 00000000000..0dec0e561a9 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.1.kt @@ -0,0 +1,53 @@ +// !CHECK_TYPE + +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 5 + * SENTENCE: [1] A real literal without the type suffix has type kotlin.Double, a real literal with the type suffix has type kotlin.Float. + * NUMBER: 1 + * DESCRIPTION: A type checking of a simple real literal (with/without underscores). + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0.1 checkType { _() } + +// TESTCASE NUMBER: 2 +val value_2 = 0.1234567890 checkType { _() } + +// TESTCASE NUMBER: 3 +val value_3 = -0.99___99999999 checkType { _() } + +// TESTCASE NUMBER: 4 +val value_4 = -1111111111.9_9_9_9_9_9_9_9_9_9 checkType { _() } + +// TESTCASE NUMBER: 5 +val value_5 = 6_6_6_6_6_6_6_6_6_6.0000000000 checkType { _() } + +// TESTCASE NUMBER: 6 +val value_6 = 66666666666666666666666666666666666666666666666666.000000000000000000000000000_____000000000000000000000001 checkType { _() } + +// TESTCASE NUMBER: 7 +val value_7 = 0.0 checkType { _() } + +// TESTCASE NUMBER: 8 +val value_8 = -0.0________0_______0______0_____0____0___0__0_0 checkType { _() } + +// TESTCASE NUMBER: 9 +val value_9 = 0.0000000000 checkType { _() } + +// TESTCASE NUMBER: 10 +val value_10 = 0.00000000000000000000000000__________________________________________________________________________________________00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 checkType { _() } + +// TESTCASE NUMBER: 11 +val value_11 = -0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 checkType { _() } + +// TESTCASE NUMBER: 12 +val value_12 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 checkType { _() } + +// TESTCASE NUMBER: 13 +val value_13 = -99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999.0 checkType { _() } + +// TESTCASE NUMBER: 14 +val value_14 = 222222222222222222___222222222222222222222___222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222.0 checkType { _() } diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.1.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.1.txt new file mode 100644 index 00000000000..761503e3e62 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.1.txt @@ -0,0 +1,16 @@ +package + +public val value_1: kotlin.Unit +public val value_10: kotlin.Unit +public val value_11: kotlin.Unit +public val value_12: kotlin.Unit +public val value_13: kotlin.Unit +public val value_14: kotlin.Unit +public val value_2: kotlin.Unit +public val value_3: kotlin.Unit +public val value_4: kotlin.Unit +public val value_5: kotlin.Unit +public val value_6: kotlin.Unit +public val value_7: kotlin.Unit +public val value_8: kotlin.Unit +public val value_9: kotlin.Unit diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.2.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.2.kt new file mode 100644 index 00000000000..eacf26a1240 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.2.kt @@ -0,0 +1,128 @@ +// !CHECK_TYPE + +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 5 + * SENTENCE: [1] A real literal without the type suffix has type kotlin.Double, a real literal with the type suffix has type kotlin.Float. + * NUMBER: 2 + * DESCRIPTION: A type checking of a real literal with an exponent mark. + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0.0e0 checkType { _() } + +// TESTCASE NUMBER: 2 +val value_2 = 0.0e-0____0 checkType { _() } + +// TESTCASE NUMBER: 3 +val value_3 = 0.0E000 checkType { _() } + +// TESTCASE NUMBER: 4 +val value_4 = 0.0E+0_0_0_0 checkType { _() } + +// TESTCASE NUMBER: 5 +val value_5 = 0________________________________________0.0e+0 checkType { _() } + +// TESTCASE NUMBER: 6 +val value_6 = 000.0___0e0_0 checkType { _() } + +// TESTCASE NUMBER: 7 +val value_7 = 0000.000E-000 checkType { _() } + +// TESTCASE NUMBER: 8 +val value_8 = 1.0E+1 checkType { _() } + +// TESTCASE NUMBER: 9 +val value_9 = 2_________2.0_0e2_2 checkType { _() } + +// TESTCASE NUMBER: 10 +val value_10 = 33____3.000e-333 checkType { _() } + +// TESTCASE NUMBER: 11 +val value_11 = 4444.0000e4444 checkType { _() } + +// TESTCASE NUMBER: 12 +val value_12 = 55555.0E-5_5_5_5_5 checkType { _() } + +// TESTCASE NUMBER: 13 +val value_13 = 6_6_6_6_6_6.0____0e666666 checkType { _() } + +// TESTCASE NUMBER: 14 +val value_14 = 7777777.000E7777777 checkType { _() } + +// TESTCASE NUMBER: 15 +val value_15 = 88888888.0000e-88888888 checkType { _() } + +// TESTCASE NUMBER: 16 +val value_16 = 9_9_9_9_9_9_9_9_9.0E+9_9_9_9_9_9_9_9_9 checkType { _() } + +// TESTCASE NUMBER: 17 +val value_17 = 0_________0________0_______0______0_____0____0___0__0_0.1234567890E999999999 checkType { _() } + +// TESTCASE NUMBER: 18 +val value_18 = 123456789.23456789E+123456789 checkType { _() } + +// TESTCASE NUMBER: 19 +val value_19 = 2345678.345678e00000000001 checkType { _() } + +// TESTCASE NUMBER: 20 +val value_20 = 34567.4_5__6___7E-100000000000 checkType { _() } + +// TESTCASE NUMBER: 21 +val value_21 = 456.5________6e-0 checkType { _() } + +// TESTCASE NUMBER: 22 +val value_22 = 5.65e000000000000 checkType { _() } + +// TESTCASE NUMBER: 23 +val value_23 = 654.7654E+0__1_0 checkType { _() } + +// TESTCASE NUMBER: 24 +val value_24 = 76543.876543E1 checkType { _() } + +// TESTCASE NUMBER: 25 +val value_25 = 8765432.98765432e-2 checkType { _() } + +// TESTCASE NUMBER: 26 +val value_26 = 9_8765432_1.0987654321E-3 checkType { _() } + +// TESTCASE NUMBER: 27 +val value_27 = 0.111_1e4 checkType { _() } + +// TESTCASE NUMBER: 28 +val value_28 = 1.2_2222E-5 checkType { _() } + +// TESTCASE NUMBER: 29 +val value_29 = 9.33333e+6 checkType { _() } + +// TESTCASE NUMBER: 30 +val value_30 = 9.444444E7 checkType { _() } + +// TESTCASE NUMBER: 31 +val value_31 = 8.5555555e8 checkType { _() } + +// TESTCASE NUMBER: 32 +val value_32 = 2.66666666e3_0_8 checkType { _() } + +// TESTCASE NUMBER: 33 +val value_33 = 3.7________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________77777777E-308 checkType { _() } + +// TESTCASE NUMBER: 34 +val value_34 = 7.8888888888e+30____9 checkType { _() } + +// TESTCASE NUMBER: 35 +val value_35 = 6.99999999999e-309 checkType { _() } + +// TESTCASE NUMBER: 36 +val value_36 = 7.888888___888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888e+111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 checkType { _() } + +// TESTCASE NUMBER: 37 +val value_37 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_0 checkType { _() } + +// TESTCASE NUMBER: 38 +val value_38 = 0.0_00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 checkType { _() } + +// TESTCASE NUMBER: 39 +val value_39 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 checkType { _() } diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.2.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.2.txt new file mode 100644 index 00000000000..d67893d4386 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.2.txt @@ -0,0 +1,41 @@ +package + +public val value_1: kotlin.Unit +public val value_10: kotlin.Unit +public val value_11: kotlin.Unit +public val value_12: kotlin.Unit +public val value_13: kotlin.Unit +public val value_14: kotlin.Unit +public val value_15: kotlin.Unit +public val value_16: kotlin.Unit +public val value_17: kotlin.Unit +public val value_18: kotlin.Unit +public val value_19: kotlin.Unit +public val value_2: kotlin.Unit +public val value_20: kotlin.Unit +public val value_21: kotlin.Unit +public val value_22: kotlin.Unit +public val value_23: kotlin.Unit +public val value_24: kotlin.Unit +public val value_25: kotlin.Unit +public val value_26: kotlin.Unit +public val value_27: kotlin.Unit +public val value_28: kotlin.Unit +public val value_29: kotlin.Unit +public val value_3: kotlin.Unit +public val value_30: kotlin.Unit +public val value_31: kotlin.Unit +public val value_32: kotlin.Unit +public val value_33: kotlin.Unit +public val value_34: kotlin.Unit +public val value_35: kotlin.Unit +public val value_36: kotlin.Unit +public val value_37: kotlin.Unit +public val value_38: kotlin.Unit +public val value_39: kotlin.Unit +public val value_4: kotlin.Unit +public val value_5: kotlin.Unit +public val value_6: kotlin.Unit +public val value_7: kotlin.Unit +public val value_8: kotlin.Unit +public val value_9: kotlin.Unit diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.3.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.3.kt new file mode 100644 index 00000000000..bcfc54b9557 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.3.kt @@ -0,0 +1,98 @@ +// !CHECK_TYPE + +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 5 + * SENTENCE: [1] A real literal without the type suffix has type kotlin.Double, a real literal with the type suffix has type kotlin.Float. + * NUMBER: 3 + * DESCRIPTION: A type checking of a real literal with omitted a whole-number part. + */ + +// TESTCASE NUMBER: 1 +val value_1 = .0 checkType { _() } + +// TESTCASE NUMBER: 2 +val value_2 = .00 checkType { _() } + +// TESTCASE NUMBER: 3 +val value_3 = .000 checkType { _() } + +// TESTCASE NUMBER: 4 +val value_4 = .0000 checkType { _() } + +// TESTCASE NUMBER: 5 +val value_5 = .1234567890 checkType { _() } + +// TESTCASE NUMBER: 6 +val value_6 = .23456789 checkType { _() } + +// TESTCASE NUMBER: 7 +val value_7 = .345678 checkType { _() } + +// TESTCASE NUMBER: 8 +val value_8 = .4567 checkType { _() } + +// TESTCASE NUMBER: 9 +val value_9 = .56 checkType { _() } + +// TESTCASE NUMBER: 10 +val value_10 = .65 checkType { _() } + +// TESTCASE NUMBER: 11 +val value_11 = .7654 checkType { _() } + +// TESTCASE NUMBER: 12 +val value_12 = .876543 checkType { _() } + +// TESTCASE NUMBER: 13 +val value_13 = .98765432 checkType { _() } + +// TESTCASE NUMBER: 14 +val value_14 = .0987654321 checkType { _() } + +// TESTCASE NUMBER: 15 +val value_15 = .1111 checkType { _() } + +// TESTCASE NUMBER: 16 +val value_16 = .22222 checkType { _() } + +// TESTCASE NUMBER: 17 +val value_17 = .33333 checkType { _() } + +// TESTCASE NUMBER: 18 +val value_18 = .444444 checkType { _() } + +// TESTCASE NUMBER: 19 +val value_19 = .5555555 checkType { _() } + +// TESTCASE NUMBER: 20 +val value_20 = .66666666 checkType { _() } + +// TESTCASE NUMBER: 21 +val value_21 = .777777777 checkType { _() } + +// TESTCASE NUMBER: 22 +val value_22 = .8888888888 checkType { _() } + +// TESTCASE NUMBER: 23 +val value_23 = .99999999999 checkType { _() } + +// TESTCASE NUMBER: 24 +val value_24 = .00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 checkType { _() } + +// TESTCASE NUMBER: 25 +val value_25 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 checkType { _() } + +// TESTCASE NUMBER: 26 +val value_26 = .0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456789012345678901234567890123456789012345678901234567890 checkType { _() } + +// TESTCASE NUMBER: 27 +val value_27 = .44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444441 checkType { _() } + +// TESTCASE NUMBER: 28 +val value_28 = .777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777771 checkType { _() } + +// TESTCASE NUMBER: 29 +val value_29 = .9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999123456789912345678991234567899123456789912345678991234567899 checkType { _() } diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.3.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.3.txt new file mode 100644 index 00000000000..b03c2a487ec --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.3.txt @@ -0,0 +1,31 @@ +package + +public val value_1: kotlin.Unit +public val value_10: kotlin.Unit +public val value_11: kotlin.Unit +public val value_12: kotlin.Unit +public val value_13: kotlin.Unit +public val value_14: kotlin.Unit +public val value_15: kotlin.Unit +public val value_16: kotlin.Unit +public val value_17: kotlin.Unit +public val value_18: kotlin.Unit +public val value_19: kotlin.Unit +public val value_2: kotlin.Unit +public val value_20: kotlin.Unit +public val value_21: kotlin.Unit +public val value_22: kotlin.Unit +public val value_23: kotlin.Unit +public val value_24: kotlin.Unit +public val value_25: kotlin.Unit +public val value_26: kotlin.Unit +public val value_27: kotlin.Unit +public val value_28: kotlin.Unit +public val value_29: kotlin.Unit +public val value_3: kotlin.Unit +public val value_4: kotlin.Unit +public val value_5: kotlin.Unit +public val value_6: kotlin.Unit +public val value_7: kotlin.Unit +public val value_8: kotlin.Unit +public val value_9: kotlin.Unit diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.4.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.4.kt new file mode 100644 index 00000000000..8a44c9c1064 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.4.kt @@ -0,0 +1,101 @@ +// !CHECK_TYPE + +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 5 + * SENTENCE: [1] A real literal without the type suffix has type kotlin.Double, a real literal with the type suffix has type kotlin.Float. + * NUMBER: 4 + * DESCRIPTION: A type checking of a real literal with omitted a whole-number part and an exponent mark. + */ + +// TESTCASE NUMBER: 1 +val value_1 = .0e0 checkType { _() } + +// TESTCASE NUMBER: 2 +val value_2 = .0e-0__________________0 checkType { _() } + +// TESTCASE NUMBER: 3 +val value_3 = .0E000 checkType { _() } + +// TESTCASE NUMBER: 4 +val value_4 = .0E+0___0__0_0 checkType { _() } + +// TESTCASE NUMBER: 5 +val value_5 = .0e+0 checkType { _() } + +// TESTCASE NUMBER: 6 +val value_6 = .0_______0e00 checkType { _() } + +// TESTCASE NUMBER: 7 +val value_7 = .00_0E-000 checkType { _() } + +// TESTCASE NUMBER: 8 +val value_8 = .0E+1 checkType { _() } + +// TESTCASE NUMBER: 9 +val value_9 = .00e22 checkType { _() } + +// TESTCASE NUMBER: 10 +val value_10 = .000e-333 checkType { _() } + +// TESTCASE NUMBER: 12 +val value_12 = .0E-5_5_5_5_5 checkType { _() } + +// TESTCASE NUMBER: 15 +val value_15 = .0_0_0_0e-88888888 checkType { _() } + +// TESTCASE NUMBER: 19 +val value_19 = .345678e00000000001 checkType { _() } + +// TESTCASE NUMBER: 20 +val value_20 = .4______567E-100000000000 checkType { _() } + +// TESTCASE NUMBER: 21 +val value_21 = .5_6e-0 checkType { _() } + +// TESTCASE NUMBER: 22 +val value_22 = .65e000000000000 checkType { _() } + +// TESTCASE NUMBER: 23 +val value_23 = .7654E+01_____0 checkType { _() } + +// TESTCASE NUMBER: 24 +val value_24 = .87__65__43E1 checkType { _() } + +// TESTCASE NUMBER: 25 +val value_25 = .98765432e-2 checkType { _() } + +// TESTCASE NUMBER: 26 +val value_26 = .0987654321E-3 checkType { _() } + +// TESTCASE NUMBER: 27 +val value_27 = .1___1__1_1e4 checkType { _() } + +// TESTCASE NUMBER: 28 +val value_28 = .22222E-5 checkType { _() } + +// TESTCASE NUMBER: 29 +val value_29 = .33333e+6 checkType { _() } + +// TESTCASE NUMBER: 30 +val value_30 = .44444_4E7 checkType { _() } + +// TESTCASE NUMBER: 31 +val value_31 = .5555555e8 checkType { _() } + +// TESTCASE NUMBER: 33 +val value_33 = .7_77777777E-308 checkType { _() } + +// TESTCASE NUMBER: 35 +val value_35 = .99999999999e-3_0_9 checkType { _() } + +// TESTCASE NUMBER: 37 +val value_37 = .0____00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 checkType { _() } + +// TESTCASE NUMBER: 38 +val value_38 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0 checkType { _() } + +// TESTCASE NUMBER: 39 +val value_39 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 checkType { _() } diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.4.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.4.txt new file mode 100644 index 00000000000..2e0ecb0f2e4 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.4.txt @@ -0,0 +1,32 @@ +package + +public val value_1: kotlin.Unit +public val value_10: kotlin.Unit +public val value_12: kotlin.Unit +public val value_15: kotlin.Unit +public val value_19: kotlin.Unit +public val value_2: kotlin.Unit +public val value_20: kotlin.Unit +public val value_21: kotlin.Unit +public val value_22: kotlin.Unit +public val value_23: kotlin.Unit +public val value_24: kotlin.Unit +public val value_25: kotlin.Unit +public val value_26: kotlin.Unit +public val value_27: kotlin.Unit +public val value_28: kotlin.Unit +public val value_29: kotlin.Unit +public val value_3: kotlin.Unit +public val value_30: kotlin.Unit +public val value_31: kotlin.Unit +public val value_33: kotlin.Unit +public val value_35: kotlin.Unit +public val value_37: kotlin.Unit +public val value_38: kotlin.Unit +public val value_39: kotlin.Unit +public val value_4: kotlin.Unit +public val value_5: kotlin.Unit +public val value_6: kotlin.Unit +public val value_7: kotlin.Unit +public val value_8: kotlin.Unit +public val value_9: kotlin.Unit diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.5.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.5.kt new file mode 100644 index 00000000000..8a485c9ff67 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.5.kt @@ -0,0 +1,80 @@ +// !CHECK_TYPE + +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 5 + * SENTENCE: [1] A real literal without the type suffix has type kotlin.Double, a real literal with the type suffix has type kotlin.Float. + * NUMBER: 5 + * DESCRIPTION: A type checking of a real literal with omitted a fraction part and an exponent mark. + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0e0 checkType { _() } + +// TESTCASE NUMBER: 2 +val value_2 = 0_0e0_0 checkType { _() } + +// TESTCASE NUMBER: 3 +val value_3 = 000E-10 checkType { _() } + +// TESTCASE NUMBER: 4 +val value_4 = 00______00e+00000000000 checkType { _() } + +// TESTCASE NUMBER: 5 +val value_5 = 0000000000000000000000000000000000000_0E1 checkType { _() } + +// TESTCASE NUMBER: 6 +val value_6 = 1e1 checkType { _() } + +// TESTCASE NUMBER: 7 +val value_7 = 2___2E-1 checkType { _() } + +// TESTCASE NUMBER: 8 +val value_8 = 333e-00000000000 checkType { _() } + +// TESTCASE NUMBER: 9 +val value_9 = 4444E-99999999999999999 checkType { _() } + +// TESTCASE NUMBER: 10 +val value_10 = 5_5_5_5_5e10 checkType { _() } + +// TESTCASE NUMBER: 11 +val value_11 = 666666E0_0_0_1_0 checkType { _() } + +// TESTCASE NUMBER: 12 +val value_12 = 7777777e09090909090 checkType { _() } + +// TESTCASE NUMBER: 13 +val value_13 = 88888888e1234567890 checkType { _() } + +// TESTCASE NUMBER: 14 +val value_14 = 999999999E1234567890 checkType { _() } + +// TESTCASE NUMBER: 15 +val value_15 = 123456789e9_____87___654__32_1 checkType { _() } + +// TESTCASE NUMBER: 16 +val value_16 = 2345678E0 checkType { _() } + +// TESTCASE NUMBER: 17 +val value_17 = 3____4___5__6_7E+010 checkType { _() } + +// TESTCASE NUMBER: 18 +val value_18 = 456e-09876543210 checkType { _() } + +// TESTCASE NUMBER: 19 +val value_19 = 5e5_0_5 checkType { _() } + +// TESTCASE NUMBER: 20 +val value_20 = 654e5 checkType { _() } + +// TESTCASE NUMBER: 21 +val value_21 = 76543E-91823 checkType { _() } + +// TESTCASE NUMBER: 22 +val value_22 = 8765432e+9_______0 checkType { _() } + +// TESTCASE NUMBER: 23 +val value_23 = 9_87654321e-1 checkType { _() } diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.5.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.5.txt new file mode 100644 index 00000000000..76ef490be4a --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.5.txt @@ -0,0 +1,25 @@ +package + +public val value_1: kotlin.Unit +public val value_10: kotlin.Unit +public val value_11: kotlin.Unit +public val value_12: kotlin.Unit +public val value_13: kotlin.Unit +public val value_14: kotlin.Unit +public val value_15: kotlin.Unit +public val value_16: kotlin.Unit +public val value_17: kotlin.Unit +public val value_18: kotlin.Unit +public val value_19: kotlin.Unit +public val value_2: kotlin.Unit +public val value_20: kotlin.Unit +public val value_21: kotlin.Unit +public val value_22: kotlin.Unit +public val value_23: kotlin.Unit +public val value_3: kotlin.Unit +public val value_4: kotlin.Unit +public val value_5: kotlin.Unit +public val value_6: kotlin.Unit +public val value_7: kotlin.Unit +public val value_8: kotlin.Unit +public val value_9: kotlin.Unit diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/1.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/1.1.kt new file mode 100644 index 00000000000..c97836a5657 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/1.1.kt @@ -0,0 +1,51 @@ +/* + * KOTLIN PSI SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 1 + * SENTENCE: [1] A real literal consists of the following parts: the whole-number part, the decimal point (ASCII period character .), the fraction part and the exponent. + * NUMBER: 1 + * DESCRIPTION: Real literals with not allowed several dots. + */ + +val value = 0.. +val value = 000.. +val value = 0.0. +val value = 00.0. +val value = 000.00. +val value = 0000.1. + +val value = 0.... +val value = 1.1.. +val value = 2.2.3 +val value = 3.0.0.0.0.0.0 +val value = 4.00000. +val value = 5.1.2.3.4.5.6. +val value = 6..1..2...3..4..5 +val value = 7.8..9...0....1 +val value = 8. + +val value = 1...................................................................................................... +val value = 2....2. +val value = 333............3 +val value = 4444..........4 +val value = 55555.......................................................................................................55555 +val value = 666666..............................................0......................................................... +val value = 7777777.............................................0......................................................... +val value = 88888888.9...0 +val value = 999999999.0..2. + +val value = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000........ +val value = 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999.0. +val value = 222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222...0.1 +val value = 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555123456785012345678501234567850123456785012345678501234567850.0.1 + +val value = .0.... +val value = .1.1.. +val value = .2.2..3 +val value = .3.0.0.0.0.0.0 +val value = .4.00000. +val value = .5.1.2.3.4.5.6. +val value = .6..1..2.3.4..5 +val value = .7.8..9...0....1 +val value = .8. diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/1.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/1.1.txt new file mode 100644 index 00000000000..8695818c0ce --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/1.1.txt @@ -0,0 +1,1001 @@ +KtFile: 1.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(RANGE)('..') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(RANGE)('..') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00.0') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000.00') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000.1') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(DOT)('.') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1.1') + OPERATION_REFERENCE + PsiElement(RANGE)('..') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2.2') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.3') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('3.0') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(FLOAT_CONSTANT)('.0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('4.00000') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('5.1') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.2') + PsiElement(FLOAT_CONSTANT)('.3') + PsiElement(FLOAT_CONSTANT)('.4') + PsiElement(FLOAT_CONSTANT)('.5') + PsiElement(FLOAT_CONSTANT)('.6') + PsiElement(DOT)('.') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('6') + OPERATION_REFERENCE + PsiElement(RANGE)('..') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + OPERATION_REFERENCE + PsiElement(RANGE)('..') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('2') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(INTEGER_LITERAL)('3') + PsiElement(RANGE)('..') + PsiElement(INTEGER_LITERAL)('4') + PsiElement(RANGE)('..') + PsiElement(INTEGER_LITERAL)('5') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7.8') + OPERATION_REFERENCE + PsiElement(RANGE)('..') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('9') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(RESERVED)('...') + PsiElement(FLOAT_CONSTANT)('.1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('8') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('2') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(FLOAT_CONSTANT)('.2') + PsiElement(DOT)('.') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('333') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(INTEGER_LITERAL)('3') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('4444') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(FLOAT_CONSTANT)('.4') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('55555') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(FLOAT_CONSTANT)('.55555') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('666666') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('7777777') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('88888888.9') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('999999999.0') + OPERATION_REFERENCE + PsiElement(RANGE)('..') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('2') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RANGE)('..') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999.0') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(FLOAT_CONSTANT)('0.1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555123456785012345678501234567850123456785012345678501234567850.0') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.1') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(DOT)('.') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.1') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.1') + PsiElement(RANGE)('..') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.2') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.2') + PsiElement(RANGE)('..') + PsiElement(INTEGER_LITERAL)('3') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.3') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(FLOAT_CONSTANT)('.0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.4') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.00000') + PsiElement(DOT)('.') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.5') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.1') + PsiElement(FLOAT_CONSTANT)('.2') + PsiElement(FLOAT_CONSTANT)('.3') + PsiElement(FLOAT_CONSTANT)('.4') + PsiElement(FLOAT_CONSTANT)('.5') + PsiElement(FLOAT_CONSTANT)('.6') + PsiElement(DOT)('.') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.6') + OPERATION_REFERENCE + PsiElement(RANGE)('..') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + OPERATION_REFERENCE + PsiElement(RANGE)('..') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2.3') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.4') + PsiElement(RANGE)('..') + PsiElement(INTEGER_LITERAL)('5') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.7') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.8') + PsiElement(RANGE)('..') + PsiElement(INTEGER_LITERAL)('9') + PsiElement(RESERVED)('...') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(RESERVED)('...') + PsiElement(FLOAT_CONSTANT)('.1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.8') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/1.2.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/1.2.kt new file mode 100644 index 00000000000..9f9e7571370 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/1.2.kt @@ -0,0 +1,37 @@ +/* + * KOTLIN PSI SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 1 + * SENTENCE: [1] A real literal consists of the following parts: the whole-number part, the decimal point (ASCII period character .), the fraction part and the exponent. + * NUMBER: 2 + * DESCRIPTION: Real literals with not allowed symbols as a separator of a whole-number part and a fraction part. + * UNEXPECTED BEHAVIOUR + */ + +val value = 0...1 +val value = 1…1 +val value = 000:1 +val value = 2•0 +val value = 00·0 +val value = 300‚1 +val value = 0000°1 +val value = 1●1 +val value = 8☺10 + +val value = 1. 2 +val value = 1 . 2 +val value = 1 .2 +val value = 1 .2 +val value = 1 . 2 +val value = 1. 2 +val value = 1 +.2 +val value = 1. +2 +val value = 1. +2 +val value = 1 +.2 +val value = 1. 35 +val value = 3 .5 \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/1.2.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/1.2.txt new file mode 100644 index 00000000000..d2a4a38610e --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/1.2.txt @@ -0,0 +1,285 @@ +KtFile: 1.2.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiErrorElement:Property getter or setter expected + PsiElement(BAD_CHARACTER)('…') + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(COLON)(':') + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('2') + PsiErrorElement:Property getter or setter expected + PsiElement(BAD_CHARACTER)('•') + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(BAD_CHARACTER)('·') + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('300') + PsiErrorElement:Property getter or setter expected + PsiElement(BAD_CHARACTER)('‚') + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(BAD_CHARACTER)('°') + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiErrorElement:Property getter or setter expected + PsiElement(BAD_CHARACTER)('●') + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('8') + PsiErrorElement:Property getter or setter expected + PsiElement(BAD_CHARACTER)('☺') + PsiElement(INTEGER_LITERAL)('10') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiElement(DOT)('.') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('2') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace(' ') + PsiElement(DOT)('.') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('2') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace(' ') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.2') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace('\t') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.2') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace('\t') + PsiElement(DOT)('.') + PsiWhiteSpace('\t') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('2') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiElement(DOT)('.') + PsiWhiteSpace('\t') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('2') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace('\n') + PsiErrorElement:Expecting a top level declaration + PsiElement(FLOAT_CONSTANT)('.2') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiElement(DOT)('.') + PsiWhiteSpace('\n') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('2') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiElement(DOT)('.') + PsiWhiteSpace('\n') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('2') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace('\n') + PsiErrorElement:Expecting a top level declaration + PsiElement(FLOAT_CONSTANT)('.2') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + PsiElement(BAD_CHARACTER)(' 35\nval value = 3 .5') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/1.3.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/1.3.kt new file mode 100644 index 00000000000..28027285364 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/1.3.kt @@ -0,0 +1,31 @@ +/* + * KOTLIN PSI SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 1 + * SENTENCE: [1] A real literal consists of the following parts: the whole-number part, the decimal point (ASCII period character .), the fraction part and the exponent. + * NUMBER: 3 + * DESCRIPTION: Real literals separeted by comments. + */ + +val value = 0/* comment */.000001 +val value = 9999/** some doc */.1 + +val value = 4/**//** some doc */.1 + +val value = 0/* + ... +*/.000001 +val value = 9999/** + some doc + */.1 +val value = 9999// comment +.1 +val value = 9999/***/ +.1 + +val value = 1000/***/000.0 +val value = 1000/*.*/000.0 + +val value = 4/** some/**/ doc */.1 +val value = 4/* some/***/ doc */.19999 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/1.3.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/1.3.txt new file mode 100644 index 00000000000..6cddbeb0dad --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/1.3.txt @@ -0,0 +1,176 @@ +KtFile: 1.3.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiComment(BLOCK_COMMENT)('/* comment */') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.000001') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('9999') + KDoc + PsiElement(KDOC_START)('/**') + KDOC_SECTION + PsiElement(KDOC_TEXT)(' some doc ') + PsiElement(KDOC_END)('*/') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.1') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('4') + PsiComment(BLOCK_COMMENT)('/**/') + KDoc + PsiElement(KDOC_START)('/**') + KDOC_SECTION + PsiElement(KDOC_TEXT)(' some doc ') + PsiElement(KDOC_END)('*/') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.1') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiComment(BLOCK_COMMENT)('/*\n ...\n*/') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.000001') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('9999') + KDoc + PsiElement(KDOC_START)('/**') + PsiWhiteSpace('\n ') + KDOC_SECTION + PsiElement(KDOC_TEXT)('some doc') + PsiWhiteSpace('\n ') + PsiElement(KDOC_END)('*/') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('9999') + PsiComment(EOL_COMMENT)('// comment') + PsiWhiteSpace('\n') + PsiErrorElement:Expecting a top level declaration + PsiElement(FLOAT_CONSTANT)('.1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('9999') + KDoc + PsiElement(KDOC_START)('/**') + KDOC_SECTION + + PsiElement(KDOC_END)('*/') + PsiWhiteSpace('\n') + PsiErrorElement:Expecting a top level declaration + PsiElement(FLOAT_CONSTANT)('.1') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1000') + KDoc + PsiElement(KDOC_START)('/**') + KDOC_SECTION + + PsiElement(KDOC_END)('*/') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('000.0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1000') + PsiComment(BLOCK_COMMENT)('/*.*/') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('000.0') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('4') + KDoc + PsiElement(KDOC_START)('/**') + KDOC_SECTION + PsiElement(KDOC_TEXT)(' some/**/ doc ') + PsiElement(KDOC_END)('*/') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('4') + PsiComment(BLOCK_COMMENT)('/* some/***/ doc */') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.19999') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/2.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/2.1.kt new file mode 100644 index 00000000000..6941c50a57f --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/2.1.kt @@ -0,0 +1,40 @@ +/* + * KOTLIN PSI SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 1 + * SENTENCE: [2] Unlike other languages, Kotlin real literals may only be expressed in decimal numbers. + * NUMBER: 1 + * DESCRIPTION: Not allowed hexadecimal real literals. + */ + +val value = 0x100.1 +val value = 0x100.0 +val value = 0X0.0 +val value = 0x00.0 +val value = 0x00.000 +val value = 0x001.000 +val value = 0xFA.1234567890 +val value = 0XAAAA.00000000001 + +val value = 0x110000.41AB4135F54A +val value = 0XAFCE.0ABCDEF +val value = 0x0123456789ABCDEF.0123456789ABCDEF + +val value = 0.0X5F +val value = 0.0x913530ABCDEF +val value = 1234567.0x1234567895F +val value = 10000000000.0x913530ABCDEF +val value = 9.10x913530ABCDEF +val value = .0XABCDEF +val value = .0x0123456789 + +val value = 0x0.0x0 +val value = 0X5F.0x11 +val value = 0x000001.0x000001 +val value = 0XABCDEF.0xABCDEF + +val value = 0x0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF +val value = 0X0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345 +val value = 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345.0X1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123 +val value = 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345.0xABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789AB diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/2.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/2.1.txt new file mode 100644 index 00000000000..4f04a3dbbe9 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/2.1.txt @@ -0,0 +1,351 @@ +KtFile: 2.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x100') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x100') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X0') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x00') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x00') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x001') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xFA') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.1234567890') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0XAAAA') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.00000000001') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x110000') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.41') + PsiElement(IDENTIFIER)('AB4135F54A') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0XAFCE') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(IDENTIFIER)('ABCDEF') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x0123456789ABCDEF') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0123456789') + PsiElement(IDENTIFIER)('ABCDEF') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('X5F') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('x913530ABCDEF') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1234567.0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('x1234567895F') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('10000000000.0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('x913530ABCDEF') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9.10') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('x913530ABCDEF') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('XABCDEF') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('x0123456789') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x0') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(IDENTIFIER)('x0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X5F') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(IDENTIFIER)('x11') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x000001') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(IDENTIFIER)('x000001') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0XABCDEF') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(IDENTIFIER)('xABCDEF') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0123456789') + PsiElement(IDENTIFIER)('ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345.0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('X1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345.0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('xABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789AB') + PsiErrorElement:Expecting an element + \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/2.2.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/2.2.kt new file mode 100644 index 00000000000..309996c0834 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/2.2.kt @@ -0,0 +1,40 @@ +/* + * KOTLIN PSI SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 1 + * SENTENCE: [2] Unlike other languages, Kotlin real literals may only be expressed in decimal numbers. + * NUMBER: 2 + * DESCRIPTION: Not allowed binary real literals. + */ + +val value = 0b100.1 +val value = 0b100.0 +val value = 0B0.0 +val value = 0b00.0 +val value = 0b00.000 +val value = 0b001.000 +val value = 0b11.1100111000 +val value = 0B1111.00000000001 + +val value = 0b110000.011101011101 +val value = 0B1100.110001 +val value = 0b0110011100110001.0110011100110001 + +val value = 0.0B11 +val value = 0.0b010100110001 +val value = 1100111.0b11001110011 +val value = 10000000000.0b010100110001 +val value = 0.10b010100110001 +val value = .0B110001 +val value = .0b0110011100 + +val value = 0b0.0b0 +val value = 0B11.0b11 +val value = 0b000001.0b000001 +val value = 0B110001.0b110001 + +val value = 0b011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001.01100111001100010110011100110001011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001 +val value = 0B011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001.01100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001 +val value = 1100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001.0B1100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110 +val value = 1100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001.0b11000101100111001100010110011100110001011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001011001110011 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/2.2.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/2.2.txt new file mode 100644 index 00000000000..2fbf1813fae --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/2.2.txt @@ -0,0 +1,347 @@ +KtFile: 2.2.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b100') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b100') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B0') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b00') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b00') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b001') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b11') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.1100111000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B1111') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.00000000001') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b110000') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.011101011101') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B1100') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.110001') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b0110011100110001') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0110011100110001') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('B11') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('b010100110001') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1100111.0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('b11001110011') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('10000000000.0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('b010100110001') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.10') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('b010100110001') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('B110001') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('b0110011100') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b0') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(IDENTIFIER)('b0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B11') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(IDENTIFIER)('b11') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b000001') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(IDENTIFIER)('b000001') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B110001') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(IDENTIFIER)('b110001') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.01100111001100010110011100110001011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.01100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001.0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('B1100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001.0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('b11000101100111001100010110011100110001011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001011001110011') + PsiErrorElement:Expecting an element + \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/2.3.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/2.3.kt new file mode 100644 index 00000000000..c25b6809673 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/2.3.kt @@ -0,0 +1,27 @@ +/* + * KOTLIN PSI SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 1 + * SENTENCE: [2] Unlike other languages, Kotlin real literals may only be expressed in decimal numbers. + * NUMBER: 3 + * DESCRIPTION: Not allowed real literals with a whole-number part as a hexadecimal number and a fraction part as a binary number (or vice versa). + */ + +val value = 0b110000.0XAAAA +val value = 0B1100.0xFA +val value = 0b0110011100110001.0X0 + +val value = 0x100.0b110011100110001 +val value = 0x100.0b0 +val value = 0X0.0B1100111 +val value = 0x00.0b0 +val value = 0x00.0B110001 +val value = 0x001.0b010100110001 +val value = 0xFA.0b110001 +val value = 0XAAAA.0B11 + +val value = 0b011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001.0x0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF +val value = 0X0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.0b100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001 +val value = 0B1100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001.0B1100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110 +val value = 0xABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789AB.0b11000101100111001100010110011100110001011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001011001110011 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/2.3.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/2.3.txt new file mode 100644 index 00000000000..9220c2ee86e --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/2.3.txt @@ -0,0 +1,199 @@ +KtFile: 2.3.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b110000') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(IDENTIFIER)('XAAAA') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B1100') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(IDENTIFIER)('xFA') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b0110011100110001') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(IDENTIFIER)('X0') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x100') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(IDENTIFIER)('b110011100110001') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x100') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(IDENTIFIER)('b0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X0') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(IDENTIFIER)('B1100111') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x00') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(IDENTIFIER)('b0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x00') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(IDENTIFIER)('B110001') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x001') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(IDENTIFIER)('b010100110001') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xFA') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(IDENTIFIER)('b110001') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0XAAAA') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(IDENTIFIER)('B11') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(IDENTIFIER)('x0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(IDENTIFIER)('b100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B1100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(IDENTIFIER)('B1100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110011100011001110001100111000110') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789AB') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(IDENTIFIER)('b11000101100111001100010110011100110001011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001011001110011000101100111001100010110011100110001011001110011') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/3.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/3.1.kt new file mode 100644 index 00000000000..1459083dfe2 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/3.1.kt @@ -0,0 +1,39 @@ +/* + * KOTLIN PSI SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 1 + * SENTENCE: [3] A real literal may also be followed by a type suffix (f or F). + * NUMBER: 1 + * DESCRIPTION: A float suffix in the real literals right after a dot. + */ + +val value = 0.f +val value = 00.F +val value = 000.f +val value = 0000.f + +val value = 0.F +val value = 1.F +val value = 2.f +val value = 3.F +val value = 4.f +val value = 5.F +val value = 6.f +val value = 7.F +val value = 8.f + +val value = 1.f +val value = 22.f +val value = 333.f +val value = 4444.F +val value = 55555.F +val value = 666666.F +val value = 7777777.f +val value = 88888888.f +val value = 999999999.F + +val value = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.F +val value = 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999.f +val value = 222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222.F +val value = 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555123456785012345678501234567850123456785012345678501234567850.F diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/3.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/3.1.txt new file mode 100644 index 00000000000..525d3630b86 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/3.1.txt @@ -0,0 +1,677 @@ +KtFile: 3.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(DOT)('.') + PsiElement(IDENTIFIER)('F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(DOT)('.') + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(DOT)('.') + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('2') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('3') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('4') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('5') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('6') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('7') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('8') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('22') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('333') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('4444') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('55555') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('666666') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('7777777') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('88888888') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('999999999') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(DOT)('.') + PsiElement(IDENTIFIER)('F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555123456785012345678501234567850123456785012345678501234567850') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('F') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/3.2.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/3.2.kt new file mode 100644 index 00000000000..ee7d8cd3df3 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/3.2.kt @@ -0,0 +1,51 @@ +/* + * KOTLIN PSI SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 1 + * SENTENCE: [3] A real literal may also be followed by a type suffix (f or F). + * NUMBER: 2 + * DESCRIPTION: A float suffix in the real literals right after a several dots (possibly separated by digits). + */ + +val value = 0..f +val value = 000..F +val value = 0.0.F +val value = 00.0.f +val value = 000.00.f +val value = 0000.1.f + +val value = 0....F +val value = 1.1..f +val value = 2.2.3F +val value = 3.0.0.0.0.0.0f +val value = 4.00000.f +val value = 5.1.2.3.4.5.6.f +val value = 6..1..2...3..4..5f +val value = 7.8..9...0....1F +val value = 8.F + +val value = 1......................................................................................................f +val value = 2....2.F +val value = 333............3f +val value = 4444..........4f +val value = 55555.......................................................................................................55555f +val value = 666666..............................................0.........................................................F +val value = 7777777.............................................0.........................................................F +val value = 88888888.9...0F +val value = 999999999.0..2.f + +val value = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000........f +val value = 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999.0.F +val value = 222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222...0.1f +val value = 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555123456785012345678501234567850123456785012345678501234567850.0.1F + +val value = .0....f +val value = .1.1..f +val value = .2.2..3f +val value = .3.0.0.0.0.0.0f +val value = .4.00000.F +val value = .5.1.2.3.4.5.6.f +val value = .6..1..2.3.4..5F +val value = .7.8..9...0....1f +val value = .8.F diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/3.2.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/3.2.txt new file mode 100644 index 00000000000..3a9eecade18 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/3.2.txt @@ -0,0 +1,1013 @@ +KtFile: 3.2.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(RANGE)('..') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(RANGE)('..') + PsiElement(IDENTIFIER)('F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00.0') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000.00') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000.1') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(DOT)('.') + PsiElement(IDENTIFIER)('F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1.1') + OPERATION_REFERENCE + PsiElement(RANGE)('..') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2.2') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.3F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('3.0') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(FLOAT_CONSTANT)('.0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('4.00000') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('5.1') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.2') + PsiElement(FLOAT_CONSTANT)('.3') + PsiElement(FLOAT_CONSTANT)('.4') + PsiElement(FLOAT_CONSTANT)('.5') + PsiElement(FLOAT_CONSTANT)('.6') + PsiElement(DOT)('.') + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('6') + OPERATION_REFERENCE + PsiElement(RANGE)('..') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + OPERATION_REFERENCE + PsiElement(RANGE)('..') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('2') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(INTEGER_LITERAL)('3') + PsiElement(RANGE)('..') + PsiElement(INTEGER_LITERAL)('4') + PsiElement(RANGE)('..') + PsiElement(FLOAT_CONSTANT)('5f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7.8') + OPERATION_REFERENCE + PsiElement(RANGE)('..') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('9') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(RESERVED)('...') + PsiElement(FLOAT_CONSTANT)('.1F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('8') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('2') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(FLOAT_CONSTANT)('.2') + PsiElement(DOT)('.') + PsiElement(IDENTIFIER)('F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('333') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(FLOAT_CONSTANT)('3f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('4444') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(FLOAT_CONSTANT)('.4f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('55555') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(FLOAT_CONSTANT)('.55555f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('666666') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(IDENTIFIER)('F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('7777777') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(IDENTIFIER)('F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('88888888.9') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(FLOAT_CONSTANT)('0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('999999999.0') + OPERATION_REFERENCE + PsiElement(RANGE)('..') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('2') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RANGE)('..') + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999.0') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(FLOAT_CONSTANT)('0.1f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555123456785012345678501234567850123456785012345678501234567850.0') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.1F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(DOT)('.') + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.1') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.1') + PsiElement(RANGE)('..') + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.2') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.2') + PsiElement(RANGE)('..') + PsiElement(FLOAT_CONSTANT)('3f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.3') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(FLOAT_CONSTANT)('.0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.4') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.00000') + PsiElement(DOT)('.') + PsiElement(IDENTIFIER)('F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.5') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.1') + PsiElement(FLOAT_CONSTANT)('.2') + PsiElement(FLOAT_CONSTANT)('.3') + PsiElement(FLOAT_CONSTANT)('.4') + PsiElement(FLOAT_CONSTANT)('.5') + PsiElement(FLOAT_CONSTANT)('.6') + PsiElement(DOT)('.') + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.6') + OPERATION_REFERENCE + PsiElement(RANGE)('..') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + OPERATION_REFERENCE + PsiElement(RANGE)('..') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2.3') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.4') + PsiElement(RANGE)('..') + PsiElement(FLOAT_CONSTANT)('5F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.7') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.8') + PsiElement(RANGE)('..') + PsiElement(INTEGER_LITERAL)('9') + PsiElement(RESERVED)('...') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(RESERVED)('...') + PsiElement(FLOAT_CONSTANT)('.1f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.8') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('F') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/3.3.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/3.3.kt new file mode 100644 index 00000000000..fae9a31076a --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/3.3.kt @@ -0,0 +1,37 @@ +/* + * KOTLIN PSI SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 1 + * SENTENCE: [3] A real literal may also be followed by a type suffix (f or F). + * NUMBER: 3 + * DESCRIPTION: Real literals with a float suffix and not allowed symbols as a separator of a whole-number part and a fraction part. + * UNEXPECTED BEHAVIOUR + */ + +val value = 0...1f +val value = 1…1f +val value = 000:1F +val value = 2•0F +val value = 00·0f +val value = 300‚1F +val value = 0000°1f +val value = 1●1F +val value = 8☺10f + +val value = 1. 2f +val value = 1 . 2f +val value = 1 .2F +val value = 1 .2f +val value = 1 . 2F +val value = 1. 2f +val value = 1 +.2F +val value = 1. + 2F +val value = 1. + 2f +val value = 1 +.2f +val value = 1. 35f +val value = 3 .5F \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/3.3.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/3.3.txt new file mode 100644 index 00000000000..8a6f542b255 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/3.3.txt @@ -0,0 +1,285 @@ +KtFile: 3.3.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(FLOAT_CONSTANT)('1f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiErrorElement:Property getter or setter expected + PsiElement(BAD_CHARACTER)('…') + PsiElement(FLOAT_CONSTANT)('1f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(COLON)(':') + PsiElement(FLOAT_CONSTANT)('1F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('2') + PsiErrorElement:Property getter or setter expected + PsiElement(BAD_CHARACTER)('•') + PsiElement(FLOAT_CONSTANT)('0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(BAD_CHARACTER)('·') + PsiElement(FLOAT_CONSTANT)('0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('300') + PsiErrorElement:Property getter or setter expected + PsiElement(BAD_CHARACTER)('‚') + PsiElement(FLOAT_CONSTANT)('1F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(BAD_CHARACTER)('°') + PsiElement(FLOAT_CONSTANT)('1f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiErrorElement:Property getter or setter expected + PsiElement(BAD_CHARACTER)('●') + PsiElement(FLOAT_CONSTANT)('1F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('8') + PsiErrorElement:Property getter or setter expected + PsiElement(BAD_CHARACTER)('☺') + PsiElement(FLOAT_CONSTANT)('10f') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiElement(DOT)('.') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace(' ') + PsiElement(DOT)('.') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace(' ') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.2F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace('\t') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.2f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace('\t') + PsiElement(DOT)('.') + PsiWhiteSpace('\t') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiElement(DOT)('.') + PsiWhiteSpace('\t') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace('\n') + PsiErrorElement:Expecting a top level declaration + PsiElement(FLOAT_CONSTANT)('.2F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiElement(DOT)('.') + PsiWhiteSpace('\n ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiElement(DOT)('.') + PsiWhiteSpace('\n ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace('\n') + PsiErrorElement:Expecting a top level declaration + PsiElement(FLOAT_CONSTANT)('.2f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + PsiElement(BAD_CHARACTER)(' 35f\nval value = 3 .5F') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos/1.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos/1.1.kt new file mode 100644 index 00000000000..86a69b247ca --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos/1.1.kt @@ -0,0 +1,49 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 1 + * SENTENCE: [1] A real literal consists of the following parts: the whole-number part, the decimal point (ASCII period character .), the fraction part and the exponent. + * NUMBER: 1 + * DESCRIPTION: Simple real literals with a different whole-number part and fraction part. + */ + +val value = 0.0 +val value = 0.00 +val value = 0.000 +val value = 0.0000 + +val value = 00.0 +val value = 000.00 +val value = 0000.000 + +val value = 1.0 +val value = 22.00 +val value = 333.000 +val value = 4444.0000 +val value = 55555.0 +val value = 666666.00 +val value = 7777777.000 +val value = 88888888.0000 +val value = 999999999.0 + +val value = 0000000000.1234567890 +val value = 123456789.23456789 +val value = 2345678.345678 +val value = 34567.4567 +val value = 456.56 +val value = 5.65 +val value = 654.7654 +val value = 76543.876543 +val value = 8765432.98765432 +val value = 987654321.0987654321 + +val value = 0.1111 +val value = 1.22222 +val value = 9.33333 +val value = 9.444444 +val value = 8.5555555 +val value = 2.66666666 +val value = 3.777777777 +val value = 7.8888888888 +val value = 6.99999999999 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos/1.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos/1.1.txt new file mode 100644 index 00000000000..86e9a5981a6 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos/1.1.txt @@ -0,0 +1,354 @@ +KtFile: 1.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.00') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0000') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00.0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000.00') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000.000') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1.0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('22.00') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('333.000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('4444.0000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('55555.0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('666666.00') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7777777.000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('88888888.0000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('999999999.0') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000000000.1234567890') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('123456789.23456789') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2345678.345678') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('34567.4567') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('456.56') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('5.65') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('654.7654') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('76543.876543') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('8765432.98765432') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('987654321.0987654321') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.1111') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1.22222') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9.33333') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9.444444') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('8.5555555') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2.66666666') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('3.777777777') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7.8888888888') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('6.99999999999') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos/1.2.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos/1.2.kt new file mode 100644 index 00000000000..fa36c1621ed --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos/1.2.kt @@ -0,0 +1,55 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 1 + * SENTENCE: [1] A real literal consists of the following parts: the whole-number part, the decimal point (ASCII period character .), the fraction part and the exponent. + * NUMBER: 2 + * DESCRIPTION: Real literals with a many digits in a whole-number part and a fraction part. + */ + +val value = 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +val value = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +val value = 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456789012345678901234567890123456789012345678901234567890 + +val value = 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999.0 +val value = 222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222.0 +val value = 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555123456785012345678501234567850123456785012345678501234567850.0 + +val value = 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +val value = 44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +val value = 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +val value = 888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +val value = 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555123456785012345678501234567850123456785012345678501234567850.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456789012345678901234567890123456789012345678901234567890 + + +val value = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +val value = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0 +val value = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + +val value = 1.11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +val value = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 + +val value = 22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222.2 +val value = 22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + +val value = 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333.33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 +val value = 0.33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 + +val value = 2.44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444 +val value = 44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444.3 + +val value = 5555555.55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 +val value = 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555.0000000 + +val value = 6000000.66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666 +val value = 66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666.00000006 + +val value = 0000000007.77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 +val value = 77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.7000000000 + +val value = 0000000000000000000000000008.88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888 +val value = 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888.8000000000000000000000000000 + +val value = 0000000000000100000000000005.99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 +val value = 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999.5000000000000100000000000000 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos/1.2.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos/1.2.txt new file mode 100644 index 00000000000..96cfe035d9b --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos/1.2.txt @@ -0,0 +1,324 @@ +KtFile: 1.2.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456789012345678901234567890123456789012345678901234567890') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999.0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222.0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555123456785012345678501234567850123456785012345678501234567850.0') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555123456785012345678501234567850123456785012345678501234567850.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456789012345678901234567890123456789012345678901234567890') + PsiWhiteSpace('\n\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1.11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222.2') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333.33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2.44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444.3') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('5555555.55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555.0000000') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('6000000.66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666.00000006') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000000007.77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.7000000000') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000000000000000000000000008.88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888.8000000000000000000000000000') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000000000000100000000000005.99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999.5000000000000100000000000000') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos/3.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos/3.1.kt new file mode 100644 index 00000000000..4c1eae32da4 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos/3.1.kt @@ -0,0 +1,49 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 1 + * SENTENCE: [3] A real literal may also be followed by a type suffix (f or F). + * NUMBER: 1 + * DESCRIPTION: Simple real literals suffixed by f/F (the float suffix) with a different whole-number part and fraction part. + */ + +val value = 0.0f +val value = 0.00F +val value = 0.000f +val value = 0.0000F + +val value = 00.0F +val value = 000.00F +val value = 0000.000f + +val value = 1.0F +val value = 22.00f +val value = 333.000f +val value = 4444.0000f +val value = 55555.0F +val value = 666666.00F +val value = 7777777.000f +val value = 88888888.0000f +val value = 999999999.0f + +val value = 0000000000.1234567890F +val value = 123456789.23456789F +val value = 2345678.345678F +val value = 34567.4567f +val value = 456.56f +val value = 5.65F +val value = 654.7654f +val value = 76543.876543f +val value = 8765432.98765432F +val value = 987654321.0987654321F + +val value = 0.1111F +val value = 1.22222f +val value = 9.33333f +val value = 9.444444F +val value = 8.5555555f +val value = 2.66666666F +val value = 3.777777777f +val value = 7.8888888888f +val value = 6.99999999999F diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos/3.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos/3.1.txt new file mode 100644 index 00000000000..f3df864e1e7 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos/3.1.txt @@ -0,0 +1,354 @@ +KtFile: 3.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.00F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.000f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0000F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00.0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000.00F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000.000f') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1.0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('22.00f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('333.000f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('4444.0000f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('55555.0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('666666.00F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7777777.000f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('88888888.0000f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('999999999.0f') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000000000.1234567890F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('123456789.23456789F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2345678.345678F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('34567.4567f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('456.56f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('5.65F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('654.7654f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('76543.876543f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('8765432.98765432F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('987654321.0987654321F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.1111F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1.22222f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9.33333f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9.444444F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('8.5555555f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2.66666666F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('3.777777777f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7.8888888888f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('6.99999999999F') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos/3.2.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos/3.2.kt new file mode 100644 index 00000000000..58a34c8fc8f --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos/3.2.kt @@ -0,0 +1,49 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 1 + * SENTENCE: [3] A real literal may also be followed by a type suffix (f or F). + * NUMBER: 2 + * DESCRIPTION: Real literals suffixed by f/F (the float suffix) with a many digits in a whole-number part and a fraction part. + */ + +val value = 0.000000000000000000000000000000000000000000001f +val value = 0.0000000000000000000000000000000000000000000001f +val value = 0.00000000000000000000000000000000000000000000123456789012345678901234567890123456789012345678901234567890F + +val value = 99999999999999999999999999999999999999999999999.0F +val value = 22222222222222222222222222222222222222222222222.0f +val value = 55555555555555555555555555555555555555555555555.0F + + +val value = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f +val value = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0F +val value = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F + +val value = 1.11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f +val value = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f + +val value = 22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222.2F +val value = 22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F + +val value = 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333.33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333F +val value = 0.33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333f + +val value = 2.44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444F +val value = 44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444.3F + +val value = 5555555.55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555f +val value = 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555.0000000f + +val value = 6000000.66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666F +val value = 66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666.00000006f + +val value = 0000000007.77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777f +val value = 77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.7000000000F + +val value = 0000000000000000000000000008.88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888f +val value = 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888.8000000000000000000000000000f + +val value = 0000000000000100000000000005.99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999F +val value = 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999.5000000000000100000000000000f diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos/3.2.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos/3.2.txt new file mode 100644 index 00000000000..f62676d0db7 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos/3.2.txt @@ -0,0 +1,274 @@ +KtFile: 3.2.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.000000000000000000000000000000000000000000001f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0000000000000000000000000000000000000000000001f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.00000000000000000000000000000000000000000000123456789012345678901234567890123456789012345678901234567890F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('99999999999999999999999999999999999999999999999.0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('22222222222222222222222222222222222222222222222.0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('55555555555555555555555555555555555555555555555.0F') + PsiWhiteSpace('\n\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1.11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222.2F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333.33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333f') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2.44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444.3F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('5555555.55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555.0000000f') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('6000000.66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666.00000006f') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000000007.77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.7000000000F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000000000000000000000000008.88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888.8000000000000000000000000000f') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000000000000100000000000005.99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999.5000000000000100000000000000f') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg/1.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg/1.1.kt new file mode 100644 index 00000000000..04c10bc7269 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg/1.1.kt @@ -0,0 +1,38 @@ +/* + * KOTLIN PSI SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 2 + * SENTENCE: [1] The exponent is an exponent mark (e or E) followed by an optionaly signed decimal integer (a sequence of decimal digits). + * NUMBER: 1 + * DESCRIPTION: Real literals with not allowed several exponent marks. + */ + +val value = 0.0ee0 +val value = 0.0E-e-00 +val value = 0.0eE+000 +val value = 0.0e+e0000 + +val value = 00.0E++e0 +val value = 000.00e+E-00 +val value = 0000.000e-e000 + +val value = 1.0ee+1 +val value = 22.00eE22 +val value = 333.000ee-333 +val value = 4444.0000e+E+e4444 +val value = 55555.0eE-55555 +val value = 666666.00eeeeeeeee666666 +val value = 7777777.000e+E+e+E+e7777777 +val value = 88888888.0000eEeEeEe-88888888 +val value = 999999999.0EEEEEEEE+999999999 + +val value = 1.0ee+ +val value = 22.00eE +val value = 333.000ee- +val value = 4444.0000e+E+ +val value = 55555.0eE- +val value = 666666.00eeeeeeee +val value = 7777777.000e+E+e+E+e +val value = 88888888.0000eEeEeEe- +val value = 999999999.0EEEEEEEE+ diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg/1.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg/1.1.txt new file mode 100644 index 00000000000..6a59d933dd4 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg/1.1.txt @@ -0,0 +1,457 @@ +KtFile: 1.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e0') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0E-') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('E') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0e+') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e0000') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00.0E+') + OPERATION_REFERENCE + PsiElement(PLUS)('+') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000.00e+') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('E') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000.000e-') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e000') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1.0e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('22.00e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('E22') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('333.000e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('333') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('4444.0000e+') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('E') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e4444') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('55555.0e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('E') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('55555') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('666666.00e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('eeeeeeee666666') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7777777.000e+') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('E') + BINARY_EXPRESSION + BINARY_EXPRESSION + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e') + OPERATION_REFERENCE + PsiElement(PLUS)('+') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('E') + OPERATION_REFERENCE + PsiElement(PLUS)('+') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e7777777') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('88888888.0000e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('EeEeEe') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('88888888') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('999999999.0E') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('EEEEEEE') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('999999999') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1.0e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('22.00e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('E') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('333.000e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('4444.0000e+') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('E') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('55555.0e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('E') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('666666.00e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('eeeeeee') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7777777.000e+') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('E') + BINARY_EXPRESSION + BINARY_EXPRESSION + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e') + OPERATION_REFERENCE + PsiElement(PLUS)('+') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('E') + OPERATION_REFERENCE + PsiElement(PLUS)('+') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('88888888.0000e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('EeEeEe') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('999999999.0E') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('EEEEEEE') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + PsiErrorElement:Expecting an element + \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg/1.2.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg/1.2.kt new file mode 100644 index 00000000000..490a63fa239 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg/1.2.kt @@ -0,0 +1,38 @@ +/* + * KOTLIN PSI SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 2 + * SENTENCE: [1] The exponent is an exponent mark (e or E) followed by an optionaly signed decimal integer (a sequence of decimal digits). + * NUMBER: 2 + * DESCRIPTION: Real literals suffixed by f/F (the float suffix) with not allowed several exponent marks. + */ + +val value = 0.0ee0f +val value = 0.0E-e-00F +val value = 0.0eE+000f +val value = 0.0e+e0000F + +val value = 00.0E++e0f +val value = 000.00e+E-00f +val value = 0000.000e-e000f + +val value = 1.0ee+1F +val value = 22.00eE22F +val value = 333.000ee-333F +val value = 4444.0000e+E+e4444f +val value = 55555.0eE-55555f +val value = 666666.00eeeeeeeee666666f +val value = 7777777.000e+E+e+E+e7777777F +val value = 88888888.0000eEeEeEe-88888888f +val value = 999999999.0EEEEEEEE+999999999F + +val value = 1.0ee+f +val value = 22.00eEf +val value = 333.000ee-F +val value = 4444.0000e+E+f +val value = 55555.0eE-f +val value = 666666.00eeeeeeeeF +val value = 7777777.000e+E+e+E+eF +val value = 88888888.0000eEeEeEe-f +val value = 999999999.0EEEEEEEE+F diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg/1.2.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg/1.2.txt new file mode 100644 index 00000000000..ee63b393256 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg/1.2.txt @@ -0,0 +1,450 @@ +KtFile: 1.2.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e0f') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0E-') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('E') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0e+') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e0000F') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00.0E+') + OPERATION_REFERENCE + PsiElement(PLUS)('+') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000.00e+') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('E') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000.000e-') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e000f') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1.0e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('22.00e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('E22F') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('333.000e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('333F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('4444.0000e+') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('E') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e4444f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('55555.0e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('E') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('55555f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('666666.00e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('eeeeeeee666666f') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7777777.000e+') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('E') + BINARY_EXPRESSION + BINARY_EXPRESSION + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e') + OPERATION_REFERENCE + PsiElement(PLUS)('+') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('E') + OPERATION_REFERENCE + PsiElement(PLUS)('+') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e7777777F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('88888888.0000e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('EeEeEe') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('88888888f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('999999999.0E') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('EEEEEEE') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('999999999F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1.0e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('22.00e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('Ef') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('333.000e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('4444.0000e+') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('E') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('55555.0e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('E') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('666666.00e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('eeeeeeeF') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7777777.000e+') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('E') + BINARY_EXPRESSION + BINARY_EXPRESSION + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e') + OPERATION_REFERENCE + PsiElement(PLUS)('+') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('E') + OPERATION_REFERENCE + PsiElement(PLUS)('+') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('eF') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('88888888.0000e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('EeEeEe') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('999999999.0E') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('EEEEEEE') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('F') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg/1.3.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg/1.3.kt new file mode 100644 index 00000000000..babc2d6ca1c --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg/1.3.kt @@ -0,0 +1,25 @@ +/* + * KOTLIN PSI SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 2 + * SENTENCE: [1] The exponent is an exponent mark (e or E) followed by an optionaly signed decimal integer (a sequence of decimal digits). + * NUMBER: 3 + * DESCRIPTION: Real literals with a not allowed exponent mark with digits followed by a float suffix. + */ + +val value = 0.0fe10 +val value = 0.0F-e00 +val value = 0.0fEe+000 +val value = 0.0Fe+0000 + +val value = 00.0fe+0 +val value = 000.00Fe00 +val value = 0000.000fFEe-000 + +val value = 1.0Fe+1 +val value = 22.00ffee22 +val value = 333.000Fe-0 +val value = 4444.0000fFe4444 +val value = 55555.0Fee-55555 +val value = 666666.00FeE+666666 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg/1.3.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg/1.3.txt new file mode 100644 index 00000000000..11f1233245a --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg/1.3.txt @@ -0,0 +1,233 @@ +KtFile: 1.3.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0f') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e10') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0F') + OPERATION_REFERENCE + PsiElement(MINUS)('-') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e00') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0f') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('Ee') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0F') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00.0f') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000.00F') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e00') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000.000f') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('FEe') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1.0F') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('22.00f') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('fee22') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('333.000F') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('4444.0000f') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('Fe4444') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('55555.0F') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('ee') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('55555') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('666666.00F') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('eE') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('666666') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg/1.4.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg/1.4.kt new file mode 100644 index 00000000000..6749f45bb40 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg/1.4.kt @@ -0,0 +1,30 @@ +/* + * KOTLIN PSI SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 2 + * SENTENCE: [1] The exponent is an exponent mark (e or E) followed by an optionaly signed decimal integer (a sequence of decimal digits). + * NUMBER: 4 + * DESCRIPTION: Real literals with a not allowed digits and exponent mark followed by a float suffix. + */ + +val value = 0.0f00e0 + +val value = 00.0f0e-0 +val value = 000.00F9E9 +val value = 0000.000F0e1 + +val value = 1.0F0e +val value = 22.00F9e+f +val value = 333.000f5ef +val value = 4444.0000F1EF2EF3EF4EF5EF6EF7EF8EF9 +val value = 55555.0f7e+0F +val value = 666666.00F000000000000e-0000000000000 +val value = 7777777.000f9E0000000000000F +val value = 88888888.0000f2e+0000000000000 +val value = 999999999.0F4E+F + +val value = 7.888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888f8e+0 +val value = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f8e8 +val value = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0E0000001 +val value = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f6E010 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg/1.4.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg/1.4.txt new file mode 100644 index 00000000000..93ed43a8f36 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg/1.4.txt @@ -0,0 +1,216 @@ +KtFile: 1.4.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('00e0') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00.0f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('0e-0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000.00F') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('9E9') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000.000F') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('0e1') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1.0F') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('0e') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('22.00F') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('9e+f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('333.000f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('5ef') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('4444.0000F') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('1EF') + PsiElement(FLOAT_CONSTANT)('2EF') + PsiElement(FLOAT_CONSTANT)('3EF') + PsiElement(FLOAT_CONSTANT)('4EF') + PsiElement(FLOAT_CONSTANT)('5EF') + PsiElement(FLOAT_CONSTANT)('6EF') + PsiElement(FLOAT_CONSTANT)('7EF') + PsiElement(FLOAT_CONSTANT)('8EF') + PsiElement(INTEGER_LITERAL)('9') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('55555.0f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('7e+0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('666666.00F') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('000000000000e-0000000000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7777777.000f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('9E0000000000000F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('88888888.0000f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('2e+0000000000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('999999999.0F') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('4E+F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7.888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('8e+0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('8e8') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('0E0000001') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('6E010') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.1.kt new file mode 100644 index 00000000000..db814ae0bff --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.1.kt @@ -0,0 +1,54 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 2 + * SENTENCE: [1] The exponent is an exponent mark (e or E) followed by an optionaly signed decimal integer (a sequence of decimal digits). + * NUMBER: 1 + * DESCRIPTION: Simple real literals with an exponent mark. + */ + +val value = 0.0e0 +val value = 0.0e-00 +val value = 0.0E000 +val value = 0.0E+0000 + +val value = 00.0e+0 +val value = 000.00e00 +val value = 0000.000E-000 + +val value = 1.0E+1 +val value = 22.00e22 +val value = 333.000e-333 +val value = 4444.0000e4444 +val value = 55555.0E-55555 +val value = 666666.00e666666 +val value = 7777777.000E7777777 +val value = 88888888.0000e-88888888 +val value = 999999999.0E+999999999 + +val value = 0000000000.1234567890E999999999 +val value = 123456789.23456789E+123456789 +val value = 2345678.345678e00000000001 +val value = 34567.4567E-100000000000 +val value = 456.56e-0 +val value = 5.65e000000000000 +val value = 654.7654E+010 +val value = 76543.876543E1 +val value = 8765432.98765432e-2 +val value = 987654321.0987654321E-3 + +val value = 0.1111e4 +val value = 1.22222E-5 +val value = 9.33333e+6 +val value = 9.444444E7 +val value = 8.5555555e8 +val value = 2.66666666e308 +val value = 3.777777777E-308 +val value = 7.8888888888e+309 +val value = 6.99999999999e-309 + +val value = 7.888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888e+111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +val value = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +val value = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +val value = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.1.txt new file mode 100644 index 00000000000..a55a76705bf --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.1.txt @@ -0,0 +1,394 @@ +KtFile: 1.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0e0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0e-00') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0E000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0E+0000') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00.0e+0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000.00e00') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000.000E-000') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1.0E+1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('22.00e22') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('333.000e-333') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('4444.0000e4444') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('55555.0E-55555') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('666666.00e666666') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7777777.000E7777777') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('88888888.0000e-88888888') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('999999999.0E+999999999') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000000000.1234567890E999999999') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('123456789.23456789E+123456789') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2345678.345678e00000000001') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('34567.4567E-100000000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('456.56e-0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('5.65e000000000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('654.7654E+010') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('76543.876543E1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('8765432.98765432e-2') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('987654321.0987654321E-3') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.1111e4') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1.22222E-5') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9.33333e+6') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9.444444E7') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('8.5555555e8') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2.66666666e308') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('3.777777777E-308') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7.8888888888e+309') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('6.99999999999e-309') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7.888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888e+111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.2.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.2.kt new file mode 100644 index 00000000000..5f42868e564 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.2.kt @@ -0,0 +1,25 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 2 + * SENTENCE: [1] The exponent is an exponent mark (e or E) followed by an optionaly signed decimal integer (a sequence of decimal digits). + * NUMBER: 2 + * DESCRIPTION: Real literals with a not allowed exponent mark at the beginning. + */ + +val value = E0 +val value = e000 + +val value = E+0 +val value = e00 + +val value = e+1 +val value = e22 +val value = E-333 +val value = e4444 +val value = e-55555 +val value = e666666 +val value = E7777777 +val value = e-88888888 +val value = E+999999999 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.2.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.2.txt new file mode 100644 index 00000000000..1df7a581abb --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.2.txt @@ -0,0 +1,164 @@ +KtFile: 1.2.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('E0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e000') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('E') + OPERATION_REFERENCE + PsiElement(PLUS)('+') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e00') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e') + OPERATION_REFERENCE + PsiElement(PLUS)('+') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e22') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('E') + OPERATION_REFERENCE + PsiElement(MINUS)('-') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('333') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e4444') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e') + OPERATION_REFERENCE + PsiElement(MINUS)('-') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('55555') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e666666') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('E7777777') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e') + OPERATION_REFERENCE + PsiElement(MINUS)('-') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('88888888') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('E') + OPERATION_REFERENCE + PsiElement(PLUS)('+') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('999999999') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.3.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.3.kt new file mode 100644 index 00000000000..75470020160 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.3.kt @@ -0,0 +1,30 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 2 + * SENTENCE: [1] The exponent is an exponent mark (e or E) followed by an optionaly signed decimal integer (a sequence of decimal digits). + * NUMBER: 3 + * DESCRIPTION: Real literals without digits after an exponent mark. + */ + +val value = 0.0E + +val value = 00.0e +val value = 000.00e- +val value = 0000.000E+ + +val value = 1.0e +val value = 22.00E+ +val value = 333.000e +val value = 4444.0000E +val value = 55555.0e+ +val value = 666666.00E- +val value = 7777777.000e +val value = 88888888.0000e +val value = 999999999.0E- + +val value = 7.888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888e+ +val value = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e +val value = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e- +val value = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+ diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.3.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.3.txt new file mode 100644 index 00000000000..3d9180a9cac --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.3.txt @@ -0,0 +1,174 @@ +KtFile: 1.3.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0E') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00.0e') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000.00e-') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000.000E+') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1.0e') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('22.00E+') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('333.000e') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('4444.0000E') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('55555.0e+') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('666666.00E-') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7777777.000e') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('88888888.0000e') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('999999999.0E-') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7.888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888e+') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.4.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.4.kt new file mode 100644 index 00000000000..06783b8788a --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.4.kt @@ -0,0 +1,54 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 2 + * SENTENCE: [1] The exponent is an exponent mark (e or E) followed by an optionaly signed decimal integer (a sequence of decimal digits). + * NUMBER: 4 + * DESCRIPTION: Simple real literals suffixed by f/F (float suffix) with an exponent mark. + */ + +val value = 0.0e0f +val value = 0.0e-00F +val value = 0.0E000F +val value = 0.0E+0000f + +val value = 00.0e+0f +val value = 000.00e00f +val value = 0000.000E-000F + +val value = 1.0E+1F +val value = 22.00e22F +val value = 333.000e-333f +val value = 4444.0000e4444F +val value = 55555.0E-55555f +val value = 666666.00e666666f +val value = 7777777.000E7777777F +val value = 88888888.0000e-88888888f +val value = 999999999.0E+999999999F + +val value = 0000000000.1234567890E999999999f +val value = 123456789.23456789E+123456789f +val value = 2345678.345678e00000000001f +val value = 34567.4567E-100000000000F +val value = 456.56e-0F +val value = 5.65e000000000000F +val value = 654.7654E+010f +val value = 76543.876543E1F +val value = 8765432.98765432e-2f +val value = 987654321.0987654321E-3F + +val value = 0.1111e4F +val value = 1.22222E-5F +val value = 9.33333e+6f +val value = 9.444444E7F +val value = 8.5555555e8f +val value = 2.66666666e308f +val value = 3.777777777E-308f +val value = 7.8888888888e+309F +val value = 6.99999999999e-309f + +val value = 7.888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888e+111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f +val value = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F +val value = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f +val value = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.4.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.4.txt new file mode 100644 index 00000000000..ccc8b7cbd4e --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.4.txt @@ -0,0 +1,394 @@ +KtFile: 1.4.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0e0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0e-00F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0E000F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0E+0000f') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00.0e+0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000.00e00f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000.000E-000F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1.0E+1F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('22.00e22F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('333.000e-333f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('4444.0000e4444F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('55555.0E-55555f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('666666.00e666666f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7777777.000E7777777F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('88888888.0000e-88888888f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('999999999.0E+999999999F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000000000.1234567890E999999999f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('123456789.23456789E+123456789f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2345678.345678e00000000001f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('34567.4567E-100000000000F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('456.56e-0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('5.65e000000000000F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('654.7654E+010f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('76543.876543E1F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('8765432.98765432e-2f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('987654321.0987654321E-3F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.1111e4F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1.22222E-5F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9.33333e+6f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9.444444E7F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('8.5555555e8f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2.66666666e308f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('3.777777777E-308f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7.8888888888e+309F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('6.99999999999e-309f') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7.888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888e+111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.5.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.5.kt new file mode 100644 index 00000000000..2f086c6fde7 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.5.kt @@ -0,0 +1,25 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 2 + * SENTENCE: [1] The exponent is an exponent mark (e or E) followed by an optionaly signed decimal integer (a sequence of decimal digits). + * NUMBER: 5 + * DESCRIPTION: Real literals suffixed by f/F (float suffix) with a not allowed exponent mark at the beginning. + */ + +val value = E0f +val value = e000F + +val value = E+0f +val value = e00f + +val value = e+1F +val value = e22F +val value = E-333F +val value = e4444f +val value = e-55555f +val value = e666666F +val value = E7777777f +val value = e-88888888F +val value = E+999999999F diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.5.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.5.txt new file mode 100644 index 00000000000..094f26636ae --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.5.txt @@ -0,0 +1,164 @@ +KtFile: 1.5.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('E0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e000F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('E') + OPERATION_REFERENCE + PsiElement(PLUS)('+') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e00f') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e') + OPERATION_REFERENCE + PsiElement(PLUS)('+') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e22F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('E') + OPERATION_REFERENCE + PsiElement(MINUS)('-') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('333F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e4444f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e') + OPERATION_REFERENCE + PsiElement(MINUS)('-') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('55555f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e666666F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('E7777777f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e') + OPERATION_REFERENCE + PsiElement(MINUS)('-') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('88888888F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('E') + OPERATION_REFERENCE + PsiElement(PLUS)('+') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('999999999F') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.6.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.6.kt new file mode 100644 index 00000000000..b25c9215f1e --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.6.kt @@ -0,0 +1,30 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 2 + * SENTENCE: [1] The exponent is an exponent mark (e or E) followed by an optionaly signed decimal integer (a sequence of decimal digits). + * NUMBER: 6 + * DESCRIPTION: Real literals suffixed by f/F (float suffix) with an exponent mark without digits after it. + */ + +val value = 0.0EF + +val value = 00.0ef +val value = 000.00e-f +val value = 0000.000E+F + +val value = 1.0eF +val value = 22.00E+f +val value = 333.000ef +val value = 4444.0000Ef +val value = 55555.0e+F +val value = 666666.00E-F +val value = 7777777.000eF +val value = 88888888.0000ef +val value = 999999999.0E-F + +val value = 7.888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888e+f +val value = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eF +val value = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-f +val value = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+F diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.6.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.6.txt new file mode 100644 index 00000000000..36deb2d3f2f --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.6.txt @@ -0,0 +1,174 @@ +KtFile: 1.6.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0EF') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00.0ef') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000.00e-f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000.000E+F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1.0eF') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('22.00E+f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('333.000ef') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('4444.0000Ef') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('55555.0e+F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('666666.00E-F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7777777.000eF') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('88888888.0000ef') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('999999999.0E-F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7.888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888e+f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eF') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+F') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.1.kt new file mode 100644 index 00000000000..e6989b8bead --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.1.kt @@ -0,0 +1,24 @@ +/* + * KOTLIN PSI SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [1] The whole-number part and the exponent part may be omitted. + * NUMBER: 1 + * DESCRIPTION: Real literals consisting only of dots or many dots before digits. + */ + +val value = . +val value = .. +val value = ... +val value = ................................... + +val value = ..0 +val value = ...1000F +val value = ..1000e1 +val value = ...9E100F + +val value = ..00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F +val value = ..1E-99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 +val value = ..........0e+222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 +val value = ..555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555123456785012345678501234567850123456785012345678501234567850f diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.1.txt new file mode 100644 index 00000000000..53a899ff9da --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.1.txt @@ -0,0 +1,169 @@ +KtFile: 1.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiErrorElement:Expecting an expression + + PsiWhiteSpace(' ') + PsiErrorElement:Property getter or setter expected + PsiElement(DOT)('.') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiErrorElement:Expecting an expression + + PsiWhiteSpace(' ') + PsiErrorElement:Property getter or setter expected + PsiElement(RANGE)('..') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiErrorElement:Expecting an expression + + PsiWhiteSpace(' ') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiErrorElement:Expecting an expression + + PsiWhiteSpace(' ') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RANGE)('..') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiErrorElement:Expecting an expression + + PsiWhiteSpace(' ') + PsiErrorElement:Property getter or setter expected + PsiElement(RANGE)('..') + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiErrorElement:Expecting an expression + + PsiWhiteSpace(' ') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(FLOAT_CONSTANT)('1000F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiErrorElement:Expecting an expression + + PsiWhiteSpace(' ') + PsiErrorElement:Property getter or setter expected + PsiElement(RANGE)('..') + PsiElement(FLOAT_CONSTANT)('1000e1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiErrorElement:Expecting an expression + + PsiWhiteSpace(' ') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(FLOAT_CONSTANT)('9E100F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiErrorElement:Expecting an expression + + PsiWhiteSpace(' ') + PsiErrorElement:Property getter or setter expected + PsiElement(RANGE)('..') + PsiElement(FLOAT_CONSTANT)('00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiErrorElement:Expecting an expression + + PsiWhiteSpace(' ') + PsiErrorElement:Property getter or setter expected + PsiElement(RANGE)('..') + PsiElement(FLOAT_CONSTANT)('1E-99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiErrorElement:Expecting an expression + + PsiWhiteSpace(' ') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(RESERVED)('...') + PsiElement(FLOAT_CONSTANT)('.0e+222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiErrorElement:Expecting an expression + + PsiWhiteSpace(' ') + PsiErrorElement:Property getter or setter expected + PsiElement(RANGE)('..') + PsiElement(FLOAT_CONSTANT)('555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555123456785012345678501234567850123456785012345678501234567850f') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.2.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.2.kt new file mode 100644 index 00000000000..1867b7f5ebf --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.2.kt @@ -0,0 +1,19 @@ +/* + * KOTLIN PSI SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [1] The whole-number part and the exponent part may be omitted. + * NUMBER: 2 + * DESCRIPTION: Real literals with dots at the beginning and exponent mark/float suffix right after it. + */ + +val value = .f +val value = ..F +val value = .e10 +val value = .+e1 + +val value = ..-E10F +val value = ...+e000000F +val value = ..e1f1 +val value = ...E0000000000 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.2.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.2.txt new file mode 100644 index 00000000000..02db5d20314 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.2.txt @@ -0,0 +1,111 @@ +KtFile: 1.2.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiErrorElement:Expecting an expression + + PsiWhiteSpace(' ') + PsiErrorElement:Property getter or setter expected + PsiElement(DOT)('.') + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiErrorElement:Expecting an expression + + PsiWhiteSpace(' ') + PsiErrorElement:Property getter or setter expected + PsiElement(RANGE)('..') + PsiElement(IDENTIFIER)('F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiErrorElement:Expecting an expression + + PsiWhiteSpace(' ') + PsiErrorElement:Property getter or setter expected + PsiElement(DOT)('.') + PsiElement(IDENTIFIER)('e10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiErrorElement:Expecting an expression + + PsiWhiteSpace(' ') + PsiErrorElement:Property getter or setter expected + PsiElement(DOT)('.') + PsiElement(PLUS)('+') + PsiElement(IDENTIFIER)('e1') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiErrorElement:Expecting an expression + + PsiWhiteSpace(' ') + PsiErrorElement:Property getter or setter expected + PsiElement(RANGE)('..') + PsiElement(MINUS)('-') + PsiElement(IDENTIFIER)('E10F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiErrorElement:Expecting an expression + + PsiWhiteSpace(' ') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(PLUS)('+') + PsiElement(IDENTIFIER)('e000000F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiErrorElement:Expecting an expression + + PsiWhiteSpace(' ') + PsiErrorElement:Property getter or setter expected + PsiElement(RANGE)('..') + PsiElement(IDENTIFIER)('e1f1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiErrorElement:Expecting an expression + + PsiWhiteSpace(' ') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(IDENTIFIER)('E0000000000') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.3.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.3.kt new file mode 100644 index 00000000000..130257d4564 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.3.kt @@ -0,0 +1,38 @@ +/* + * KOTLIN PSI SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [1] The whole-number part and the exponent part may be omitted. + * NUMBER: 3 + * DESCRIPTION: Real literals suffixed by f/F (float suffix) with omitted whole-number part and not allowed several exponent marks. + */ + +val value = .0ee0 +val value = .0E-e-00F +val value = .0eE+000 +val value = .0e+e0000f + +val value = .0E++e0f +val value = .00e+E-00F +val value = .000e-e000 + +val value = .0ee+1 +val value = .00eE22 +val value = .000ee-333f +val value = .0000e+E+e4444 +val value = .0eE-55555 +val value = .00eeeeeeeee666666F +val value = .000e+E+e+E+e7777777 +val value = .0000eEeEeEe-88888888 +val value = .0EEEEEEEE+999999999 + +val value = .0ee+F +val value = .00eE +val value = .000ee-f +val value = .0000e+E+ +val value = .0eE-f +val value = .00eeeeeeeef +val value = .000e+E+e+E+e +val value = .0000eEeEeEe- +val value = .0EEEEEEEE+F diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.3.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.3.txt new file mode 100644 index 00000000000..c0405e56014 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.3.txt @@ -0,0 +1,453 @@ +KtFile: 1.3.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e0') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0E-') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('E') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0e+') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e0000f') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0E+') + OPERATION_REFERENCE + PsiElement(PLUS)('+') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00e+') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('E') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000e-') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e000') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('E22') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('333f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0000e+') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('E') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e4444') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('E') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('55555') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('eeeeeeee666666F') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000e+') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('E') + BINARY_EXPRESSION + BINARY_EXPRESSION + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e') + OPERATION_REFERENCE + PsiElement(PLUS)('+') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('E') + OPERATION_REFERENCE + PsiElement(PLUS)('+') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e7777777') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0000e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('EeEeEe') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('88888888') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0E') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('EEEEEEE') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('999999999') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('E') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0000e+') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('E') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('E') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('eeeeeeef') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000e+') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('E') + BINARY_EXPRESSION + BINARY_EXPRESSION + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e') + OPERATION_REFERENCE + PsiElement(PLUS)('+') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('E') + OPERATION_REFERENCE + PsiElement(PLUS)('+') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0000e') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('EeEeEe') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0E') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('EEEEEEE') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('F') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.4.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.4.kt new file mode 100644 index 00000000000..3bcded4efcf --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.4.kt @@ -0,0 +1,25 @@ +/* + * KOTLIN PSI SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [1] The whole-number part and the exponent part may be omitted. + * NUMBER: 4 + * DESCRIPTION: Real literals with omitted whole-number part and an exponent mark followed by a float suffix. + */ + +val value = .0fe10 +val value = .0F-e00 +val value = .0fEe+000 +val value = .0Fe+0000 + +val value = .0fe+0 +val value = .00Fe00 +val value = .000fFEe-000 + +val value = .0Fe+1 +val value = .00ffee22 +val value = .000Fe-0 +val value = .0000fFe4444 +val value = .0Fee-55555 +val value = .00FeE+666666 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.4.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.4.txt new file mode 100644 index 00000000000..b2309cbe51d --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.4.txt @@ -0,0 +1,233 @@ +KtFile: 1.4.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0f') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e10') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0F') + OPERATION_REFERENCE + PsiElement(MINUS)('-') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e00') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0f') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('Ee') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0F') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0f') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00F') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e00') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000f') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('FEe') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0F') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00f') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('fee22') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000F') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0000f') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('Fe4444') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0F') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('ee') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('55555') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00F') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('eE') + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(PLUS)('+') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('666666') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.5.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.5.kt new file mode 100644 index 00000000000..d570b5379dc --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.5.kt @@ -0,0 +1,30 @@ +/* + * KOTLIN PSI SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [1] The whole-number part and the exponent part may be omitted. + * NUMBER: 5 + * DESCRIPTION: Real literals with omitted whole-number part and an exponent mark followed by a float suffix and digits. + */ + +val value = .0f00e0 + +val value = .0f0e-0 +val value = .00F9E9 +val value = .000F0e1 + +val value = .0F0e +val value = .00F9e+f +val value = .000f5ef +val value = .0000F1EF2EF3EF4EF5EF6EF7EF8EF9 +val value = .0f7e+0F +val value = .00F000000000000e-0000000000000 +val value = .000f9E0000000000000F +val value = .0000f2e+0000000000000 +val value = .0F4E+F + +val value = .888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888f8e+0 +val value = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f8e8 +val value = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0E0000001 +val value = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f6E010 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.5.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.5.txt new file mode 100644 index 00000000000..f12a7f28304 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.5.txt @@ -0,0 +1,216 @@ +KtFile: 1.5.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('00e0') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('0e-0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00F') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('9E9') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000F') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('0e1') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0F') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('0e') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00F') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('9e+f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('5ef') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0000F') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('1EF') + PsiElement(FLOAT_CONSTANT)('2EF') + PsiElement(FLOAT_CONSTANT)('3EF') + PsiElement(FLOAT_CONSTANT)('4EF') + PsiElement(FLOAT_CONSTANT)('5EF') + PsiElement(FLOAT_CONSTANT)('6EF') + PsiElement(FLOAT_CONSTANT)('7EF') + PsiElement(FLOAT_CONSTANT)('8EF') + PsiElement(INTEGER_LITERAL)('9') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('7e+0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00F') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('000000000000e-0000000000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('9E0000000000000F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0000f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('2e+0000000000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0F') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('4E+F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('8e+0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('8e8') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('0E0000001') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('6E010') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/2.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/2.1.kt new file mode 100644 index 00000000000..8b0c7943d52 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/2.1.kt @@ -0,0 +1,25 @@ +/* + * KOTLIN PSI SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [2] The fraction part may be omitted only together with the decimal point, if the whole-number part and either the exponent part or the type suffix are present. + * NUMBER: 1 + * DESCRIPTION: Real literals with omitted fraction part and digits followed by a float suffix. + */ + +val value = 1F0 +val value = 22f1019230912904 +val value = 333e-00000000000F12903490 +val value = 4444E-99999999999999999f000000000000000000 +val value = 7777777e09090909090F0 +val value = 88888888e-1f1 +val value = 999999999EF0 + +val value = 123456789e987654321F999999999999999999999 +val value = 2345678E0f0 +val value = 5e50501f011 +val value = 654e5F10 +val value = 76543f00000 +val value = 8765432F010 +val value = 987654321f100 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/2.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/2.1.txt new file mode 100644 index 00000000000..a6b6916eb42 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/2.1.txt @@ -0,0 +1,195 @@ +KtFile: 2.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1F') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('22f') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('1019230912904') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('333e-00000000000F') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('12903490') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('4444E-99999999999999999f') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7777777e09090909090F') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('88888888e-1f') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('999999999EF') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('123456789e987654321F') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('999999999999999999999') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2345678E0f') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('5e50501f') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('11') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('654e5F') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('76543f') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('8765432F') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('987654321f') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('100') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/3.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/3.1.kt new file mode 100644 index 00000000000..1f7a69b99a1 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/3.1.kt @@ -0,0 +1,39 @@ +/* + * KOTLIN PSI SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [3] Unlike other languages, Kotlin does not support omitting the fraction part, but leaving the decimal point in. + * NUMBER: 1 + * DESCRIPTION: Real literals with a not allowed dot at the end. + */ + +val value = 0. +val value = 00. +val value = 000. +val value = 0000. + +val value = 0. +val value = 1. +val value = 2. +val value = 3. +val value = 4. +val value = 5. +val value = 6. +val value = 7. +val value = 8. + +val value = 1. +val value = 22. +val value = 333. +val value = 4444. +val value = 55555. +val value = 666666. +val value = 7777777. +val value = 88888888. +val value = 999999999. + +val value = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000. +val value = 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999. +val value = 222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222. +val value = 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555123456785012345678501234567850123456785012345678501234567850. diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/3.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/3.1.txt new file mode 100644 index 00000000000..4048fedc7cf --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/3.1.txt @@ -0,0 +1,673 @@ +KtFile: 3.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(DOT)('.') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(DOT)('.') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(DOT)('.') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('2') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('3') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('4') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('5') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('6') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('7') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('8') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('22') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('333') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('4444') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('55555') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('666666') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('7777777') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('88888888') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('999999999') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(DOT)('.') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555123456785012345678501234567850123456785012345678501234567850') + PsiElement(DOT)('.') + PsiErrorElement:Expecting an element + \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.1.kt new file mode 100644 index 00000000000..d82edba1754 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.1.kt @@ -0,0 +1,43 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [1] The whole-number part and the exponent part may be omitted. + * NUMBER: 1 + * DESCRIPTION: Simple real literals with omitted a whole-number part. + */ + +val value = .0 +val value = .00 +val value = .000 +val value = .0000 + +val value = .1234567890 +val value = .23456789 +val value = .345678 +val value = .4567 +val value = .56 +val value = .65 +val value = .7654 +val value = .876543 +val value = .98765432 +val value = .0987654321 + +val value = .1111 +val value = .22222 +val value = .33333 +val value = .444444 +val value = .5555555 +val value = .66666666 +val value = .777777777 +val value = .8888888888 +val value = .99999999999 + +val value = .00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +val value = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +val value = .0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456789012345678901234567890123456789012345678901234567890 + +val value = .44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444441 +val value = .777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777771 +val value = .9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999123456789912345678991234567899123456789912345678991234567899 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.1.txt new file mode 100644 index 00000000000..2a753b6888e --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.1.txt @@ -0,0 +1,294 @@ +KtFile: 1.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0000') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.1234567890') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.23456789') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.345678') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.4567') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.56') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.65') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.7654') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.876543') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.98765432') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0987654321') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.1111') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.22222') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.33333') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.444444') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.5555555') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.66666666') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.777777777') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.8888888888') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.99999999999') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456789012345678901234567890123456789012345678901234567890') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444441') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777771') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999123456789912345678991234567899123456789912345678991234567899') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.2.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.2.kt new file mode 100644 index 00000000000..9a6c1a09a4a --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.2.kt @@ -0,0 +1,40 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [1] The whole-number part and the exponent part may be omitted. + * NUMBER: 2 + * DESCRIPTION: Real literals with omitted a whole-number part and an exponent mark. + */ + +val value = .0e0 +val value = .0e-00 +val value = .0E000 +val value = .0E+0000 + +val value = .0E+1 +val value = .00e22 +val value = .000e-333 +val value = .0000e4444 +val value = .0E-55555 +val value = .00e666666 +val value = .000E7777777 +val value = .0000e-88888888 +val value = .0E+999999999 + +val value = .1234567890E999999999 +val value = .23456789E+123456789 +val value = .345678e00000000001 +val value = .4567E-100000000000 +val value = .56e-0 +val value = .65e000000000000 +val value = .7654E+010 +val value = .876543E1 +val value = .98765432e-2 +val value = .0987654321E-3 + +val value = .888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888e+111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +val value = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +val value = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +val value = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.2.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.2.txt new file mode 100644 index 00000000000..426fa63969d --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.2.txt @@ -0,0 +1,274 @@ +KtFile: 1.2.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0e0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0e-00') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0E000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0E+0000') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0E+1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00e22') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000e-333') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0000e4444') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0E-55555') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00e666666') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000E7777777') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0000e-88888888') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0E+999999999') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.1234567890E999999999') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.23456789E+123456789') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.345678e00000000001') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.4567E-100000000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.56e-0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.65e000000000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.7654E+010') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.876543E1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.98765432e-2') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0987654321E-3') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888e+111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.3.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.3.kt new file mode 100644 index 00000000000..f85c746ce27 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.3.kt @@ -0,0 +1,29 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [1] The whole-number part and the exponent part may be omitted. + * NUMBER: 3 + * DESCRIPTION: Real literals with omitted a whole-number part and an exponent mark without digits after it. + */ + +val value = .0E +val value = .0e +val value = .00e- +val value = .000E+ + +val value = .0e +val value = .00E+ +val value = .000e +val value = .0000E +val value = .0e+ +val value = .00E- +val value = .000e +val value = .0000e +val value = .0E- + +val value = .888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888e+ +val value = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e +val value = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e- +val value = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+ diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.3.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.3.txt new file mode 100644 index 00000000000..d37fdc520c0 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.3.txt @@ -0,0 +1,174 @@ +KtFile: 1.3.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0E') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0e') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00e-') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000E+') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0e') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00E+') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000e') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0000E') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0e+') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00E-') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000e') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0000e') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0E-') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888e+') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.4.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.4.kt new file mode 100644 index 00000000000..ed89deb927c --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.4.kt @@ -0,0 +1,44 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [1] The whole-number part and the exponent part may be omitted. + * NUMBER: 4 + * DESCRIPTION: Simple real literals suffixed by f/F (float suffix) with omitted a whole-number part. + */ + +val value = .0F +val value = .00f +val value = .000f +val value = .0000F + +val value = .1234567890F +val value = .23456789F +val value = .345678F +val value = .4567f +val value = .56f +val value = .65F +val value = .7654f +val value = .876543f +val value = .98765432F +val value = .0987654321F + +val value = .1111F +val value = .22222f +val value = .33333f +val value = .444444F +val value = .5555555f +val value = .66666666F +val value = .777777777f +val value = .8888888888f +val value = .99999999999F + +val value = .00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f +val value = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001F +val value = .0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456789012345678901234567890123456789012345678901234567890f + +val value = .44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444441f +val value = .777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777771f +val value = .9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999123456789912345678991234567899123456789912345678991234567899F + diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.4.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.4.txt new file mode 100644 index 00000000000..7990cbb131c --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.4.txt @@ -0,0 +1,294 @@ +KtFile: 1.4.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0000F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.1234567890F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.23456789F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.345678F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.4567f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.56f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.65F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.7654f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.876543f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.98765432F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0987654321F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.1111F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.22222f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.33333f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.444444F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.5555555f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.66666666F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.777777777f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.8888888888f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.99999999999F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456789012345678901234567890123456789012345678901234567890f') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444441f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777771f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999123456789912345678991234567899123456789912345678991234567899F') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.5.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.5.kt new file mode 100644 index 00000000000..c5dd2f38c51 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.5.kt @@ -0,0 +1,53 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [1] The whole-number part and the exponent part may be omitted. + * NUMBER: 5 + * DESCRIPTION: Real literals suffixed by f/F (float suffix) with omitted a whole-number part and an exponent mark. + */ + +val value = .0e0f +val value = .0e-00F +val value = .0E000F +val value = .0E+0000f +val value = .0e+0f +val value = .00e00f +val value = .000E-000F + +val value = .0E+1F +val value = .00e22F +val value = .000e-333f +val value = .0000e4444F +val value = .0E-55555f +val value = .00e666666f +val value = .000E7777777F +val value = .0000e-88888888f +val value = .0E+999999999F + +val value = .1234567890E999999999f +val value = .23456789E+123456789f +val value = .345678e00000000001f +val value = .4567E-100000000000F +val value = .56e-0F +val value = .65e000000000000F +val value = .7654E+010f +val value = .876543E1F +val value = .98765432e-2f +val value = .0987654321E-3F + +val value = .1111e4F +val value = .22222E-5F +val value = .33333e+6f +val value = .444444E7F +val value = .5555555e8f +val value = .66666666e308f +val value = .777777777E-308f +val value = .8888888888e+309F +val value = .99999999999e-309f + +val value = .888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888e+111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f +val value = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F +val value = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f +val value = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.5.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.5.txt new file mode 100644 index 00000000000..b9088298dce --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.5.txt @@ -0,0 +1,394 @@ +KtFile: 1.5.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0e0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0e-00F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0E000F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0E+0000f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0e+0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00e00f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000E-000F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0E+1F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00e22F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000e-333f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0000e4444F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0E-55555f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00e666666f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000E7777777F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0000e-88888888f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0E+999999999F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.1234567890E999999999f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.23456789E+123456789f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.345678e00000000001f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.4567E-100000000000F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.56e-0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.65e000000000000F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.7654E+010f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.876543E1F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.98765432e-2f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0987654321E-3F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.1111e4F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.22222E-5F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.33333e+6f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.444444E7F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.5555555e8f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.66666666e308f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.777777777E-308f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.8888888888e+309F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.99999999999e-309f') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888e+111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.6.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.6.kt new file mode 100644 index 00000000000..6043501f0ac --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.6.kt @@ -0,0 +1,29 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [1] The whole-number part and the exponent part may be omitted. + * NUMBER: 6 + * DESCRIPTION: Real literals with omitted a whole-number part, suffixed by f/F (float suffix) followed by an exponent mark without digits. + */ + +val value = .0EF +val value = .0ef +val value = .00e-f +val value = .000E+F + +val value = .0eF +val value = .00E+f +val value = .000ef +val value = .0000Ef +val value = .0e+F +val value = .00E-F +val value = .000eF +val value = .0000ef +val value = .0E-F + +val value = .888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888e+f +val value = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eF +val value = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-f +val value = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+F diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.6.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.6.txt new file mode 100644 index 00000000000..e27518d52b8 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.6.txt @@ -0,0 +1,174 @@ +KtFile: 1.6.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0EF') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0ef') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00e-f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000E+F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0eF') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00E+f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000ef') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0000Ef') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0e+F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00E-F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000eF') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0000ef') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0E-F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888e+f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eF') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+F') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/2.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/2.1.kt new file mode 100644 index 00000000000..5944401deff --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/2.1.kt @@ -0,0 +1,35 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [2] The fraction part may be omitted only together with the decimal point, if the whole-number part and either the exponent part or the type suffix are present. + * NUMBER: 1 + * DESCRIPTION: Simple real literals with omitted a fraction part, suffixed by f/F (float suffix). + */ + +val value = 0F +val value = 00F +val value = 000f +val value = 0000F +val value = 00000000000000000000000000000000000000f + +val value = 1f +val value = 22f +val value = 333F +val value = 4444f +val value = 55555F +val value = 666666f +val value = 7777777f +val value = 88888888F +val value = 999999999F + +val value = 123456789f +val value = 2345678F +val value = 34567F +val value = 456F +val value = 5f +val value = 654F +val value = 76543F +val value = 8765432f +val value = 987654321F diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/2.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/2.1.txt new file mode 100644 index 00000000000..e3a8d9f097f --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/2.1.txt @@ -0,0 +1,234 @@ +KtFile: 2.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00000000000000000000000000000000000000f') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('22f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('333F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('4444f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('55555F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('666666f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7777777f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('88888888F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('999999999F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('123456789f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2345678F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('34567F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('456F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('5f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('654F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('76543F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('8765432f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('987654321F') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/2.2.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/2.2.kt new file mode 100644 index 00000000000..456027fc097 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/2.2.kt @@ -0,0 +1,35 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [2] The fraction part may be omitted only together with the decimal point, if the whole-number part and either the exponent part or the type suffix are present. + * NUMBER: 2 + * DESCRIPTION: Real literals with omitted a fraction part and an exponent mark. + */ + +val value = 0e0 +val value = 00e00 +val value = 000E-10 +val value = 0000e+00000000000 +val value = 00000000000000000000000000000000000000E1 + +val value = 1e1 +val value = 22E-1 +val value = 333e-00000000000 +val value = 4444E-99999999999999999 +val value = 55555e10 +val value = 666666E00010 +val value = 7777777e09090909090 +val value = 88888888e1234567890 +val value = 999999999E1234567890 + +val value = 123456789e987654321 +val value = 2345678E0 +val value = 34567E+010 +val value = 456e-09876543210 +val value = 5e505 +val value = 654e5 +val value = 76543E-91823 +val value = 8765432e+90 +val value = 987654321e-1 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/2.2.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/2.2.txt new file mode 100644 index 00000000000..f08f1171410 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/2.2.txt @@ -0,0 +1,234 @@ +KtFile: 2.2.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0e0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00e00') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000E-10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000e+00000000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00000000000000000000000000000000000000E1') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1e1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('22E-1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('333e-00000000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('4444E-99999999999999999') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('55555e10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('666666E00010') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7777777e09090909090') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('88888888e1234567890') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('999999999E1234567890') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('123456789e987654321') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2345678E0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('34567E+010') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('456e-09876543210') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('5e505') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('654e5') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('76543E-91823') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('8765432e+90') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('987654321e-1') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/2.3.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/2.3.kt new file mode 100644 index 00000000000..02ca983c188 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/2.3.kt @@ -0,0 +1,35 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [2] The fraction part may be omitted only together with the decimal point, if the whole-number part and either the exponent part or the type suffix are present. + * NUMBER: 3 + * DESCRIPTION: Real literals with omitted a fraction part and an exponent mark, suffixed by f/F (float suffix). + */ + +val value = 0e0f +val value = 00e00F +val value = 000E-10f +val value = 0000e+00000000000f +val value = 00000000000000000000000000000000000000E1F + +val value = 1e1F +val value = 22E-1f +val value = 333e-00000000000F +val value = 4444E-99999999999999999f +val value = 55555e10f +val value = 666666E00010F +val value = 7777777e+09090909090F +val value = 88888888e1234567890F +val value = 999999999E1234567890f + +val value = 123456789e987654321F +val value = 2345678E0f +val value = 34567E+010f +val value = 456e-09876543210F +val value = 5e505f +val value = 654e5F +val value = 76543E-91823f +val value = 8765432e+90F +val value = 987654321e-1f diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/2.3.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/2.3.txt new file mode 100644 index 00000000000..b7b5e346e3e --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/2.3.txt @@ -0,0 +1,234 @@ +KtFile: 2.3.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0e0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00e00F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000E-10f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000e+00000000000f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00000000000000000000000000000000000000E1F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1e1F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('22E-1f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('333e-00000000000F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('4444E-99999999999999999f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('55555e10f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('666666E00010F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7777777e+09090909090F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('88888888e1234567890F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('999999999E1234567890f') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('123456789e987654321F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2345678E0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('34567E+010f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('456e-09876543210F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('5e505f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('654e5F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('76543E-91823f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('8765432e+90F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('987654321e-1f') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/2.4.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/2.4.kt new file mode 100644 index 00000000000..862c3d69562 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/2.4.kt @@ -0,0 +1,19 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 3 + * SENTENCE: [2] The fraction part may be omitted only together with the decimal point, if the whole-number part and either the exponent part or the type suffix are present. + * NUMBER: 4 + * DESCRIPTION: Real literals with omitted a fraction part and an exponent mark without digits after it. + */ + +val value = 0e +val value = 00e- +val value = 000E+ +val value = 0000e+ +val value = 00000000000000000000000000000000000000E +val value = 34567E+ +val value = 456e- +val value = 55555e+f +val value = 666666E-F diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/2.4.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/2.4.txt new file mode 100644 index 00000000000..d0637ae84b5 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/2.4.txt @@ -0,0 +1,94 @@ +KtFile: 2.4.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0e') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00e-') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000E+') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000e+') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00000000000000000000000000000000000000E') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('34567E+') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('456e-') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('55555e+f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('666666E-F') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg/1.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg/1.1.kt new file mode 100644 index 00000000000..136e8b1c7ea --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg/1.1.kt @@ -0,0 +1,41 @@ +/* + * KOTLIN PSI SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 4 + * SENTENCE: [1] The digits of the whole-number part or the fraction part or the exponent may be optionally separated by underscores, but an underscore may not be placed between, before, or after these parts. + * NUMBER: 1 + * DESCRIPTION: Real literals with a not allowed underscore at the beginning. + */ + +val value = _.0_0f +val value = _.0__0___0e1 +val value = _.0_0__0_0f + +val value = _.0 +val value = _.0______0 +val value = _______________00.0_0_0F + +val value = _001.0_0e10f +val value = _4.33__3.00__0E-10 +val value = __4_44____4.00______00E0 +val value = _________555_________5.0E-0 +val value = _666_666.0_____________________________________________________________________________________________________________________0e-0000000f +val value = ____.0_0_0F +val value = _8888888_8.0000 +val value = _______9______9_____9____9___9__9_9.0f + +val value = _0_0_0_0_0_0_0_0_0.1234567890 +val value = _9e-10 +val value = ___234_5_678.345______________678E+000001000000____ +val value = ___3_456_7.4567E +val value = _456.5_6F +val value = _5.6_5 +val value = ___6_54.7654e-0 +val value = _7_6543.87654_3E+ +val value = _____________________876543_____________2.9_____________8765432E-1100F +val value = _0_9_____________87654321.098765432_____________1ef + +val value = _000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_0F +val value = _______________0_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-10 +val value = ___9999999999999999999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_33333333333333333333333333333333333333333E0 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg/1.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg/1.1.txt new file mode 100644 index 00000000000..0f34fe8bd96 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg/1.1.txt @@ -0,0 +1,332 @@ +KtFile: 1.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0_0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0__0___0e1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0_0__0_0f') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0______0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_______________00') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0_0_0F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_001') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0_0e10f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_4') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.33__3') + PsiElement(FLOAT_CONSTANT)('.00__0E-10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('__4_44____4') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.00______00E0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_________555_________5') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0E-0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_666_666') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0_____________________________________________________________________________________________________________________0e-0000000f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('____') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0_0_0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_8888888_8') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_______9______9_____9____9___9__9_9') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0f') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_0_0_0_0_0_0_0_0_0') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.1234567890') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_9e') + OPERATION_REFERENCE + PsiElement(MINUS)('-') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('___234_5_678') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.345______________678E+000001000000____') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('___3_456_7') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.4567E') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_456') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.5_6F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_5') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.6_5') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('___6_54') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.7654e-0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_7_6543') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.87654_3E+') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_____________________876543_____________2') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.9_____________8765432E-1100F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_0_9_____________87654321') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.098765432_____________1ef') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_______________0_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('___9999999999999999999999999999999999999999999_______________999999999999999999999999999999999999999999999') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.33333333333333333333333333333333333333333333333_33333333333333333333333333333333333333333E0') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg/1.2.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg/1.2.kt new file mode 100644 index 00000000000..5ad5585c467 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg/1.2.kt @@ -0,0 +1,41 @@ +/* + * KOTLIN PSI SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 4 + * SENTENCE: [1] The digits of the whole-number part or the fraction part or the exponent may be optionally separated by underscores, but an underscore may not be placed between, before, or after these parts. + * NUMBER: 2 + * DESCRIPTION: Real literals with dots separated by underscores. + */ + +val value = _._.0_0f +val value = ._.0__0___0e1 +val value = ....0_0__0_0f + +val value = .._0 +val value = .______.0______0 +val value = _______.________00.0_0_0F + +val value = _001.._.0_0e10f +val value = _4_.___.33__3.00__0E-10 +val value = __4_._44_.__._4.00___.___00E0 +val value = ____._____5.5.5_________5.0E-0 +val value = _._666_666.0____________.__________________________________________________________________________________________________________0e-0000000f +val value = ____._.0_0__.0F +val value = _.8_.8_.8_.8_.8_.8_.8_.8_.0000 +val value = .____.____9____.___9_____9____9___9__9_9.0f + +val value = _0_0_0_.0_0_0_0_0_0._.1234567890 +val value = ._9e-._10 +val value = __._234_.5_678.345______________678E+000001000000____ +val value = _._._3_456_7.4567E +val value = _456.5_6F +val value = _5.6_.0.5 +val value = ___6_54.7654e-0_.0 +val value = _7_6543.87654_3E+ +val value = ___._________._________876543_____________2.9_____________8765.432E-1100F +val value = _.0_.9_____________87654321.098765432_____________1ef + +val value = _.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_0F +val value = _______________0._.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-10 +val value = ___99999999999999999999.99999999999999999999999_______.________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_33333333333333333333333333333333333333333E0 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg/1.2.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg/1.2.txt new file mode 100644 index 00000000000..54a8384ce67 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg/1.2.txt @@ -0,0 +1,442 @@ +KtFile: 1.2.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0_0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiErrorElement:Expecting an expression + + PsiWhiteSpace(' ') + PsiErrorElement:Property getter or setter expected + PsiElement(DOT)('.') + PsiElement(IDENTIFIER)('_') + PsiElement(FLOAT_CONSTANT)('.0__0___0e1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiErrorElement:Expecting an expression + + PsiWhiteSpace(' ') + PsiErrorElement:Property getter or setter expected + PsiElement(RESERVED)('...') + PsiElement(FLOAT_CONSTANT)('.0_0__0_0f') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiErrorElement:Expecting an expression + + PsiWhiteSpace(' ') + PsiErrorElement:Property getter or setter expected + PsiElement(RANGE)('..') + PsiElement(IDENTIFIER)('_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiErrorElement:Expecting an expression + + PsiWhiteSpace(' ') + PsiErrorElement:Property getter or setter expected + PsiElement(DOT)('.') + PsiElement(IDENTIFIER)('______') + PsiElement(FLOAT_CONSTANT)('.0______0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_______') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('________00') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0_0_0F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_001') + OPERATION_REFERENCE + PsiElement(RANGE)('..') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0_0e10f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_4_') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('___') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.33__3') + PsiElement(FLOAT_CONSTANT)('.00__0E-10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + DOT_QUALIFIED_EXPRESSION + DOT_QUALIFIED_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('__4_') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_44_') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('__') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_4') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.00___') + PsiElement(DOT)('.') + PsiElement(IDENTIFIER)('___00E0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('____') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_____5') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.5') + PsiElement(FLOAT_CONSTANT)('.5_________5') + PsiElement(FLOAT_CONSTANT)('.0E-0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_666_666') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0____________') + PsiElement(DOT)('.') + PsiElement(IDENTIFIER)('__________________________________________________________________________________________________________0e') + PsiElement(MINUS)('-') + PsiElement(FLOAT_CONSTANT)('0000000f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('____') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0_0__') + PsiElement(FLOAT_CONSTANT)('.0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.8_') + PsiElement(FLOAT_CONSTANT)('.8_') + PsiElement(FLOAT_CONSTANT)('.8_') + PsiElement(FLOAT_CONSTANT)('.8_') + PsiElement(FLOAT_CONSTANT)('.8_') + PsiElement(FLOAT_CONSTANT)('.8_') + PsiElement(FLOAT_CONSTANT)('.8_') + PsiElement(FLOAT_CONSTANT)('.8_') + PsiElement(FLOAT_CONSTANT)('.0000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiErrorElement:Expecting an expression + + PsiWhiteSpace(' ') + PsiErrorElement:Property getter or setter expected + PsiElement(DOT)('.') + PsiElement(IDENTIFIER)('____') + PsiElement(DOT)('.') + PsiElement(IDENTIFIER)('____9____') + PsiElement(DOT)('.') + PsiElement(IDENTIFIER)('___9_____9____9___9__9_9') + PsiElement(FLOAT_CONSTANT)('.0f') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_0_0_0_') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0_0_0_0_0_0') + PsiElement(DOT)('.') + PsiElement(IDENTIFIER)('_') + PsiElement(FLOAT_CONSTANT)('.1234567890') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiErrorElement:Expecting an expression + + PsiWhiteSpace(' ') + PsiErrorElement:Property getter or setter expected + PsiElement(DOT)('.') + PsiElement(IDENTIFIER)('_9e') + PsiElement(MINUS)('-') + PsiElement(DOT)('.') + PsiElement(IDENTIFIER)('_10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('__') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_234_') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.5_678') + PsiElement(FLOAT_CONSTANT)('.345______________678E+000001000000____') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + DOT_QUALIFIED_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_3_456_7') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.4567E') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_456') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.5_6F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_5') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.6_') + PsiElement(FLOAT_CONSTANT)('.0') + PsiElement(FLOAT_CONSTANT)('.5') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('___6_54') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.7654e-0_') + PsiElement(FLOAT_CONSTANT)('.0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_7_6543') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.87654_3E+') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + DOT_QUALIFIED_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('___') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_________') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_________876543_____________2') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.9_____________8765') + PsiElement(FLOAT_CONSTANT)('.432E-1100F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.0_') + PsiElement(FLOAT_CONSTANT)('.9_____________87654321') + PsiElement(FLOAT_CONSTANT)('.098765432_____________1ef') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0') + PsiElement(FLOAT_CONSTANT)('.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_______________0') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') + PsiElement(FLOAT_CONSTANT)('.0___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('___99999999999999999999') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('.99999999999999999999999_______') + PsiElement(DOT)('.') + PsiElement(IDENTIFIER)('________999999999999999999999999999999999999999999999') + PsiElement(FLOAT_CONSTANT)('.33333333333333333333333333333333333333333333333_33333333333333333333333333333333333333333E0') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg/1.3.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg/1.3.kt new file mode 100644 index 00000000000..bc1de3fb46d --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg/1.3.kt @@ -0,0 +1,30 @@ +/* + * KOTLIN PSI SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 4 + * SENTENCE: [1] The digits of the whole-number part or the fraction part or the exponent may be optionally separated by underscores, but an underscore may not be placed between, before, or after these parts. + * NUMBER: 3 + * DESCRIPTION: Real literals with float suffix not at the end and underscores at the different positions. + */ + +val value = 0_0.0f0____0e0 + +val value = .0f0_0e-0 +val value = 2_2.0_0F9E9 +val value = .0_0_0F0e1 + +val value = 1.0F1____0e +val value = .0___0F9e+f +val value = 2________000.00________0f5ef +val value = .0_0_0_0F1EF2EF3EF4EF5EF6EF7EF8EF9 +val value = 0________1.0f7e+0_0F +val value = .00F00000_____0000000e-000000000000_0 +val value = 000_0000.000f9E0_00000000000_0F +val value = .0__00__0f2e+0__00000000000__0 +val value = .0__0F4E+F + +val value = .8____8888888888____888888888888888888888888888____888888888888888____88888888888888888888____88888888888888____88888888888888888888888888888____88888888888888888888888888____8888888888888888888888____8888888888888888f8e+0 +val value = .00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0f8e8_____0 +val value = 00000_____1123123.00000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0E000000_____1 +val value = .0__00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f6E0____10 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg/1.3.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg/1.3.txt new file mode 100644 index 00000000000..1bb8d084815 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg/1.3.txt @@ -0,0 +1,216 @@ +KtFile: 1.3.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_0.0f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('0____0e0') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('0_0e-0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2_2.0_0F') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('9E9') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0_0_0F') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('0e1') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1.0F') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('1____0e') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0___0F') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('9e+f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2________000.00________0f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('5ef') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0_0_0_0F') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('1EF') + PsiElement(FLOAT_CONSTANT)('2EF') + PsiElement(FLOAT_CONSTANT)('3EF') + PsiElement(FLOAT_CONSTANT)('4EF') + PsiElement(FLOAT_CONSTANT)('5EF') + PsiElement(FLOAT_CONSTANT)('6EF') + PsiElement(FLOAT_CONSTANT)('7EF') + PsiElement(FLOAT_CONSTANT)('8EF') + PsiElement(INTEGER_LITERAL)('9') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0________1.0f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('7e+0_0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00F') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('00000_____0000000e-000000000000_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000_0000.000f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('9E0_00000000000_0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0__00__0f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('2e+0__00000000000__0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0__0F') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('4E+F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.8____8888888888____888888888888888888888888888____888888888888888____88888888888888888888____88888888888888____88888888888888888888888888888____88888888888888888888888888____8888888888888888888888____8888888888888888f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('8e+0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('8e8_____0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00000_____1123123.00000000000000000000000000000000000000000000000000000000000000000000000___0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('0E000000_____1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0__00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f') + PsiErrorElement:Property getter or setter expected + PsiElement(FLOAT_CONSTANT)('6E0____10') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg/1.4.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg/1.4.kt new file mode 100644 index 00000000000..ee678872a30 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg/1.4.kt @@ -0,0 +1,25 @@ +/* + * KOTLIN PSI SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 4 + * SENTENCE: [1] The digits of the whole-number part or the fraction part or the exponent may be optionally separated by underscores, but an underscore may not be placed between, before, or after these parts. + * NUMBER: 4 + * DESCRIPTION: Real literals with omitted whole-number part, float suffix not at the end and underscores at the different positions. + */ + +val value = 1F0_0 +val value = 22f1_01923___091290_4 +val value = 333e-0_0000000000F1_2903490 +val value = 4_4_4_4E-9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9f0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0 +val value = 777777_______________7e0_909090_9_0_9_0F0 +val value = 8888_______________8888e-1f1_______________0 +val value = 99______999______99______99EF0 + +val value = 123______4567______9e9876______54321F9______9999______99999______999999______99999 +val value = 2__3__4__5__6__7__8E0f0 +val value = 5e50__501f01__1 +val value = 6__54e5F10 +val value = 765__43f00__000 +val value = 8__765__432F010 +val value = 9__8765__4321f1__00 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg/1.4.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg/1.4.txt new file mode 100644 index 00000000000..a8e8ae84286 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg/1.4.txt @@ -0,0 +1,178 @@ +KtFile: 1.4.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1F') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(IDENTIFIER)('_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('22f') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('1_01923___091290_4') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('333e-0_0000000000F') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('1_2903490') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('4_4_4_4E-9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9f') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(IDENTIFIER)('_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('777777_______________7e0_909090_9_0_9_0F') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('8888_______________8888e-1f') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('1_______________0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('99______999______99______99EF') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('123______4567______9e9876______54321F') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('9______9999______99999______999999______99999') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2__3__4__5__6__7__8E0f') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('5e50__501f') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('1__1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('6__54e5F') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('765__43f') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(IDENTIFIER)('__000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('8__765__432F') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9__8765__4321f') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('1__00') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.1.kt new file mode 100644 index 00000000000..dd5b11eebab --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.1.kt @@ -0,0 +1,41 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 4 + * SENTENCE: [1] The digits of the whole-number part or the fraction part or the exponent may be optionally separated by underscores, but an underscore may not be placed between, before, or after these parts. + * NUMBER: 1 + * DESCRIPTION: Real literals with underscores in a whole-number part and a fraction part. + */ + +val value = 0.0_0 +val value = 0.0__0___0 +val value = 0.0_0__0_0 + +val value = 0__0.0 +val value = 0_0_0.0______0 +val value = 00_______________00.0_0_0 + +val value = 2_2.0_0 +val value = 33__3.00__0 +val value = 4_44____4.00______00 +val value = 5_________555_________5.0 +val value = 666_666.0_____________________________________________________________________________________________________________________0 +val value = 7777777.0_0_0 +val value = 8888888_8.0000 +val value = 9_______9______9_____9____9___9__9_9.0 + +val value = 0_0_0_0_0_0_0_0_0_0.1234567890 +val value = 1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9 +val value = 234_5_678.345______________678 +val value = 3_456_7.4567 +val value = 456.5_6 +val value = 5.6_5 +val value = 6_54.7654 +val value = 7_6543.87654_3 +val value = 876543_____________2.9_____________8765432 +val value = 9_____________87654321.098765432_____________1 + +val value = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_0 +val value = 0_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +val value = 9999999999999999999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_33333333333333333333333333333333333333333 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.1.txt new file mode 100644 index 00000000000..88ec54a925b --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.1.txt @@ -0,0 +1,274 @@ +KtFile: 1.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0__0___0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0_0__0_0') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0__0.0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_0_0.0______0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00_______________00.0_0_0') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2_2.0_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('33__3.00__0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('4_44____4.00______00') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('5_________555_________5.0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('666_666.0_____________________________________________________________________________________________________________________0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7777777.0_0_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('8888888_8.0000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9_______9______9_____9____9___9__9_9.0') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_0_0_0_0_0_0_0_0_0.1234567890') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('234_5_678.345______________678') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('3_456_7.4567') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('456.5_6') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('5.6_5') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('6_54.7654') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7_6543.87654_3') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('876543_____________2.9_____________8765432') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9_____________87654321.098765432_____________1') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9999999999999999999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_33333333333333333333333333333333333333333') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.2.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.2.kt new file mode 100644 index 00000000000..e9d010651a6 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.2.kt @@ -0,0 +1,41 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 4 + * SENTENCE: [1] The digits of the whole-number part or the fraction part or the exponent may be optionally separated by underscores, but an underscore may not be placed between, before, or after these parts. + * NUMBER: 2 + * DESCRIPTION: Real literals suffixed by f/F (float suffix) with underscores in a whole-number part and a fraction part. + */ + +val value = 0.0_0f +val value = 0.0__0___0F +val value = 0.0_0__0_0F + +val value = 0__0.0f +val value = 0_0_0.0______0f +val value = 00_______________00.0_0_0f + +val value = 2_2.0_0F +val value = 33__3.00__0f +val value = 4_44____4.00______00F +val value = 5_________555_________5.0F +val value = 666_666.0_____________________________________________________________________________________________________________________0F +val value = 7777777.0_0_0f +val value = 8888888_8.0000f +val value = 9_______9______9_____9____9___9__9_9.0F + +val value = 0_0_0_0_0_0_0_0_0_0.1234567890F +val value = 1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9f +val value = 234_5_678.345______________678f +val value = 3_456_7.4567f +val value = 456.5_6F +val value = 5.6_5F +val value = 6_54.7654f +val value = 7_6543.87654_3f +val value = 876543_____________2.9_____________8765432f +val value = 9_____________87654321.098765432_____________1F + +val value = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_0F +val value = 0_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f +val value = 9999999999999999999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_33333333333333333333333333333333333333333f diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.2.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.2.txt new file mode 100644 index 00000000000..8f49ec9d5d5 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.2.txt @@ -0,0 +1,274 @@ +KtFile: 1.2.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0_0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0__0___0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0_0__0_0F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0__0.0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_0_0.0______0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00_______________00.0_0_0f') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2_2.0_0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('33__3.00__0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('4_44____4.00______00F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('5_________555_________5.0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('666_666.0_____________________________________________________________________________________________________________________0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7777777.0_0_0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('8888888_8.0000f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9_______9______9_____9____9___9__9_9.0F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_0_0_0_0_0_0_0_0_0.1234567890F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('234_5_678.345______________678f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('3_456_7.4567f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('456.5_6F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('5.6_5F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('6_54.7654f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7_6543.87654_3f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('876543_____________2.9_____________8765432f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9_____________87654321.098765432_____________1F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9999999999999999999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_33333333333333333333333333333333333333333f') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.3.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.3.kt new file mode 100644 index 00000000000..be8405fca29 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.3.kt @@ -0,0 +1,41 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 4 + * SENTENCE: [1] The digits of the whole-number part or the fraction part or the exponent may be optionally separated by underscores, but an underscore may not be placed between, before, or after these parts. + * NUMBER: 3 + * DESCRIPTION: Real literals suffixed by f/F (float suffix) with an exponent mark and underscores in a whole-number part, a fraction part and an exponent part. + */ + +val value = 0.0_0e1_0f +val value = 0.0__0e-0___0 +val value = 0.0_0E-0__0_0F + +val value = 0__0.0e0f +val value = 0_0_0.0_0E0_0 +val value = 00_______________00.0_0e+0_0 + +val value = 2_2.0e1_0F +val value = 33__3.0e10__0 +val value = 4_44____4.0E0______00F +val value = 5_________555_________5.0e-9 +val value = 666_666.0__________________________________________________1E+2___________________________________________________________________0F +val value = 7777777.0_0e3_0 +val value = 8888888_8.000e0f +val value = 9_______9______9_____9____9___9__9_9.0E-1 + +val value = 0_0_0_0_0_0_0_0_0_0.12345678e+90F +val value = 1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9e-0 +val value = 234_5_678.345______________6e7_______8f +val value = 3_456_7.45_6E7f +val value = 456.5e0_6 +val value = 5.6_0E+05F +val value = 6_54.76_5e-4 +val value = 7_6543.8E7654_3 +val value = 876543_____________2.9E+0_____________8765432f +val value = 9_____________87654321.0e-9_8765432_____________1F + +val value = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000_0F +val value = 0_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0E-0___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +val value = 9999999999999999999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_333333333333333333333333333333333333333e3_3f diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.3.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.3.txt new file mode 100644 index 00000000000..7dcbb82aeb3 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.3.txt @@ -0,0 +1,274 @@ +KtFile: 1.3.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0_0e1_0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0__0e-0___0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0_0E-0__0_0F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0__0.0e0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_0_0.0_0E0_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00_______________00.0_0e+0_0') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2_2.0e1_0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('33__3.0e10__0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('4_44____4.0E0______00F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('5_________555_________5.0e-9') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('666_666.0__________________________________________________1E+2___________________________________________________________________0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7777777.0_0e3_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('8888888_8.000e0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9_______9______9_____9____9___9__9_9.0E-1') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_0_0_0_0_0_0_0_0_0.12345678e+90F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9e-0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('234_5_678.345______________6e7_______8f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('3_456_7.45_6E7f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('456.5e0_6') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('5.6_0E+05F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('6_54.76_5e-4') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7_6543.8E7654_3') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('876543_____________2.9E+0_____________8765432f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9_____________87654321.0e-9_8765432_____________1F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000_0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0E-0___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9999999999999999999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_333333333333333333333333333333333333333e3_3f') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.4.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.4.kt new file mode 100644 index 00000000000..60eeeb38be3 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.4.kt @@ -0,0 +1,43 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 4 + * SENTENCE: [1] The digits of the whole-number part or the fraction part or the exponent may be optionally separated by underscores, but an underscore may not be placed between, before, or after these parts. + * NUMBER: 4 + * DESCRIPTION: Real literals with an omitted whole-number part and underscores in a whole-number part, a fraction part and an exponent part. + */ + +val value = .0_0 +val value = .0_0f +val value = .0_0e-0_0 +val value = .0_0e0_0F +val value = .0__0F +val value = .0_0E+0__0_0F + +val value = .0e0f +val value = .0_0E0_0 + +val value = .0e1_0F +val value = .0e10__0 +val value = .00______00F +val value = .0___9 +val value = .0__________________________________________________12___________________________________________________________________0F +val value = .0_0e+3_0 +val value = .000e0f +val value = .9_______9______9_____9____9___9__9_90E-1 + +val value = .12345678_90 +val value = .1_2_3_4_5_6_7_8_9_0 +val value = .345______________6e-7_______8f +val value = .45_67f +val value = .5e+0_6 +val value = .6_0______________05F +val value = .76_5e4 +val value = .8E7654_3 +val value = .9E0_____________8765432f +val value = .09_8765432_____________1F + +val value = .000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000_0F +val value = .00___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +val value = .33333333333333333333333333333333333333333333333_333333333333333333333333333333333333333e3_3f diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.4.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.4.txt new file mode 100644 index 00000000000..3eea84dce20 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.4.txt @@ -0,0 +1,294 @@ +KtFile: 1.4.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0_0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0_0e-0_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0_0e0_0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0__0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0_0E+0__0_0F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0e0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0_0E0_0') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0e1_0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0e10__0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00______00F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0___9') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0__________________________________________________12___________________________________________________________________0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0_0e+3_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000e0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.9_______9______9_____9____9___9__9_90E-1') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.12345678_90') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.1_2_3_4_5_6_7_8_9_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.345______________6e-7_______8f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.45_67f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.5e+0_6') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.6_0______________05F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.76_5e4') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.8E7654_3') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.9E0_____________8765432f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.09_8765432_____________1F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000_0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.00___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.33333333333333333333333333333333333333333333333_333333333333333333333333333333333333333e3_3f') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.5.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.5.kt new file mode 100644 index 00000000000..bd055bb59b6 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.5.kt @@ -0,0 +1,44 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 4 + * SENTENCE: [1] The digits of the whole-number part or the fraction part or the exponent may be optionally separated by underscores, but an underscore may not be placed between, before, or after these parts. + * NUMBER: 5 + * DESCRIPTION: Real literals with an omitted fraction part and underscores in a whole-number part, a fraction part and an exponent part. + */ + +val value = 0_0F +val value = 0_0E-0_0F +val value = 0_0E-0_0 +val value = 0_0____0f +val value = 0_0____0e-0f +val value = 0_0_0_0F +val value = 0_0_0_0E-0_0_0_0F +val value = 0000000000000000000_______________0000000000000000000f +val value = 0000000000000000000_______________0000000000000000000e+0f +val value = 0000000000000000000_______________0000000000000000000E-0 + +val value = 2___2e-2___2f +val value = 33_3E0_0F +val value = 4_444E-4_444f +val value = 55_5_55F +val value = 666____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________666f +val value = 666____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________666E-10 +val value = 7_7_7_7_7_7_7f +val value = 8888888________8e-0_0 +val value = 9________9_______9______9_____9____9___9__9_9F + +val value = 1__2_3__4____5_____6__7_89f +val value = 2__34567e8 +val value = 345_6E+9_7F +val value = 45_____________________________________________________________6E-12313413_4 +val value = 5_______________________________________________________________________________________________________________________________________________________________________________________5f +val value = 6__________________________________________________54F +val value = 76_5___4e3___________3 +val value = 876543_____________________________________________________________2f +val value = 9_8__7654__3_21F + +val value = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0__0F +val value = 0___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f +val value = 33333333333333333333333333333333333333333333333_33333333333333333333333333333333333333333E-1_0_0 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.5.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.5.txt new file mode 100644 index 00000000000..2089ce2a9db --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.5.txt @@ -0,0 +1,314 @@ +KtFile: 1.5.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_0E-0_0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_0E-0_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_0____0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_0____0e-0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_0_0_0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_0_0_0E-0_0_0_0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000000000000000000_______________0000000000000000000f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000000000000000000_______________0000000000000000000e+0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000000000000000000_______________0000000000000000000E-0') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2___2e-2___2f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('33_3E0_0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('4_444E-4_444f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('55_5_55F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('666____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________666f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('666____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________666E-10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7_7_7_7_7_7_7f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('8888888________8e-0_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9________9_______9______9_____9____9___9__9_9F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1__2_3__4____5_____6__7_89f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2__34567e8') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('345_6E+9_7F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('45_____________________________________________________________6E-12313413_4') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('5_______________________________________________________________________________________________________________________________________________________________________________________5f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('6__________________________________________________54F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('76_5___4e3___________3') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('876543_____________________________________________________________2f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9_8__7654__3_21F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0__0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('33333333333333333333333333333333333333333333333_33333333333333333333333333333333333333333E-1_0_0') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.6.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.6.kt new file mode 100644 index 00000000000..08574bf347c --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.6.kt @@ -0,0 +1,27 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 4 + * SENTENCE: [1] The digits of the whole-number part or the fraction part or the exponent may be optionally separated by underscores, but an underscore may not be placed between, before, or after these parts. + * NUMBER: 6 + * DESCRIPTION: Real literals without digits after an exponent mark and with undescores in the different pisitions. + */ + +val value = .0_0e- +val value = 0_0___0E+ + +val value = .0_0e-F +val value = 0__________________________0E+ +val value = 0_00e +val value = .0_0__0___0E +val value = 0_1e+f +val value = .0_0E- +val value = 0___0__0e +val value = 0_00_0ef +val value = .0_5E-F + +val value = .8____8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888_____8888888888888888888e+f +val value = 0_0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_0eF +val value = 0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_e-f +val value = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+ diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.6.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.6.txt new file mode 100644 index 00000000000..c1743ba87c3 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.6.txt @@ -0,0 +1,154 @@ +KtFile: 1.6.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0_0e-') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_0___0E+') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0_0e-F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0__________________________0E+') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_00e') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0_0__0___0E') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_1e+f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0_0E-') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0___0__0e') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_00_0ef') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0_5E-F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.8____8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888_____8888888888888888888e+f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_0eF') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_e-f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.7.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.7.kt new file mode 100644 index 00000000000..b5aeea2938a --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.7.kt @@ -0,0 +1,27 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 4 + * SENTENCE: [1] The digits of the whole-number part or the fraction part or the exponent may be optionally separated by underscores, but an underscore may not be placed between, before, or after these parts. + * NUMBER: 7 + * DESCRIPTION: Real literals with underscores at the end. + */ + +val value = .0_0e-0___ +val value = 0_0___0E+10_ + +val value = .0_0e-0_F +val value = 0__________________________0E+3___ +val value = 0_00e1_ +val value = .0_0__0___0E0_______________ +val value = 0_1e+100_____f +val value = .0_0E-0001___ +val value = 0___0__0e4___ +val value = 0_00_0e99_f +val value = .0_5E-93_______F + +val value = .8____8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888_____8888888888888888888e+5_f +val value = 0_0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_0e40_F +val value = 0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_e-10_f +val value = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+75_ diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.7.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.7.txt new file mode 100644 index 00000000000..02008c1f8b1 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.7.txt @@ -0,0 +1,154 @@ +KtFile: 1.7.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0_0e-0___') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_0___0E+10_') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0_0e-0_F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0__________________________0E+3___') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_00e1_') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0_0__0___0E0_______________') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_1e+100_____f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0_0E-0001___') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0___0__0e4___') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_00_0e99_f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0_5E-93_______F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.8____8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888_____8888888888888888888e+5_f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_0e40_F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_e-10_f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+75_') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/2.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/2.1.kt new file mode 100644 index 00000000000..86e38c3411a --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/2.1.kt @@ -0,0 +1,29 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 4 + * SENTENCE: [2] It also may not be placed before or after the exponent mark symbol. + * NUMBER: 1 + * DESCRIPTION: Real literals with underscores before an exponent mark. + */ + +val value = 0_E0 +val value = 1.1_E2 + +val value = .0__0_e-0___0 + +val value = 0__0.0_____e0f + +val value = 9_______9______9_____9____9___9__9_9.0___E-1 + +val value = 0_0_0_0_0_0_0_0_0_0.12345678___e+90F +val value = 1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9_e-0 +val value = 456.5__e0_6 +val value = 5.6_0_E+05F +val value = 6_54.76_5e-4 +val value = 9_____________87654321.0__e-9_8765432_____________1F + +val value = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000_e000000000000000000000000000000000000000000000000000000000000000_0F +val value = 0_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0____E-0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +val value = 9999999999999999999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_333333333333333333333333333333333333333_e3_3f diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/2.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/2.1.txt new file mode 100644 index 00000000000..e46dd419183 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/2.1.txt @@ -0,0 +1,144 @@ +KtFile: 2.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_E0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1.1_E2') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0__0_e-0___0') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0__0.0_____e0f') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9_______9______9_____9____9___9__9_9.0___E-1') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_0_0_0_0_0_0_0_0_0.12345678___e+90F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9_e-0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('456.5__e0_6') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('5.6_0_E+05F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('6_54.76_5e-4') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9_____________87654321.0__e-9_8765432_____________1F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000_e000000000000000000000000000000000000000000000000000000000000000_0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0____E-0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9999999999999999999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_333333333333333333333333333333333333333_e3_3f') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/2.2.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/2.2.kt new file mode 100644 index 00000000000..54944412f3d --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/2.2.kt @@ -0,0 +1,44 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 4 + * SENTENCE: [2] It also may not be placed before or after the exponent mark symbol. + * NUMBER: 2 + * DESCRIPTION: Real literals with underscores after an exponent mark. + */ + +val value = 0e___0 +val value = .0e_0 +val value = 0.1e__2 +val value = 2.1e_2 +val value = 1E-_2F +val value = 3e+_0f +val value = 5E_-0 +val value = 5e_-0F +val value = 5e_00000000 + +val value = 0.0_0e_1_0f +val value = 0.0_0E____-0__0_0F + +val value = .0_0E__0_0 +val value = 00_______________00.0_0e+__0_0 + +val value = .0e-__1_0F +val value = 33__3.0e_10__0 +val value = .0E_0______00F +val value = 666_666.0__________________________________________________1E+_2___________________________________________________________________0F +val value = 8888888_8.000e_____0f +val value = 9_______9______9_____9____9___9__9_9.0E__-1 + +val value = 0_0_0_0_0_0_0_0_0_0.12345678e+__90F +val value = 1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9e_-_0 +val value = .345______________6e_____7_______8f +val value = .45_6E_7f +val value = 6_54.765e-_4 +val value = 7_6543.8E____7654_3 +val value = .9E+_______0_____________8765432f + +val value = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000e_000000000000000000000000000000000000000000000000000000000000000_0F +val value = 0_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0E-_0___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +val value = 9999999999999999999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_333333333333333333333333333333333333333e___3_3f diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/2.2.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/2.2.txt new file mode 100644 index 00000000000..024d93a9583 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/2.2.txt @@ -0,0 +1,319 @@ +KtFile: 2.2.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0e___0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0e_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.1e__2') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2.1e_2') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1E-_2F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('3e+_0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('5E_') + OPERATION_REFERENCE + PsiElement(MINUS)('-') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('5e_') + OPERATION_REFERENCE + PsiElement(MINUS)('-') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('5e_00000000') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0_0e_1_0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0_0E____') + OPERATION_REFERENCE + PsiElement(MINUS)('-') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0__0_0F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0_0E__0_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00_______________00.0_0e+__0_0') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0e-__1_0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('33__3.0e_10__0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0E_0______00F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('666_666.0__________________________________________________1E+_2___________________________________________________________________0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('8888888_8.000e_____0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9_______9______9_____9____9___9__9_9.0E__') + OPERATION_REFERENCE + PsiElement(MINUS)('-') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_0_0_0_0_0_0_0_0_0.12345678e+__90F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9e_') + OPERATION_REFERENCE + PsiElement(MINUS)('-') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.345______________6e_____7_______8f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.45_6E_7f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('6_54.765e-_4') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7_6543.8E____7654_3') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.9E+_______0_____________8765432f') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000e_000000000000000000000000000000000000000000000000000000000000000_0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0E-_0___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9999999999999999999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_333333333333333333333333333333333333333e___3_3f') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/2.3.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/2.3.kt new file mode 100644 index 00000000000..be2adbc006e --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/2.3.kt @@ -0,0 +1,40 @@ +/* + * KOTLIN PSI SPEC TEST (POSITIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 4 + * SENTENCE: [2] It also may not be placed before or after the exponent mark symbol. + * NUMBER: 3 + * DESCRIPTION: Real literals with underscores around an exponent mark. + */ + +val value = .0__e_0 +val value = 2.1_e_2 +val value = 1_E-_2F +val value = 3_e+_0f +val value = 5_E_-0 +val value = 5_e_-0F +val value = 5_e_00000000 + +val value = 0.0_0___E____-0__0_0F +val value = 0__0.0_____e___0f +val value = .0_0_E__0_0 +val value = 00_______________00.0_0__e+__0_0 + +val value = 33__3.0_e_10__0 +val value = .0_E_0______00F +val value = 5_________555_________5.0____e____-____9 +val value = 666_666.0__________________________________________________1_E+_2___________________________________________________________________0F +val value = 9_______9______9_____9____9___9__9_9.0___E__-1 + +val value = 0_0_0_0_0_0_0_0_0_0.12345678___e+__90F +val value = 1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9_e_-_0 +val value = .45_6_E_7f +val value = 456.5__e_0_6 +val value = 6_54.76_5_e-_4 +val value = 7_6543.8____E____7654_3 +val value = 9_____________87654321.0__e__-9_8765432_____________1F + +val value = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000_e_000000000000000000000000000000000000000000000000000000000000000_0F +val value = 0_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0_E-_0___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +val value = 9999999999999999999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_333333333333333333333333333333333333333_e_3_3f diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/2.3.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/2.3.txt new file mode 100644 index 00000000000..837dabf08f7 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/2.3.txt @@ -0,0 +1,299 @@ +KtFile: 2.3.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0__e_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2.1_e_2') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1_E-_2F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('3_e+_0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('5_E_') + OPERATION_REFERENCE + PsiElement(MINUS)('-') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('5_e_') + OPERATION_REFERENCE + PsiElement(MINUS)('-') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('5_e_00000000') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0_0___E____') + OPERATION_REFERENCE + PsiElement(MINUS)('-') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0__0_0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0__0.0_____e___0f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0_0_E__0_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00_______________00.0_0__e+__0_0') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('33__3.0_e_10__0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0_E_0______00F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('5_________555_________5.0____e____') + OPERATION_REFERENCE + PsiElement(MINUS)('-') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('____9') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('666_666.0__________________________________________________1_E+_2___________________________________________________________________0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9_______9______9_____9____9___9__9_9.0___E__') + OPERATION_REFERENCE + PsiElement(MINUS)('-') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_0_0_0_0_0_0_0_0_0.12345678___e+__90F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1_2_3_4_5_6_7_8_9.2_3_4_5_6_7_8_9_e_') + OPERATION_REFERENCE + PsiElement(MINUS)('-') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.45_6_E_7f') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('456.5__e_0_6') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('6_54.76_5_e-_4') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7_6543.8____E____7654_3') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9_____________87654321.0__e__') + OPERATION_REFERENCE + PsiElement(MINUS)('-') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9_8765432_____________1F') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0.000000000000000000000000_e_000000000000000000000000000000000000000000000000000000000000000_0F') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0_E-_0___000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9999999999999999999999999999999999999999999_______________999999999999999999999999999999999999999999999.33333333333333333333333333333333333333333333333_333333333333333333333333333333333333333_e_3_3f') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-6/neg/1.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-6/neg/1.1.kt new file mode 100644 index 00000000000..52423f9b746 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-6/neg/1.1.kt @@ -0,0 +1,54 @@ +/* + * KOTLIN PSI SPEC TEST (NEGATIVE) + * + * SECTIONS: constant-literals, real-literals + * PARAGRAPH: 6 + * SENTENCE: [1] Note: this means there is no special suffix associated with type kotlin.Double. + * NUMBER: 1 + * DESCRIPTION: Real literals suffixed by not supported d/D (a double suffix). + */ + +val value = 0.0d +val value = 0.00d +val value = 0000.000D + +val value = 1.0d +val value = 22.00D + +val value = 0.0e0d +val value = 0.0e-00D +val value = 0.0E+0000D +val value = 0000.000E-000d + +val value = 1.0E+1d +val value = 333.000e-333d +val value = 123456789.23456789E+123456789D + +val value = .0d +val value = .0000d +val value = .1234567890D +val value = .9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999123456789912345678991234567899123456789912345678991234567899D + +val value = 0d +val value = 00000000000000000000000000000000000000D +val value = 4444d +val value = 987654321d +val value = 0e0D +val value = 00e00D +val value = 000E-10d +val value = 0000e+00000000000d +val value = 00000000000000000000000000000000000000E1D + +val value = 00e-00D +val value = 1e1d +val value = 333e-00000000000d +val value = 88888888e1234567890D + +val value = 0.0__0___0D +val value = 0_0_0_0E-0_0_0_0d +val value = .0_0E+0__0_0D +val value = 0_0_0.0_0E0_0d +val value = 666_666.0_____________________________________________________________________________________________________________________0d +val value = 9_______9______9_____9____9___9__9_9.0E-1D +val value = .0e-9_8765432_____________1D +val value = 45_____________________________________________________________6E-12313413_4d diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-6/neg/1.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-6/neg/1.1.txt new file mode 100644 index 00000000000..d28a0955c91 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-6/neg/1.1.txt @@ -0,0 +1,593 @@ +KtFile: 1.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('d') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.00') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('d') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000.000') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('D') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1.0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('d') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('22.00') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('D') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0e0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('d') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0e-00') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('D') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0E+0000') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('D') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000.000E-000') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('d') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1.0E+1') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('d') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('333.000e-333') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('d') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('123456789.23456789E+123456789') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('D') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('d') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0000') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('d') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.1234567890') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('D') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999123456789912345678991234567899123456789912345678991234567899') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('D') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('d') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(IDENTIFIER)('D') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('4444') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('d') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('987654321') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('d') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0e0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('D') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00e00') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('D') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('000E-10') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('d') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0000e+00000000000') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('d') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00000000000000000000000000000000000000E1') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('D') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('00e-00') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('D') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1e1') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('d') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('333e-00000000000') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('d') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('88888888e1234567890') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('D') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0.0__0___0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('D') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_0_0_0E-0_0_0_0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('d') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0_0E+0__0_0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('D') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0_0_0.0_0E0_0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('d') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('666_666.0_____________________________________________________________________________________________________________________0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('d') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('9_______9______9_____9____9___9__9_9.0E-1') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('D') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.0e-9_8765432_____________1') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('D') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('45_____________________________________________________________6E-12313413_4') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('d') + PsiErrorElement:Expecting an element + \ No newline at end of file diff --git a/compiler/tests-spec/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestSpecGenerated.java b/compiler/tests-spec/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestSpecGenerated.java index 656642e75d7..503dbd05272 100644 --- a/compiler/tests-spec/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestSpecGenerated.java +++ b/compiler/tests-spec/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestSpecGenerated.java @@ -416,6 +416,391 @@ public class DiagnosticsTestSpecGenerated extends AbstractDiagnosticsTestSpec { } } } + + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Real_literals extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInReal_literals() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class P_1 extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInP_1() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/neg") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Neg extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/neg/1.1.kt"); + } + + @TestMetadata("3.1.kt") + public void test3_1() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/neg/3.1.kt"); + } + + public void testAllFilesPresentInNeg() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/neg"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Pos extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos/1.1.kt"); + } + + @TestMetadata("1.2.kt") + public void test1_2() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos/1.2.kt"); + } + + @TestMetadata("3.1.kt") + public void test3_1() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos/3.1.kt"); + } + + @TestMetadata("3.2.kt") + public void test3_2() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos/3.2.kt"); + } + + public void testAllFilesPresentInPos() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-1/pos"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + } + + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class P_2 extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInP_2() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Neg extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg/1.1.kt"); + } + + @TestMetadata("1.2.kt") + public void test1_2() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg/1.2.kt"); + } + + @TestMetadata("1.3.kt") + public void test1_3() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg/1.3.kt"); + } + + @TestMetadata("1.4.kt") + public void test1_4() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg/1.4.kt"); + } + + public void testAllFilesPresentInNeg() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/neg"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/pos") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Pos extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/pos/1.1.kt"); + } + + @TestMetadata("1.2.kt") + public void test1_2() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/pos/1.2.kt"); + } + + public void testAllFilesPresentInPos() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-2/pos"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + } + + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class P_3 extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInP_3() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/neg") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Neg extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/neg/1.1.kt"); + } + + @TestMetadata("1.2.kt") + public void test1_2() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/neg/1.2.kt"); + } + + @TestMetadata("2.1.kt") + public void test2_1() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/neg/2.1.kt"); + } + + public void testAllFilesPresentInNeg() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/neg"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Pos extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.1.kt"); + } + + @TestMetadata("1.2.kt") + public void test1_2() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.2.kt"); + } + + @TestMetadata("1.3.kt") + public void test1_3() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.3.kt"); + } + + @TestMetadata("1.4.kt") + public void test1_4() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.4.kt"); + } + + @TestMetadata("1.5.kt") + public void test1_5() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/1.5.kt"); + } + + @TestMetadata("2.1.kt") + public void test2_1() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/2.1.kt"); + } + + @TestMetadata("2.2.kt") + public void test2_2() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/2.2.kt"); + } + + @TestMetadata("2.3.kt") + public void test2_3() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos/2.3.kt"); + } + + public void testAllFilesPresentInPos() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-3/pos"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + } + + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class P_4 extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInP_4() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Neg extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/1.1.kt"); + } + + @TestMetadata("1.2.kt") + public void test1_2() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/1.2.kt"); + } + + @TestMetadata("2.1.kt") + public void test2_1() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/2.1.kt"); + } + + @TestMetadata("2.2.kt") + public void test2_2() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/2.2.kt"); + } + + @TestMetadata("2.3.kt") + public void test2_3() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg/2.3.kt"); + } + + public void testAllFilesPresentInNeg() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/neg"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Pos extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.1.kt"); + } + + @TestMetadata("1.2.kt") + public void test1_2() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.2.kt"); + } + + @TestMetadata("1.3.kt") + public void test1_3() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.3.kt"); + } + + @TestMetadata("1.4.kt") + public void test1_4() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.4.kt"); + } + + @TestMetadata("1.5.kt") + public void test1_5() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos/1.5.kt"); + } + + public void testAllFilesPresentInPos() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-4/pos"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + } + + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class P_5 extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInP_5() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Pos extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.1.kt"); + } + + @TestMetadata("1.2.kt") + public void test1_2() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.2.kt"); + } + + @TestMetadata("1.3.kt") + public void test1_3() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.3.kt"); + } + + @TestMetadata("1.4.kt") + public void test1_4() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.4.kt"); + } + + @TestMetadata("1.5.kt") + public void test1_5() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos/1.5.kt"); + } + + public void testAllFilesPresentInPos() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals/real-literals/p-5/pos"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + } + } } @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/when-expression") diff --git a/compiler/tests-spec/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestSpecGenerated.java b/compiler/tests-spec/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestSpecGenerated.java index 27effef21da..e3b8f788705 100644 --- a/compiler/tests-spec/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestSpecGenerated.java +++ b/compiler/tests-spec/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestSpecGenerated.java @@ -435,6 +435,203 @@ public class BlackBoxCodegenTestSpecGenerated extends AbstractBlackBoxCodegenTes } } } + + @TestMetadata("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Real_literals extends AbstractBlackBoxCodegenTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInReal_literals() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-1") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class P_1 extends AbstractBlackBoxCodegenTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInP_1() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-1"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-1/pos") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Pos extends AbstractBlackBoxCodegenTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-1/pos/1.1.kt"); + } + + @TestMetadata("3.1.kt") + public void test3_1() throws Exception { + runTest("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-1/pos/3.1.kt"); + } + + public void testAllFilesPresentInPos() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-1/pos"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + } + + @TestMetadata("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-2") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class P_2 extends AbstractBlackBoxCodegenTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInP_2() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-2"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-2/pos") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Pos extends AbstractBlackBoxCodegenTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-2/pos/1.1.kt"); + } + + @TestMetadata("1.2.kt") + public void test1_2() throws Exception { + runTest("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-2/pos/1.2.kt"); + } + + public void testAllFilesPresentInPos() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-2/pos"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + } + + @TestMetadata("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class P_3 extends AbstractBlackBoxCodegenTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInP_3() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Pos extends AbstractBlackBoxCodegenTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos/1.1.kt"); + } + + @TestMetadata("1.2.kt") + public void test1_2() throws Exception { + runTest("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos/1.2.kt"); + } + + @TestMetadata("1.3.kt") + public void test1_3() throws Exception { + runTest("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos/1.3.kt"); + } + + @TestMetadata("1.4.kt") + public void test1_4() throws Exception { + runTest("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos/1.4.kt"); + } + + @TestMetadata("2.1.kt") + public void test2_1() throws Exception { + runTest("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos/2.1.kt"); + } + + @TestMetadata("2.2.kt") + public void test2_2() throws Exception { + runTest("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos/2.2.kt"); + } + + @TestMetadata("2.3.kt") + public void test2_3() throws Exception { + runTest("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos/2.3.kt"); + } + + public void testAllFilesPresentInPos() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-3/pos"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + } + + @TestMetadata("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-4") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class P_4 extends AbstractBlackBoxCodegenTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInP_4() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-4"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-4/pos") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Pos extends AbstractBlackBoxCodegenTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-4/pos/1.1.kt"); + } + + @TestMetadata("1.2.kt") + public void test1_2() throws Exception { + runTest("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-4/pos/1.2.kt"); + } + + @TestMetadata("1.3.kt") + public void test1_3() throws Exception { + runTest("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-4/pos/1.3.kt"); + } + + @TestMetadata("1.4.kt") + public void test1_4() throws Exception { + runTest("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-4/pos/1.4.kt"); + } + + @TestMetadata("1.5.kt") + public void test1_5() throws Exception { + runTest("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-4/pos/1.5.kt"); + } + + public void testAllFilesPresentInPos() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/constant-literals/real-literals/p-4/pos"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + } + } } } } diff --git a/compiler/tests-spec/tests/org/jetbrains/kotlin/parsing/ParsingTestSpecGenerated.java b/compiler/tests-spec/tests/org/jetbrains/kotlin/parsing/ParsingTestSpecGenerated.java index bb48f3fcc70..e9621ed3022 100644 --- a/compiler/tests-spec/tests/org/jetbrains/kotlin/parsing/ParsingTestSpecGenerated.java +++ b/compiler/tests-spec/tests/org/jetbrains/kotlin/parsing/ParsingTestSpecGenerated.java @@ -50,9 +50,7 @@ public class ParsingTestSpecGenerated extends AbstractParsingTestSpec { } public void testAllFilesPresentInConstant_literals() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), - new File("compiler/tests-spec/testData/psi/linked/constant-literals"), - Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/boolean-literals") @@ -64,9 +62,7 @@ public class ParsingTestSpecGenerated extends AbstractParsingTestSpec { } public void testAllFilesPresentInBoolean_literals() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File( - "compiler/tests-spec/testData/psi/linked/constant-literals/boolean-literals"), Pattern.compile("^(.+)\\.kt$"), - TargetBackend.ANY, true); + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/boolean-literals"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/boolean-literals/p-1") @@ -78,9 +74,7 @@ public class ParsingTestSpecGenerated extends AbstractParsingTestSpec { } public void testAllFilesPresentInP_1() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File( - "compiler/tests-spec/testData/psi/linked/constant-literals/boolean-literals/p-1"), - Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/boolean-literals/p-1"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/boolean-literals/p-1/neg") @@ -222,9 +216,7 @@ public class ParsingTestSpecGenerated extends AbstractParsingTestSpec { } public void testAllFilesPresentInNeg() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File( - "compiler/tests-spec/testData/psi/linked/constant-literals/boolean-literals/p-1/neg"), - Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/boolean-literals/p-1/neg"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } } @@ -236,16 +228,6 @@ public class ParsingTestSpecGenerated extends AbstractParsingTestSpec { KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); } - @TestMetadata("1.1.kt") - public void test1_1() throws Exception { - runTest("compiler/tests-spec/testData/psi/linked/constant-literals/boolean-literals/p-1/pos/1.1.kt"); - } - - @TestMetadata("1.2.kt") - public void test1_2() throws Exception { - runTest("compiler/tests-spec/testData/psi/linked/constant-literals/boolean-literals/p-1/pos/1.2.kt"); - } - @TestMetadata("2.1.kt") public void test2_1() throws Exception { runTest("compiler/tests-spec/testData/psi/linked/constant-literals/boolean-literals/p-1/pos/2.1.kt"); @@ -377,9 +359,7 @@ public class ParsingTestSpecGenerated extends AbstractParsingTestSpec { } public void testAllFilesPresentInPos() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File( - "compiler/tests-spec/testData/psi/linked/constant-literals/boolean-literals/p-1/pos"), - Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/boolean-literals/p-1/pos"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } } } @@ -394,9 +374,7 @@ public class ParsingTestSpecGenerated extends AbstractParsingTestSpec { } public void testAllFilesPresentInInteger_literals() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File( - "compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals"), Pattern.compile("^(.+)\\.kt$"), - TargetBackend.ANY, true); + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals") @@ -408,9 +386,7 @@ public class ParsingTestSpecGenerated extends AbstractParsingTestSpec { } public void testAllFilesPresentInBinary_integer_literals() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File( - "compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals"), - Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1") @@ -422,9 +398,7 @@ public class ParsingTestSpecGenerated extends AbstractParsingTestSpec { } public void testAllFilesPresentInP_1() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File( - "compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1"), - Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg") @@ -451,9 +425,7 @@ public class ParsingTestSpecGenerated extends AbstractParsingTestSpec { } public void testAllFilesPresentInNeg() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File( - "compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg"), - Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } } @@ -501,9 +473,7 @@ public class ParsingTestSpecGenerated extends AbstractParsingTestSpec { } public void testAllFilesPresentInPos() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File( - "compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos"), - Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } } } @@ -518,9 +488,7 @@ public class ParsingTestSpecGenerated extends AbstractParsingTestSpec { } public void testAllFilesPresentInDecimal_integer_literals() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File( - "compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals"), - Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1") @@ -532,9 +500,7 @@ public class ParsingTestSpecGenerated extends AbstractParsingTestSpec { } public void testAllFilesPresentInP_1() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File( - "compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1"), - Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg") @@ -551,9 +517,7 @@ public class ParsingTestSpecGenerated extends AbstractParsingTestSpec { } public void testAllFilesPresentInNeg() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File( - "compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg"), - Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } } @@ -586,9 +550,7 @@ public class ParsingTestSpecGenerated extends AbstractParsingTestSpec { } public void testAllFilesPresentInPos() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File( - "compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos"), - Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } } } @@ -602,9 +564,7 @@ public class ParsingTestSpecGenerated extends AbstractParsingTestSpec { } public void testAllFilesPresentInP_2() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File( - "compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-2"), - Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-2"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-2/neg") @@ -626,9 +586,7 @@ public class ParsingTestSpecGenerated extends AbstractParsingTestSpec { } public void testAllFilesPresentInNeg() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File( - "compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-2/neg"), - Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-2/neg"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } } } @@ -643,9 +601,7 @@ public class ParsingTestSpecGenerated extends AbstractParsingTestSpec { } public void testAllFilesPresentInHexadecimal_integer_literals() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File( - "compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals"), - Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1") @@ -657,9 +613,7 @@ public class ParsingTestSpecGenerated extends AbstractParsingTestSpec { } public void testAllFilesPresentInP_1() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File( - "compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1"), - Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg") @@ -686,9 +640,7 @@ public class ParsingTestSpecGenerated extends AbstractParsingTestSpec { } public void testAllFilesPresentInNeg() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File( - "compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg"), - Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } } @@ -731,9 +683,7 @@ public class ParsingTestSpecGenerated extends AbstractParsingTestSpec { } public void testAllFilesPresentInPos() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File( - "compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos"), - Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } } } @@ -748,9 +698,7 @@ public class ParsingTestSpecGenerated extends AbstractParsingTestSpec { } public void testAllFilesPresentInLong_integer_literals() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File( - "compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals"), - Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1") @@ -762,9 +710,7 @@ public class ParsingTestSpecGenerated extends AbstractParsingTestSpec { } public void testAllFilesPresentInP_1() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File( - "compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1"), - Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg") @@ -796,9 +742,7 @@ public class ParsingTestSpecGenerated extends AbstractParsingTestSpec { } public void testAllFilesPresentInNeg() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File( - "compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg"), - Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } } @@ -867,6 +811,476 @@ public class ParsingTestSpecGenerated extends AbstractParsingTestSpec { } } } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Real_literals extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInReal_literals() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class P_1 extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInP_1() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Neg extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/1.1.kt"); + } + + @TestMetadata("1.2.kt") + public void test1_2() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/1.2.kt"); + } + + @TestMetadata("1.3.kt") + public void test1_3() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/1.3.kt"); + } + + @TestMetadata("2.1.kt") + public void test2_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/2.1.kt"); + } + + @TestMetadata("2.2.kt") + public void test2_2() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/2.2.kt"); + } + + @TestMetadata("2.3.kt") + public void test2_3() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/2.3.kt"); + } + + @TestMetadata("3.1.kt") + public void test3_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/3.1.kt"); + } + + @TestMetadata("3.2.kt") + public void test3_2() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/3.2.kt"); + } + + @TestMetadata("3.3.kt") + public void test3_3() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg/3.3.kt"); + } + + public void testAllFilesPresentInNeg() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/neg"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Pos extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos/1.1.kt"); + } + + @TestMetadata("1.2.kt") + public void test1_2() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos/1.2.kt"); + } + + @TestMetadata("3.1.kt") + public void test3_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos/3.1.kt"); + } + + @TestMetadata("3.2.kt") + public void test3_2() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos/3.2.kt"); + } + + public void testAllFilesPresentInPos() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-1/pos"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class P_2 extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInP_2() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Neg extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg/1.1.kt"); + } + + @TestMetadata("1.2.kt") + public void test1_2() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg/1.2.kt"); + } + + @TestMetadata("1.3.kt") + public void test1_3() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg/1.3.kt"); + } + + @TestMetadata("1.4.kt") + public void test1_4() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg/1.4.kt"); + } + + public void testAllFilesPresentInNeg() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/neg"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Pos extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.1.kt"); + } + + @TestMetadata("1.2.kt") + public void test1_2() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.2.kt"); + } + + @TestMetadata("1.3.kt") + public void test1_3() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.3.kt"); + } + + @TestMetadata("1.4.kt") + public void test1_4() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.4.kt"); + } + + @TestMetadata("1.5.kt") + public void test1_5() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.5.kt"); + } + + @TestMetadata("1.6.kt") + public void test1_6() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos/1.6.kt"); + } + + public void testAllFilesPresentInPos() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-2/pos"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class P_3 extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInP_3() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Neg extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.1.kt"); + } + + @TestMetadata("1.2.kt") + public void test1_2() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.2.kt"); + } + + @TestMetadata("1.3.kt") + public void test1_3() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.3.kt"); + } + + @TestMetadata("1.4.kt") + public void test1_4() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.4.kt"); + } + + @TestMetadata("1.5.kt") + public void test1_5() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/1.5.kt"); + } + + @TestMetadata("2.1.kt") + public void test2_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/2.1.kt"); + } + + @TestMetadata("3.1.kt") + public void test3_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg/3.1.kt"); + } + + public void testAllFilesPresentInNeg() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/neg"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Pos extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.1.kt"); + } + + @TestMetadata("1.2.kt") + public void test1_2() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.2.kt"); + } + + @TestMetadata("1.3.kt") + public void test1_3() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.3.kt"); + } + + @TestMetadata("1.4.kt") + public void test1_4() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.4.kt"); + } + + @TestMetadata("1.5.kt") + public void test1_5() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.5.kt"); + } + + @TestMetadata("1.6.kt") + public void test1_6() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/1.6.kt"); + } + + @TestMetadata("2.1.kt") + public void test2_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/2.1.kt"); + } + + @TestMetadata("2.2.kt") + public void test2_2() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/2.2.kt"); + } + + @TestMetadata("2.3.kt") + public void test2_3() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/2.3.kt"); + } + + @TestMetadata("2.4.kt") + public void test2_4() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos/2.4.kt"); + } + + public void testAllFilesPresentInPos() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-3/pos"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class P_4 extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInP_4() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Neg extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg/1.1.kt"); + } + + @TestMetadata("1.2.kt") + public void test1_2() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg/1.2.kt"); + } + + @TestMetadata("1.3.kt") + public void test1_3() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg/1.3.kt"); + } + + @TestMetadata("1.4.kt") + public void test1_4() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg/1.4.kt"); + } + + public void testAllFilesPresentInNeg() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/neg"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Pos extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.1.kt"); + } + + @TestMetadata("1.2.kt") + public void test1_2() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.2.kt"); + } + + @TestMetadata("1.3.kt") + public void test1_3() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.3.kt"); + } + + @TestMetadata("1.4.kt") + public void test1_4() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.4.kt"); + } + + @TestMetadata("1.5.kt") + public void test1_5() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.5.kt"); + } + + @TestMetadata("1.6.kt") + public void test1_6() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.6.kt"); + } + + @TestMetadata("1.7.kt") + public void test1_7() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/1.7.kt"); + } + + @TestMetadata("2.1.kt") + public void test2_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/2.1.kt"); + } + + @TestMetadata("2.2.kt") + public void test2_2() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/2.2.kt"); + } + + @TestMetadata("2.3.kt") + public void test2_3() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos/2.3.kt"); + } + + public void testAllFilesPresentInPos() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-4/pos"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-6") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class P_6 extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInP_6() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-6"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-6/neg") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Neg extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-6/neg/1.1.kt"); + } + + public void testAllFilesPresentInNeg() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/real-literals/p-6/neg"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + } + } } @TestMetadata("compiler/tests-spec/testData/psi/linked/when-expression")