diff --git a/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/boolean-literals/p-1/neg/3.1.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/boolean-literals/p-1/neg/3.1.fir.kt new file mode 100644 index 00000000000..87b078d2d7c --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/boolean-literals/p-1/neg/3.1.fir.kt @@ -0,0 +1,21 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, boolean-literals -> paragraph 1 -> sentence 3 + * NUMBER: 1 + * DESCRIPTION: Checking of type for Boolean values + * HELPERS: checkType + */ + +// TESTCASE NUMBER: 1 +fun case_1() { + true checkType { check() } + false checkType { check() } + + true checkType { check() } + false checkType { check() } + + true checkType { check() } + false checkType { check() } +} diff --git a/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/character-literals/p-1/neg/1.1.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/character-literals/p-1/neg/1.1.fir.kt new file mode 100644 index 00000000000..36ddc8d1b8a --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/character-literals/p-1/neg/1.1.fir.kt @@ -0,0 +1,45 @@ +// !LANGUAGE: +NewInference +// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION +// SKIP_TXT + +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-218 + * PLACE: expressions, constant-literals, character-literals -> paragraph 1 -> sentence 1 + * RELEVANT PLACES: expressions, constant-literals, character-literals -> paragraph 1 -> sentence 2 + * expressions, constant-literals, character-literals -> paragraph 2 -> sentence 1 + * expressions, constant-literals, character-literals -> paragraph 2 -> sentence 2 + * expressions, constant-literals, character-literals -> paragraph 4 -> sentence 1 + * NUMBER: 1 + * DESCRIPTION: A character literal defines a constant holding a unicode character value + * HELPERS: checkType + */ + +// TESTCASE NUMBER: 1 +fun case1() { + val c = '' +} + +// TESTCASE NUMBER: 2 + +fun case2() { + val c2: Char = ''' + val c3: Char = '\' +} + +// TESTCASE NUMBER: 3 + +fun case3() { + val c1: Char = 'B a' + val c2: Char = ' ' + val c3: Char = 'Ba' +} + +// TESTCASE NUMBER: 4 + +fun case4() { + val cOutOfRaneMin = '𐀀' //u+10000 + + val cOutOfRangeAroundMax = '󠇿󠇿󟿿' //u+Dfffff +} diff --git a/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/character-literals/p-4/neg/1.1.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/character-literals/p-4/neg/1.1.fir.kt new file mode 100644 index 00000000000..88f2820f81f --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/character-literals/p-4/neg/1.1.fir.kt @@ -0,0 +1,36 @@ +// !LANGUAGE: +NewInference +// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION +// SKIP_TXT + +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-218 + * PLACE: expressions, constant-literals, character-literals -> paragraph 4 -> sentence 1 + * RELEVANT PLACES: expressions, constant-literals, character-literals -> paragraph 5 -> sentence 1 + * NUMBER: 1 + * DESCRIPTION: to define a character the unicode codepoint escaped symbol \u could be used with followed by exactly four hexadecimal digits. + * HELPERS: checkType + */ + + +// TESTCASE NUMBER: 1 + +fun case1() { + //less then four hex digits + val c0 = '\u' + val c1 = '\uf' + val c2 = '\u1f' + val c3 = '\u1wf' + + //more then four hex digits + val c4 = '\u1wF2f' +} + +// TESTCASE NUMBER: 2 + +fun case2() { + //not hex + val c1 = '\u000g' + val c2 = '\u000G' +} diff --git a/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.1.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.1.fir.kt new file mode 100644 index 00000000000..f8c48c2fab6 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.1.fir.kt @@ -0,0 +1,14 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, integer-literals, binary-integer-literals -> paragraph 1 -> sentence 1 + * NUMBER: 1 + * DESCRIPTION: Binary integer literals with the prefix only. + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0b + +// TESTCASE NUMBER: 2 +val value_2 = 0B diff --git a/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.1.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.1.fir.kt new file mode 100644 index 00000000000..abd2e77174e --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.1.fir.kt @@ -0,0 +1,20 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, integer-literals, binary-integer-literals -> paragraph 1 -> sentence 2 + * NUMBER: 1 + * DESCRIPTION: Binary integer literals with an underscore after the prefix. + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0b_1110100000 + +// TESTCASE NUMBER: 2 +val value_2 = 0B_______11010000 + +// TESTCASE NUMBER: 3 +val value_3 = 0B_1_1_0_1_0_0_0_0 + +// TESTCASE NUMBER: 4 +val value_4 = 0b_ diff --git a/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.3.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.3.fir.kt new file mode 100644 index 00000000000..aaef77210ed --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.3.fir.kt @@ -0,0 +1,29 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, integer-literals, binary-integer-literals -> paragraph 1 -> sentence 2 + * NUMBER: 3 + * DESCRIPTION: Binary integer literals with an underscore in the last position. + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0b0_1_1_0_1_1_____ + +// TESTCASE NUMBER: 2 +val value_2 = 0B1_______1_______0_______1_ + +// TESTCASE NUMBER: 3 +val value_3 = 0B000000000_ + +// TESTCASE NUMBER: 4 +val value_4 = 0b_ + +// TESTCASE NUMBER: 5 +val value_5 = 0B______________ + +// TESTCASE NUMBER: 6 +val value_6 = 0B0_ + +// TESTCASE NUMBER: 7 +val value_7 = 0B10_ diff --git a/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.1.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.1.fir.kt new file mode 100644 index 00000000000..b293b3261be --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.1.fir.kt @@ -0,0 +1,14 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, integer-literals, hexadecimal-integer-literals -> paragraph 1 -> sentence 1 + * NUMBER: 1 + * DESCRIPTION: Hexadecimal integer literals with the prefix only. + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0x + +// TESTCASE NUMBER: 2 +val value_2 = 0X diff --git a/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.1.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.1.fir.kt new file mode 100644 index 00000000000..4877b2fe3f4 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.1.fir.kt @@ -0,0 +1,20 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, integer-literals, hexadecimal-integer-literals -> paragraph 1 -> sentence 2 + * NUMBER: 1 + * DESCRIPTION: Hexadecimal integer literals with an underscore after the prefix. + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0x_1234567890 + +// TESTCASE NUMBER: 2 +val value_2 = 0X_______23456789 + +// TESTCASE NUMBER: 3 +val value_3 = 0X_2_3_4_5_6_7_8_9 + +// TESTCASE NUMBER: 4 +val value_4 = 0x_ diff --git a/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.4.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.4.fir.kt new file mode 100644 index 00000000000..25bd81c92c8 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.4.fir.kt @@ -0,0 +1,29 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, integer-literals, hexadecimal-integer-literals -> paragraph 1 -> sentence 2 + * NUMBER: 4 + * DESCRIPTION: Hexadecimal integer literals with an underscore in the last position. + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0x3_4_5_6_7_8_____ + +// TESTCASE NUMBER: 2 +val value_2 = 0X4_______5_______6_______7_ + +// TESTCASE NUMBER: 3 +val value_3 = 0X000000000_ + +// TESTCASE NUMBER: 5 +val value_5 = 0x_ + +// TESTCASE NUMBER: 6 +val value_6 = 0X______________ + +// TESTCASE NUMBER: 7 +val value_7 = 0X0_ + +// TESTCASE NUMBER: 8 +val value_8 = 0X10_ diff --git a/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-1/neg/1.1.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-1/neg/1.1.fir.kt new file mode 100644 index 00000000000..6d4f8235c67 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-1/neg/1.1.fir.kt @@ -0,0 +1,28 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 1 -> sentence 1 + * 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/expressions/constant-literals/real-literals/p-1/neg/3.1.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-1/neg/3.1.fir.kt new file mode 100644 index 00000000000..d28848df89f --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-1/neg/3.1.fir.kt @@ -0,0 +1,28 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 1 -> sentence 3 + * 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/expressions/constant-literals/real-literals/p-1/pos/1.2.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-1/pos/1.2.fir.kt new file mode 100644 index 00000000000..8ad9c82e5d9 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-1/pos/1.2.fir.kt @@ -0,0 +1,44 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 1 -> sentence 1 + * 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/expressions/constant-literals/real-literals/p-1/pos/3.2.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-1/pos/3.2.fir.kt new file mode 100644 index 00000000000..897bdea9523 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-1/pos/3.2.fir.kt @@ -0,0 +1,44 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 1 -> sentence 3 + * 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/expressions/constant-literals/real-literals/p-2/neg/1.1.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-2/neg/1.1.fir.kt new file mode 100644 index 00000000000..dc5b3cfec36 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-2/neg/1.1.fir.kt @@ -0,0 +1,59 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 2 -> sentence 1 + * 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/expressions/constant-literals/real-literals/p-2/neg/1.2.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-2/neg/1.2.fir.kt new file mode 100644 index 00000000000..3df6b0ec0c5 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-2/neg/1.2.fir.kt @@ -0,0 +1,47 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 2 -> sentence 1 + * 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/expressions/constant-literals/real-literals/p-2/neg/1.3.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-2/neg/1.3.fir.kt new file mode 100644 index 00000000000..6f6629fd962 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-2/neg/1.3.fir.kt @@ -0,0 +1,47 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 2 -> sentence 1 + * 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/expressions/constant-literals/real-literals/p-2/neg/1.4.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-2/neg/1.4.fir.kt new file mode 100644 index 00000000000..e23efe03213 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-2/neg/1.4.fir.kt @@ -0,0 +1,59 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 2 -> sentence 1 + * 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/expressions/constant-literals/real-literals/p-2/pos/1.1.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-2/pos/1.1.fir.kt new file mode 100644 index 00000000000..b172982b710 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-2/pos/1.1.fir.kt @@ -0,0 +1,125 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 2 -> sentence 1 + * 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/expressions/constant-literals/real-literals/p-2/pos/1.2.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-2/pos/1.2.fir.kt new file mode 100644 index 00000000000..201f101f522 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-2/pos/1.2.fir.kt @@ -0,0 +1,86 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 2 -> sentence 1 + * 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/expressions/constant-literals/real-literals/p-3/neg/1.1.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-3/neg/1.1.fir.kt new file mode 100644 index 00000000000..169f56a47c0 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-3/neg/1.1.fir.kt @@ -0,0 +1,59 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 3 -> sentence 1 + * 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/expressions/constant-literals/real-literals/p-3/neg/1.2.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-3/neg/1.2.fir.kt new file mode 100644 index 00000000000..4c02691f1a3 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-3/neg/1.2.fir.kt @@ -0,0 +1,59 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 3 -> sentence 1 + * 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/expressions/constant-literals/real-literals/p-3/neg/2.1.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-3/neg/2.1.fir.kt new file mode 100644 index 00000000000..a91329a19ff --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-3/neg/2.1.fir.kt @@ -0,0 +1,35 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 3 -> sentence 2 + * 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/expressions/constant-literals/real-literals/p-3/pos/1.1.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-3/pos/1.1.fir.kt new file mode 100644 index 00000000000..858b9f3363b --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-3/pos/1.1.fir.kt @@ -0,0 +1,95 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 3 -> sentence 1 + * 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/expressions/constant-literals/real-literals/p-3/pos/1.2.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-3/pos/1.2.fir.kt new file mode 100644 index 00000000000..11afc3d4444 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-3/pos/1.2.fir.kt @@ -0,0 +1,98 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 3 -> sentence 1 + * 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/expressions/constant-literals/real-literals/p-3/pos/1.5.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-3/pos/1.5.fir.kt new file mode 100644 index 00000000000..66bfd0f7409 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-3/pos/1.5.fir.kt @@ -0,0 +1,86 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 3 -> sentence 1 + * 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/expressions/constant-literals/real-literals/p-3/pos/2.1.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-3/pos/2.1.fir.kt new file mode 100644 index 00000000000..5355d2ee181 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-3/pos/2.1.fir.kt @@ -0,0 +1,83 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 3 -> sentence 2 + * 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/expressions/constant-literals/real-literals/p-3/pos/2.2.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-3/pos/2.2.fir.kt new file mode 100644 index 00000000000..0ea2499bcbe --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-3/pos/2.2.fir.kt @@ -0,0 +1,77 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 3 -> sentence 2 + * 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/expressions/constant-literals/real-literals/p-3/pos/2.3.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-3/pos/2.3.fir.kt new file mode 100644 index 00000000000..f79859b5c19 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-3/pos/2.3.fir.kt @@ -0,0 +1,77 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 3 -> sentence 2 + * 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/expressions/constant-literals/real-literals/p-4/neg/1.1.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-4/neg/1.1.fir.kt new file mode 100644 index 00000000000..dee59798722 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-4/neg/1.1.fir.kt @@ -0,0 +1,53 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 4 -> sentence 1 + * 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/expressions/constant-literals/real-literals/p-4/neg/1.2.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-4/neg/1.2.fir.kt new file mode 100644 index 00000000000..0a9a5dd84f7 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-4/neg/1.2.fir.kt @@ -0,0 +1,53 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 4 -> sentence 1 + * 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/expressions/constant-literals/real-literals/p-4/neg/2.1.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-4/neg/2.1.fir.kt new file mode 100644 index 00000000000..1eef271ae40 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-4/neg/2.1.fir.kt @@ -0,0 +1,50 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 4 -> sentence 2 + * 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/expressions/constant-literals/real-literals/p-4/neg/2.2.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-4/neg/2.2.fir.kt new file mode 100644 index 00000000000..fd8c248f2cf --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-4/neg/2.2.fir.kt @@ -0,0 +1,95 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 4 -> sentence 2 + * 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/expressions/constant-literals/real-literals/p-4/neg/2.3.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-4/neg/2.3.fir.kt new file mode 100644 index 00000000000..b6b9225a6a0 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-4/neg/2.3.fir.kt @@ -0,0 +1,86 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 4 -> sentence 2 + * 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/expressions/constant-literals/real-literals/p-4/pos/1.1.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-4/pos/1.1.fir.kt new file mode 100644 index 00000000000..6cd743aadf3 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-4/pos/1.1.fir.kt @@ -0,0 +1,89 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 4 -> sentence 1 + * 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/expressions/constant-literals/real-literals/p-4/pos/1.2.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-4/pos/1.2.fir.kt new file mode 100644 index 00000000000..535a7ff1682 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-4/pos/1.2.fir.kt @@ -0,0 +1,89 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 4 -> sentence 1 + * 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/expressions/constant-literals/real-literals/p-4/pos/1.3.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-4/pos/1.3.fir.kt new file mode 100644 index 00000000000..f4bd20397af --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-4/pos/1.3.fir.kt @@ -0,0 +1,89 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 4 -> sentence 1 + * 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/expressions/constant-literals/real-literals/p-4/pos/1.4.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-4/pos/1.4.fir.kt new file mode 100644 index 00000000000..f8169c04bff --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-4/pos/1.4.fir.kt @@ -0,0 +1,95 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 4 -> sentence 1 + * 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/expressions/constant-literals/real-literals/p-4/pos/1.5.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-4/pos/1.5.fir.kt new file mode 100644 index 00000000000..507a65a04c8 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-4/pos/1.5.fir.kt @@ -0,0 +1,101 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 4 -> sentence 1 + * 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/expressions/constant-literals/real-literals/p-5/pos/1.1.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-5/pos/1.1.fir.kt new file mode 100644 index 00000000000..4c87ce5fc77 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-5/pos/1.1.fir.kt @@ -0,0 +1,51 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 5 -> sentence 1 + * NUMBER: 1 + * DESCRIPTION: A type checking of a simple real literal (with/without underscores). + * HELPERS: checkType + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0.1 checkType { check() } + +// TESTCASE NUMBER: 2 +val value_2 = 0.1234567890 checkType { check() } + +// TESTCASE NUMBER: 3 +val value_3 = -0.99___99999999 checkType { check() } + +// TESTCASE NUMBER: 4 +val value_4 = -1111111111.9_9_9_9_9_9_9_9_9_9 checkType { check() } + +// TESTCASE NUMBER: 5 +val value_5 = 6_6_6_6_6_6_6_6_6_6.0000000000 checkType { check() } + +// TESTCASE NUMBER: 6 +val value_6 = 66666666666666666666666666666666666666666666666666.000000000000000000000000000_____000000000000000000000001 checkType { check() } + +// TESTCASE NUMBER: 7 +val value_7 = 0.0 checkType { check() } + +// TESTCASE NUMBER: 8 +val value_8 = -0.0________0_______0______0_____0____0___0__0_0 checkType { check() } + +// TESTCASE NUMBER: 9 +val value_9 = 0.0000000000 checkType { check() } + +// TESTCASE NUMBER: 10 +val value_10 = 0.00000000000000000000000000__________________________________________________________________________________________00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 checkType { check() } + +// TESTCASE NUMBER: 11 +val value_11 = -0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 checkType { check() } + +// TESTCASE NUMBER: 12 +val value_12 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 checkType { check() } + +// TESTCASE NUMBER: 13 +val value_13 = -99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999.0 checkType { check() } + +// TESTCASE NUMBER: 14 +val value_14 = 222222222222222222___222222222222222222222___222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222.0 checkType { check() } diff --git a/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-5/pos/1.2.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-5/pos/1.2.fir.kt new file mode 100644 index 00000000000..0c47daa9861 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-5/pos/1.2.fir.kt @@ -0,0 +1,126 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 5 -> sentence 1 + * NUMBER: 2 + * DESCRIPTION: A type checking of a real literal with an exponent mark. + * HELPERS: checkType + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0.0e0 checkType { check() } + +// TESTCASE NUMBER: 2 +val value_2 = 0.0e-0____0 checkType { check() } + +// TESTCASE NUMBER: 3 +val value_3 = 0.0E000 checkType { check() } + +// TESTCASE NUMBER: 4 +val value_4 = 0.0E+0_0_0_0 checkType { check() } + +// TESTCASE NUMBER: 5 +val value_5 = 0________________________________________0.0e+0 checkType { check() } + +// TESTCASE NUMBER: 6 +val value_6 = 000.0___0e0_0 checkType { check() } + +// TESTCASE NUMBER: 7 +val value_7 = 0000.000E-000 checkType { check() } + +// TESTCASE NUMBER: 8 +val value_8 = 1.0E+1 checkType { check() } + +// TESTCASE NUMBER: 9 +val value_9 = 2_________2.0_0e2_2 checkType { check() } + +// TESTCASE NUMBER: 10 +val value_10 = 33____3.000e-333 checkType { check() } + +// TESTCASE NUMBER: 11 +val value_11 = 4444.0000e4444 checkType { check() } + +// TESTCASE NUMBER: 12 +val value_12 = 55555.0E-5_5_5_5_5 checkType { check() } + +// TESTCASE NUMBER: 13 +val value_13 = 6_6_6_6_6_6.0____0e666666 checkType { check() } + +// TESTCASE NUMBER: 14 +val value_14 = 7777777.000E7777777 checkType { check() } + +// TESTCASE NUMBER: 15 +val value_15 = 88888888.0000e-88888888 checkType { check() } + +// 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 { check() } + +// TESTCASE NUMBER: 17 +val value_17 = 0_________0________0_______0______0_____0____0___0__0_0.1234567890E999999999 checkType { check() } + +// TESTCASE NUMBER: 18 +val value_18 = 123456789.23456789E+123456789 checkType { check() } + +// TESTCASE NUMBER: 19 +val value_19 = 2345678.345678e00000000001 checkType { check() } + +// TESTCASE NUMBER: 20 +val value_20 = 34567.4_5__6___7E-100000000000 checkType { check() } + +// TESTCASE NUMBER: 21 +val value_21 = 456.5________6e-0 checkType { check() } + +// TESTCASE NUMBER: 22 +val value_22 = 5.65e000000000000 checkType { check() } + +// TESTCASE NUMBER: 23 +val value_23 = 654.7654E+0__1_0 checkType { check() } + +// TESTCASE NUMBER: 24 +val value_24 = 76543.876543E1 checkType { check() } + +// TESTCASE NUMBER: 25 +val value_25 = 8765432.98765432e-2 checkType { check() } + +// TESTCASE NUMBER: 26 +val value_26 = 9_8765432_1.0987654321E-3 checkType { check() } + +// TESTCASE NUMBER: 27 +val value_27 = 0.111_1e4 checkType { check() } + +// TESTCASE NUMBER: 28 +val value_28 = 1.2_2222E-5 checkType { check() } + +// TESTCASE NUMBER: 29 +val value_29 = 9.33333e+6 checkType { check() } + +// TESTCASE NUMBER: 30 +val value_30 = 9.444444E7 checkType { check() } + +// TESTCASE NUMBER: 31 +val value_31 = 8.5555555e8 checkType { check() } + +// TESTCASE NUMBER: 32 +val value_32 = 2.66666666e3_0_8 checkType { check() } + +// TESTCASE NUMBER: 33 +val value_33 = 3.7________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________77777777E-308 checkType { check() } + +// TESTCASE NUMBER: 34 +val value_34 = 7.8888888888e+30____9 checkType { check() } + +// TESTCASE NUMBER: 35 +val value_35 = 6.99999999999e-309 checkType { check() } + +// TESTCASE NUMBER: 36 +val value_36 = 7.888888___888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888e+111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 checkType { check() } + +// TESTCASE NUMBER: 37 +val value_37 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_0 checkType { check() } + +// TESTCASE NUMBER: 38 +val value_38 = 0.0_00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 checkType { check() } + +// TESTCASE NUMBER: 39 +val value_39 = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 checkType { check() } diff --git a/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-5/pos/1.3.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-5/pos/1.3.fir.kt new file mode 100644 index 00000000000..a041726b166 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-5/pos/1.3.fir.kt @@ -0,0 +1,96 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 5 -> sentence 1 + * NUMBER: 3 + * DESCRIPTION: A type checking of a real literal with omitted a whole-number part. + * HELPERS: checkType + */ + +// TESTCASE NUMBER: 1 +val value_1 = .0 checkType { check() } + +// TESTCASE NUMBER: 2 +val value_2 = .00 checkType { check() } + +// TESTCASE NUMBER: 3 +val value_3 = .000 checkType { check() } + +// TESTCASE NUMBER: 4 +val value_4 = .0000 checkType { check() } + +// TESTCASE NUMBER: 5 +val value_5 = .1234567890 checkType { check() } + +// TESTCASE NUMBER: 6 +val value_6 = .23456789 checkType { check() } + +// TESTCASE NUMBER: 7 +val value_7 = .345678 checkType { check() } + +// TESTCASE NUMBER: 8 +val value_8 = .4567 checkType { check() } + +// TESTCASE NUMBER: 9 +val value_9 = .56 checkType { check() } + +// TESTCASE NUMBER: 10 +val value_10 = .65 checkType { check() } + +// TESTCASE NUMBER: 11 +val value_11 = .7654 checkType { check() } + +// TESTCASE NUMBER: 12 +val value_12 = .876543 checkType { check() } + +// TESTCASE NUMBER: 13 +val value_13 = .98765432 checkType { check() } + +// TESTCASE NUMBER: 14 +val value_14 = .0987654321 checkType { check() } + +// TESTCASE NUMBER: 15 +val value_15 = .1111 checkType { check() } + +// TESTCASE NUMBER: 16 +val value_16 = .22222 checkType { check() } + +// TESTCASE NUMBER: 17 +val value_17 = .33333 checkType { check() } + +// TESTCASE NUMBER: 18 +val value_18 = .444444 checkType { check() } + +// TESTCASE NUMBER: 19 +val value_19 = .5555555 checkType { check() } + +// TESTCASE NUMBER: 20 +val value_20 = .66666666 checkType { check() } + +// TESTCASE NUMBER: 21 +val value_21 = .777777777 checkType { check() } + +// TESTCASE NUMBER: 22 +val value_22 = .8888888888 checkType { check() } + +// TESTCASE NUMBER: 23 +val value_23 = .99999999999 checkType { check() } + +// TESTCASE NUMBER: 24 +val value_24 = .00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 checkType { check() } + +// TESTCASE NUMBER: 25 +val value_25 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 checkType { check() } + +// TESTCASE NUMBER: 26 +val value_26 = .0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456789012345678901234567890123456789012345678901234567890 checkType { check() } + +// TESTCASE NUMBER: 27 +val value_27 = .44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444441 checkType { check() } + +// TESTCASE NUMBER: 28 +val value_28 = .777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777771 checkType { check() } + +// TESTCASE NUMBER: 29 +val value_29 = .9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999123456789912345678991234567899123456789912345678991234567899 checkType { check() } diff --git a/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-5/pos/1.4.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-5/pos/1.4.fir.kt new file mode 100644 index 00000000000..2775293e772 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-5/pos/1.4.fir.kt @@ -0,0 +1,99 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 5 -> sentence 1 + * NUMBER: 4 + * DESCRIPTION: A type checking of a real literal with omitted a whole-number part and an exponent mark. + * HELPERS: checkType + */ + +// TESTCASE NUMBER: 1 +val value_1 = .0e0 checkType { check() } + +// TESTCASE NUMBER: 2 +val value_2 = .0e-0__________________0 checkType { check() } + +// TESTCASE NUMBER: 3 +val value_3 = .0E000 checkType { check() } + +// TESTCASE NUMBER: 4 +val value_4 = .0E+0___0__0_0 checkType { check() } + +// TESTCASE NUMBER: 5 +val value_5 = .0e+0 checkType { check() } + +// TESTCASE NUMBER: 6 +val value_6 = .0_______0e00 checkType { check() } + +// TESTCASE NUMBER: 7 +val value_7 = .00_0E-000 checkType { check() } + +// TESTCASE NUMBER: 8 +val value_8 = .0E+1 checkType { check() } + +// TESTCASE NUMBER: 9 +val value_9 = .00e22 checkType { check() } + +// TESTCASE NUMBER: 10 +val value_10 = .000e-333 checkType { check() } + +// TESTCASE NUMBER: 12 +val value_12 = .0E-5_5_5_5_5 checkType { check() } + +// TESTCASE NUMBER: 15 +val value_15 = .0_0_0_0e-88888888 checkType { check() } + +// TESTCASE NUMBER: 19 +val value_19 = .345678e00000000001 checkType { check() } + +// TESTCASE NUMBER: 20 +val value_20 = .4______567E-100000000000 checkType { check() } + +// TESTCASE NUMBER: 21 +val value_21 = .5_6e-0 checkType { check() } + +// TESTCASE NUMBER: 22 +val value_22 = .65e000000000000 checkType { check() } + +// TESTCASE NUMBER: 23 +val value_23 = .7654E+01_____0 checkType { check() } + +// TESTCASE NUMBER: 24 +val value_24 = .87__65__43E1 checkType { check() } + +// TESTCASE NUMBER: 25 +val value_25 = .98765432e-2 checkType { check() } + +// TESTCASE NUMBER: 26 +val value_26 = .0987654321E-3 checkType { check() } + +// TESTCASE NUMBER: 27 +val value_27 = .1___1__1_1e4 checkType { check() } + +// TESTCASE NUMBER: 28 +val value_28 = .22222E-5 checkType { check() } + +// TESTCASE NUMBER: 29 +val value_29 = .33333e+6 checkType { check() } + +// TESTCASE NUMBER: 30 +val value_30 = .44444_4E7 checkType { check() } + +// TESTCASE NUMBER: 31 +val value_31 = .5555555e8 checkType { check() } + +// TESTCASE NUMBER: 33 +val value_33 = .7_77777777E-308 checkType { check() } + +// TESTCASE NUMBER: 35 +val value_35 = .99999999999e-3_0_9 checkType { check() } + +// TESTCASE NUMBER: 37 +val value_37 = .0____00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 checkType { check() } + +// TESTCASE NUMBER: 38 +val value_38 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000___0 checkType { check() } + +// TESTCASE NUMBER: 39 +val value_39 = .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 checkType { check() } diff --git a/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-5/pos/1.5.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-5/pos/1.5.fir.kt new file mode 100644 index 00000000000..9e488e1323b --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/real-literals/p-5/pos/1.5.fir.kt @@ -0,0 +1,78 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, real-literals -> paragraph 5 -> sentence 1 + * NUMBER: 5 + * DESCRIPTION: A type checking of a real literal with omitted a fraction part and an exponent mark. + * HELPERS: checkType + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0e0 checkType { check() } + +// TESTCASE NUMBER: 2 +val value_2 = 0_0e0_0 checkType { check() } + +// TESTCASE NUMBER: 3 +val value_3 = 000E-10 checkType { check() } + +// TESTCASE NUMBER: 4 +val value_4 = 00______00e+00000000000 checkType { check() } + +// TESTCASE NUMBER: 5 +val value_5 = 0000000000000000000000000000000000000_0E1 checkType { check() } + +// TESTCASE NUMBER: 6 +val value_6 = 1e1 checkType { check() } + +// TESTCASE NUMBER: 7 +val value_7 = 2___2E-1 checkType { check() } + +// TESTCASE NUMBER: 8 +val value_8 = 333e-00000000000 checkType { check() } + +// TESTCASE NUMBER: 9 +val value_9 = 4444E-99999999999999999 checkType { check() } + +// TESTCASE NUMBER: 10 +val value_10 = 5_5_5_5_5e10 checkType { check() } + +// TESTCASE NUMBER: 11 +val value_11 = 666666E0_0_0_1_0 checkType { check() } + +// TESTCASE NUMBER: 12 +val value_12 = 7777777e09090909090 checkType { check() } + +// TESTCASE NUMBER: 13 +val value_13 = 88888888e1234567890 checkType { check() } + +// TESTCASE NUMBER: 14 +val value_14 = 999999999E1234567890 checkType { check() } + +// TESTCASE NUMBER: 15 +val value_15 = 123456789e9_____87___654__32_1 checkType { check() } + +// TESTCASE NUMBER: 16 +val value_16 = 2345678E0 checkType { check() } + +// TESTCASE NUMBER: 17 +val value_17 = 3____4___5__6_7E+010 checkType { check() } + +// TESTCASE NUMBER: 18 +val value_18 = 456e-09876543210 checkType { check() } + +// TESTCASE NUMBER: 19 +val value_19 = 5e5_0_5 checkType { check() } + +// TESTCASE NUMBER: 20 +val value_20 = 654e5 checkType { check() } + +// TESTCASE NUMBER: 21 +val value_21 = 76543E-91823 checkType { check() } + +// TESTCASE NUMBER: 22 +val value_22 = 8765432e+9_______0 checkType { check() } + +// TESTCASE NUMBER: 23 +val value_23 = 9_87654321e-1 checkType { check() } diff --git a/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/neg/1.1.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/neg/1.1.fir.kt new file mode 100644 index 00000000000..20e8b8e4ca8 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/neg/1.1.fir.kt @@ -0,0 +1,32 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, the-types-for-integer-literals -> paragraph 1 -> sentence 1 + * NUMBER: 1 + * DESCRIPTION: Binary and hexadecimal integer literals with a long literal mark only. + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0bl + +// TESTCASE NUMBER: 2 +val value_2 = 0BL + +// TESTCASE NUMBER: 3 +val value_3 = 0Xl + +// TESTCASE NUMBER: 4 +val value_4 = 0xL + +// TESTCASE NUMBER: 5 +val value_5 = 0b_l + +// TESTCASE NUMBER: 6 +val value_6 = 0B_L + +// TESTCASE NUMBER: 7 +val value_7 = 0X____l + +// TESTCASE NUMBER: 8 +val value_8 = 0x_L diff --git a/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/neg/1.2.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/neg/1.2.fir.kt new file mode 100644 index 00000000000..2919e436d39 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/neg/1.2.fir.kt @@ -0,0 +1,20 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, the-types-for-integer-literals -> paragraph 1 -> sentence 1 + * NUMBER: 2 + * DESCRIPTION: Various integer literals with a not allowed underscore before the long literal mark. + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0b0_l + +// TESTCASE NUMBER: 2 +val value_2 = 0B12_L + +// TESTCASE NUMBER: 3 +val value_3 = 0X234_l + +// TESTCASE NUMBER: 4 +val value_4 = 0x3567_L diff --git a/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/neg/1.3.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/neg/1.3.fir.kt new file mode 100644 index 00000000000..c2b8127c989 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/neg/1.3.fir.kt @@ -0,0 +1,20 @@ +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, the-types-for-integer-literals -> paragraph 1 -> sentence 1 + * NUMBER: 3 + * DESCRIPTION: Various integer literals with not allowed long literal mark in lower case. + */ + +// TESTCASE NUMBER: 1 +val value_1 = 0l + +// TESTCASE NUMBER: 2 +val value_2 = 1000000000000000l + +// TESTCASE NUMBER: 3 +val value_3 = 0X0l + +// TESTCASE NUMBER: 4 +val value_4 = 0b101l diff --git a/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/neg/2.1.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/neg/2.1.fir.kt new file mode 100644 index 00000000000..11071288411 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/neg/2.1.fir.kt @@ -0,0 +1,21 @@ +// SKIP_TXT + +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, the-types-for-integer-literals -> paragraph 1 -> sentence 2 + * NUMBER: 1 + * DESCRIPTION: Various integer literals with not allowed long literal mark in lower case (type checking). + * HELPERS: checkType + */ + +// TESTCASE NUMBER: 1 +fun case_1() { + 0l checkType { check() } + 10000000000000l checkType { check() } + 0X000Af10cDl checkType { check() } + 0x0_0l checkType { check() } + 0b100_000_111_111l checkType { check() } + 0b0l checkType { check() } +} diff --git a/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/neg/2.2.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/neg/2.2.fir.kt new file mode 100644 index 00000000000..3b0f3d7aa93 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/neg/2.2.fir.kt @@ -0,0 +1,28 @@ +// SKIP_TXT + +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, the-types-for-integer-literals -> paragraph 1 -> sentence 2 + * NUMBER: 2 + * DESCRIPTION: Type checking (comparison with invalid types) of various integer literals with long literal mark. + * HELPERS: checkType + */ + +// TESTCASE NUMBER: 1 +fun case_1() { + 0L checkType { check() } + 1000000L checkType { check() } + 0XAf10cDL checkType { check() } + 0x0_0L checkType { check() } + 0b100_000_111_111L checkType { check() } + 0b0L checkType { check() } + + checkSubtype(0L) + checkSubtype(1000000L) + checkSubtype(0XAf10cDL) + checkSubtype(0x0_0L) + checkSubtype(0b100_000_111_111L) + checkSubtype(0b0L) +} diff --git a/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/neg/2.3.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/neg/2.3.fir.kt new file mode 100644 index 00000000000..c205de2373a --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/neg/2.3.fir.kt @@ -0,0 +1,122 @@ +// SKIP_TXT + +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, the-types-for-integer-literals -> paragraph 1 -> sentence 2 + * NUMBER: 3 + * DESCRIPTION: Type checking (comparison with invalid types) of various integer literals. + * HELPERS: checkType + */ + +// TESTCASE NUMBER: 1 +fun case_1() { + 0 checkType { check() } + 0 checkType { check() } + 0 checkType { check() } +} + +// TESTCASE NUMBER: 2 +fun case_2() { + 127 checkType { check() } + 127 checkType { check() } + 127 checkType { check() } + + checkSubtype(128) + 128 checkType { check() } + 128 checkType { check() } + 128 checkType { check() } + + -128 checkType { check() } + -128 checkType { check() } + -128 checkType { check() } + + checkSubtype(-129) + -129 checkType { check() } + -129 checkType { check() } + -129 checkType { check() } +} + +// TESTCASE NUMBER: 3 +fun case_3() { + checkSubtype(32767) + 32767 checkType { check() } + 32767 checkType { check() } + 32767 checkType { check() } + + checkSubtype(32768) + checkSubtype(32768) + 32768 checkType { check() } + 32768 checkType { check() } + 32768 checkType { check() } + + checkSubtype(-32768) + -32768 checkType { check() } + -32768 checkType { check() } + -32768 checkType { check() } + + checkSubtype(-32769) + checkSubtype(-32769) + -32769 checkType { check() } + -32769 checkType { check() } + -32769 checkType { check() } +} + +// TESTCASE NUMBER: 4 +fun case_4() { + checkSubtype(2147483647) + checkSubtype(2147483647) + 2147483647 checkType { check() } + 2147483647 checkType { check() } + 2147483647 checkType { check() } + + checkSubtype(2147483648) + checkSubtype(2147483648) + checkSubtype(2147483648) + 2147483648 checkType { check() } + 2147483648 checkType { check() } + 2147483648 checkType { check() } + + checkSubtype(-2147483648) + checkSubtype(-2147483648) + -2147483648 checkType { check() } + -2147483648 checkType { check() } + -2147483648 checkType { check() } + + checkSubtype(-2147483649) + checkSubtype(-2147483649) + checkSubtype(-2147483649) + -2147483649 checkType { check() } + -2147483649 checkType { check() } + -2147483649 checkType { check() } +} + +// TESTCASE NUMBER: 5 +fun case_5() { + checkSubtype(9223372036854775807) + checkSubtype(9223372036854775807) + checkSubtype(9223372036854775807) + 9223372036854775807 checkType { check() } + 9223372036854775807 checkType { check() } + 9223372036854775807 checkType { check() } + + checkSubtype(-9223372036854775807) + checkSubtype(-9223372036854775807) + checkSubtype(-9223372036854775807) + -9223372036854775807 checkType { check() } + -9223372036854775807 checkType { check() } + -9223372036854775807 checkType { check() } +} + +// TESTCASE NUMBER: 6 +fun case_6() { + checkSubtype(-100000000000000000000000000000000) + checkSubtype(-100000000000000000000000000000000) + checkSubtype(-100000000000000000000000000000000) + checkSubtype(-100000000000000000000000000000000) + -100000000000000000000000000000000 checkType { check() } + -100000000000000000000000000000000 checkType { check() } + -100000000000000000000000000000000 checkType { check() } + -100000000000000000000000000000000 checkType { check() } +} diff --git a/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/neg/2.4.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/neg/2.4.fir.kt new file mode 100644 index 00000000000..02016eee0be --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/neg/2.4.fir.kt @@ -0,0 +1,35 @@ +// SKIP_TXT + +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, the-types-for-integer-literals -> paragraph 1 -> sentence 2 + * NUMBER: 4 + * DESCRIPTION: Type checking (comparison with invalid types) of too a big integers. + * HELPERS: checkType + */ + +// TESTCASE NUMBER: 1 +fun case_1() { + checkSubtype(-9223372036854775808L) + -9223372036854775808L checkType { check() } + + checkSubtype(9223372036854775808L) + 9223372036854775808L checkType { check() } +} + +// TESTCASE NUMBER: 2 +fun case_2() { + checkSubtype(100000000000000000000000000000000L) + 100000000000000000000000000000000L checkType { check() } + + checkSubtype(100000000000000000000000000000000l) + 100000000000000000000000000000000l checkType { check() } + + checkSubtype(-100000000000000000000000000000000L) + -100000000000000000000000000000000L checkType { check() } + + checkSubtype(-100000000000000000000000000000000l) + -100000000000000000000000000000000l checkType { check() } +} diff --git a/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/neg/2.5.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/neg/2.5.fir.kt new file mode 100644 index 00000000000..6b51dd827d1 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/neg/2.5.fir.kt @@ -0,0 +1,68 @@ +// SKIP_TXT + +/* + * KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, the-types-for-integer-literals -> paragraph 1 -> sentence 2 + * NUMBER: 5 + * DESCRIPTION: Check of integer type selection depends on the context (incopatible types). + * HELPERS: checkType + */ + +// FILE: functions.kt + +package functions + +// TESTCASE NUMBER: 1 +fun f1(x1: Byte) = x1 + +// TESTCASE NUMBER: 2 +fun f2(x1: Short) = x1 + +// TESTCASE NUMBER: 3, 4 +fun f3(x1: Int) = x1 + +// FILE: main.kt + +import functions.* + +// TESTCASE NUMBER: 1 +fun case_1() { + f1(128) + f1(-129) + f1(32767) + f1(-32768) + f1(2147483647) + f1(-2147483648) + f1(9223372036854775807) + f1(-9223372036854775807) + f1(1000000000000000000000000000000000000000000000000) + f1(-1000000000000000000000000000000000000000000000000) +} + +// TESTCASE NUMBER: 2 +fun case_2() { + f2(32768) + f2(-32769) + f2(2147483647) + f2(-2147483648) + f2(9223372036854775807) + f2(-9223372036854775807) + f2(1000000000000000000000000000000000000000000000000) + f2(-1000000000000000000000000000000000000000000000000) +} + +// TESTCASE NUMBER: 3 +fun case_3() { + f3(9223372036854775807) + f3(-9223372036854775807) + f3(1000000000000000000000000000000000000000000000000) + f3(-1000000000000000000000000000000000000000000000000) +} + +// TESTCASE NUMBER: 4 +fun case_4() { + f3(1000000000000000000000000000000000000000000000000) + f3(-1000000000000000000000000000000000000000000000000) +} diff --git a/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/pos/2.2.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/pos/2.2.fir.kt new file mode 100644 index 00000000000..a89d828bec9 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/pos/2.2.fir.kt @@ -0,0 +1,92 @@ +// SKIP_TXT + +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, the-types-for-integer-literals -> paragraph 1 -> sentence 2 + * NUMBER: 2 + * DESCRIPTION: Type checking of decimal integer literals. + * HELPERS: checkType + */ + +// TESTCASE NUMBER: 1 +fun case_1() { + 0 checkType { check() } + checkSubtype(0) + checkSubtype(0) + checkSubtype(0) + checkSubtype(0) +} + +// TESTCASE NUMBER: 2 +fun case_2() { + 127 checkType { check() } + checkSubtype(127) + checkSubtype(127) + checkSubtype(127) + checkSubtype(127) + + 128 checkType { check() } + checkSubtype(128) + checkSubtype(128) + checkSubtype(128) + + -128 checkType { check() } + checkSubtype(-128) + checkSubtype(-128) + checkSubtype(-128) + checkSubtype(-128) + + -129 checkType { check() } + checkSubtype(-129) + checkSubtype(-129) + checkSubtype(-129) +} + +// TESTCASE NUMBER: 3 +fun case_3() { + 32767 checkType { check() } + checkSubtype(32767) + checkSubtype(32767) + checkSubtype(32767) + + 32768 checkType { check() } + checkSubtype(32768) + checkSubtype(32768) + + -32768 checkType { check() } + checkSubtype(-32768) + checkSubtype(-32768) + checkSubtype(-32768) + + -32769 checkType { check() } + checkSubtype(-32769) + checkSubtype(-32769) +} + +// TESTCASE NUMBER: 4 +fun case_4() { + 2147483647 checkType { check() } + checkSubtype(2147483647) + checkSubtype(2147483647) + + 2147483648 checkType { check() } + checkSubtype(2147483648) + + -2147483648 checkType { check() } + checkSubtype(-2147483648) + checkSubtype(-2147483648) + + -2147483649 checkType { check() } + checkSubtype(-2147483649) +} + +// TESTCASE NUMBER: 5 +fun case_5() { + 9223372036854775807 checkType { check() } + checkSubtype(9223372036854775807) + + -9223372036854775807 checkType { check() } + checkSubtype(-9223372036854775807) +} diff --git a/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/pos/2.3.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/pos/2.3.fir.kt new file mode 100644 index 00000000000..c660cde8f03 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/pos/2.3.fir.kt @@ -0,0 +1,92 @@ +// SKIP_TXT + +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, the-types-for-integer-literals -> paragraph 1 -> sentence 2 + * NUMBER: 3 + * DESCRIPTION: Type checking of hexadecimal integer literals. + * HELPERS: checkType + */ + +// TESTCASE NUMBER: 1 +fun case_1() { + 0x0 checkType { check() } + checkSubtype(0x0) + checkSubtype(0x0) + checkSubtype(0x0) + checkSubtype(0x0) +} + +// TESTCASE NUMBER: 2 +fun case_2() { + 0x7F checkType { check() } + checkSubtype(0x7F) + checkSubtype(0x7F) + checkSubtype(0x7F) + checkSubtype(0x7F) + + 0X80 checkType { check() } + checkSubtype(0X80) + checkSubtype(0X80) + checkSubtype(0X80) + + -0X80 checkType { check() } + checkSubtype(-0X80) + checkSubtype(-0X80) + checkSubtype(-0X80) + checkSubtype(-0X80) + + -0x81 checkType { check() } + checkSubtype(-0x81) + checkSubtype(-0x81) + checkSubtype(-0x81) +} + +// TESTCASE NUMBER: 3 +fun case_3() { + 0x7FFF checkType { check() } + checkSubtype(0x7FFF) + checkSubtype(0x7FFF) + checkSubtype(0x7FFF) + + 0x8000 checkType { check() } + checkSubtype(0x8000) + checkSubtype(0x8000) + + -0x8000 checkType { check() } + checkSubtype(-0x8000) + checkSubtype(-0x8000) + checkSubtype(-0x8000) + + -0X8001 checkType { check() } + checkSubtype(-0X8001) + checkSubtype(-0X8001) +} + +// TESTCASE NUMBER: 4 +fun case_4() { + 0x7FFFFFFF checkType { check() } + checkSubtype(0x7FFFFFFF) + checkSubtype(0x7FFFFFFF) + + 0x80000000 checkType { check() } + checkSubtype(0x80000000) + + -0x80000000 checkType { check() } + checkSubtype(-0x80000000) + checkSubtype(-0x80000000) + + -0x80000001 checkType { check() } + checkSubtype(-0x80000001) +} + +// TESTCASE NUMBER: 5 +fun case_5() { + 0X7FFFFFFFFFFFFFFF checkType { check() } + checkSubtype(0X7FFFFFFFFFFFFFFF) + + -0X7FFFFFFFFFFFFFFF checkType { check() } + checkSubtype(-0X7FFFFFFFFFFFFFFF) +} diff --git a/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/pos/2.4.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/pos/2.4.fir.kt new file mode 100644 index 00000000000..1dc078b8aa1 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/expressions/constant-literals/the-types-for-integer-literals/p-1/pos/2.4.fir.kt @@ -0,0 +1,92 @@ +// SKIP_TXT + +/* + * KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + * + * SPEC VERSION: 0.1-100 + * PLACE: expressions, constant-literals, the-types-for-integer-literals -> paragraph 1 -> sentence 2 + * NUMBER: 4 + * DESCRIPTION: Type checking of binary integer literals. + * HELPERS: checkType + */ + +// TESTCASE NUMBER: 1 +fun case_1() { + 0b0 checkType { check() } + checkSubtype(0b0) + checkSubtype(0b0) + checkSubtype(0b0) + checkSubtype(0b0) +} + +// TESTCASE NUMBER: 2 +fun case_2() { + 0B1111111 checkType { check() } + checkSubtype(0B1111111) + checkSubtype(0B1111111) + checkSubtype(0B1111111) + checkSubtype(0B1111111) + + 0b10000000 checkType { check() } + checkSubtype(0b10000000) + checkSubtype(0b10000000) + checkSubtype(0b10000000) + + -0B10000000 checkType { check() } + checkSubtype(-0B10000000) + checkSubtype(-0B10000000) + checkSubtype(-0B10000000) + checkSubtype(-0B10000000) + + -0b10000001 checkType { check() } + checkSubtype(-0b10000001) + checkSubtype(-0b10000001) + checkSubtype(-0b10000001) +} + +// TESTCASE NUMBER: 3 +fun case_3() { + 0B111111111111111 checkType { check() } + checkSubtype(0B111111111111111) + checkSubtype(0B111111111111111) + checkSubtype(0B111111111111111) + + 0b1000000000000000 checkType { check() } + checkSubtype(0b1000000000000000) + checkSubtype(0b1000000000000000) + + -0b1000000000000000 checkType { check() } + checkSubtype(-0b1000000000000000) + checkSubtype(-0b1000000000000000) + checkSubtype(-0b1000000000000000) + + -0B1000000000000001 checkType { check() } + checkSubtype(-0B1000000000000001) + checkSubtype(-0B1000000000000001) +} + +// TESTCASE NUMBER: 4 +fun case_4() { + 0b1111111111111111111111111111111 checkType { check() } + checkSubtype(0b1111111111111111111111111111111) + checkSubtype(0b1111111111111111111111111111111) + + 0B10000000000000000000000000000000 checkType { check() } + checkSubtype(0B10000000000000000000000000000000) + + -0B10000000000000000000000000000000 checkType { check() } + checkSubtype(-0B10000000000000000000000000000000) + checkSubtype(-0B10000000000000000000000000000000) + + -0b10000000000000000000000000000001 checkType { check() } + checkSubtype(-0b10000000000000000000000000000001) +} + +// TESTCASE NUMBER: 5 +fun case_5() { + 0b111111111111111111111111111111111111111111111111111111111111111 checkType { check() } + checkSubtype(0b111111111111111111111111111111111111111111111111111111111111111) + + -0B111111111111111111111111111111111111111111111111111111111111111 checkType { check() } + checkSubtype(-0B111111111111111111111111111111111111111111111111111111111111111) +}