From b86211b43497514cc38621a25a2f4d7d472e2570 Mon Sep 17 00:00:00 2001 From: "victor.petukhov" Date: Fri, 12 Oct 2018 16:27:22 +0300 Subject: [PATCH] Add spec tests for integer literals --- .../binary-integer-literals/p-1/pos/1.1.kt | 99 +++ .../binary-integer-literals/p-1/pos/2.1.kt | 34 + .../decimal-integer-literals/p-1/pos/1.1.kt | 42 ++ .../decimal-integer-literals/p-1/pos/2.1.kt | 32 + .../p-1/pos/1.1.kt | 99 +++ .../p-1/pos/2.1.kt | 34 + .../long-integer-literals/p-1/pos/1.1.kt | 49 ++ .../long-integer-literals/p-1/pos/1.2.kt | 49 ++ .../long-integer-literals/p-1/pos/1.3.kt | 49 ++ .../binary-integer-literals/p-1/neg/1.1.kt | 12 + .../binary-integer-literals/p-1/neg/1.1.txt | 4 + .../binary-integer-literals/p-1/neg/2.1.kt | 14 + .../binary-integer-literals/p-1/neg/2.1.txt | 6 + .../binary-integer-literals/p-1/neg/2.2.kt | 21 + .../binary-integer-literals/p-1/neg/2.2.txt | 13 + .../binary-integer-literals/p-1/neg/2.3.kt | 17 + .../binary-integer-literals/p-1/neg/2.3.txt | 9 + .../decimal-integer-literals/p-1/neg/2.1.kt | 15 + .../decimal-integer-literals/p-1/neg/2.1.txt | 7 + .../decimal-integer-literals/p-1/neg/2.2.kt | 18 + .../decimal-integer-literals/p-1/neg/2.2.txt | 10 + .../p-1/neg/1.1.kt | 12 + .../p-1/neg/1.1.txt | 4 + .../p-1/neg/2.1.kt | 14 + .../p-1/neg/2.1.txt | 6 + .../p-1/neg/2.2.kt | 21 + .../p-1/neg/2.2.txt | 13 + .../p-1/neg/2.3.kt | 17 + .../p-1/neg/2.3.txt | 9 + .../long-integer-literals/p-1/neg/1.1.kt | 19 + .../long-integer-literals/p-1/neg/1.1.txt | 10 + .../long-integer-literals/p-1/neg/1.2.kt | 14 + .../long-integer-literals/p-1/neg/1.2.txt | 6 + .../long-integer-literals/p-1/neg/1.3.kt | 14 + .../long-integer-literals/p-1/neg/1.3.txt | 6 + .../long-integer-literals/p-1/neg/2.1.kt | 21 + .../long-integer-literals/p-1/neg/2.2.kt | 28 + .../long-integer-literals/p-1/neg/2.3.kt | 107 ++++ .../long-integer-literals/p-1/neg/2.4.kt | 32 + .../long-integer-literals/p-1/neg/2.5.kt | 64 ++ .../long-integer-literals/p-1/pos/2.1.kt | 32 + .../long-integer-literals/p-1/pos/2.2.kt | 80 +++ .../long-integer-literals/p-1/pos/2.3.kt | 80 +++ .../long-integer-literals/p-1/pos/2.4.kt | 80 +++ .../long-integer-literals/p-1/pos/2.5.kt | 55 ++ .../binary-integer-literals/p-1/neg/1.1.kt | 33 + .../binary-integer-literals/p-1/neg/1.1.txt | 359 +++++++++++ .../binary-integer-literals/p-1/neg/1.2.kt | 34 + .../binary-integer-literals/p-1/neg/1.2.txt | 363 +++++++++++ .../binary-integer-literals/p-1/neg/2.1.kt | 22 + .../binary-integer-literals/p-1/neg/2.1.txt | 184 ++++++ .../binary-integer-literals/p-1/pos/1.1.kt | 26 + .../binary-integer-literals/p-1/pos/1.1.txt | 154 +++++ .../binary-integer-literals/p-1/pos/1.2.kt | 14 + .../binary-integer-literals/p-1/pos/1.2.txt | 44 ++ .../binary-integer-literals/p-1/pos/1.3.kt | 12 + .../binary-integer-literals/p-1/pos/1.3.txt | 24 + .../binary-integer-literals/p-1/pos/2.1.kt | 18 + .../binary-integer-literals/p-1/pos/2.1.txt | 84 +++ .../binary-integer-literals/p-1/pos/2.2.kt | 14 + .../binary-integer-literals/p-1/pos/2.2.txt | 44 ++ .../binary-integer-literals/p-1/pos/2.3.kt | 17 + .../binary-integer-literals/p-1/pos/2.3.txt | 74 +++ .../binary-integer-literals/p-1/pos/2.4.kt | 21 + .../binary-integer-literals/p-1/pos/2.4.txt | 114 ++++ .../decimal-integer-literals/p-1/neg/1.1.kt | 37 ++ .../decimal-integer-literals/p-1/neg/1.1.txt | 378 +++++++++++ .../decimal-integer-literals/p-1/pos/1.1.kt | 27 + .../decimal-integer-literals/p-1/pos/1.1.txt | 144 +++++ .../decimal-integer-literals/p-1/pos/2.1.kt | 18 + .../decimal-integer-literals/p-1/pos/2.1.txt | 84 +++ .../decimal-integer-literals/p-1/pos/2.2.kt | 15 + .../decimal-integer-literals/p-1/pos/2.2.txt | 54 ++ .../decimal-integer-literals/p-1/pos/2.3.kt | 18 + .../decimal-integer-literals/p-1/pos/2.3.txt | 84 +++ .../decimal-integer-literals/p-2/neg/1.1.kt | 15 + .../decimal-integer-literals/p-2/neg/1.1.txt | 68 ++ .../decimal-integer-literals/p-2/neg/1.2.kt | 15 + .../decimal-integer-literals/p-2/neg/1.2.txt | 78 +++ .../p-1/neg/1.1.kt | 34 + .../p-1/neg/1.1.txt | 362 +++++++++++ .../p-1/neg/1.2.kt | 51 ++ .../p-1/neg/1.2.txt | 589 ++++++++++++++++++ .../p-1/neg/2.1.kt | 22 + .../p-1/neg/2.1.txt | 184 ++++++ .../p-1/pos/1.1.kt | 57 ++ .../p-1/pos/1.1.txt | 404 ++++++++++++ .../p-1/pos/1.2.kt | 12 + .../p-1/pos/1.2.txt | 24 + .../p-1/pos/2.1.kt | 19 + .../p-1/pos/2.1.txt | 94 +++ .../p-1/pos/2.2.kt | 14 + .../p-1/pos/2.2.txt | 44 ++ .../p-1/pos/2.3.kt | 17 + .../p-1/pos/2.3.txt | 74 +++ .../p-1/pos/2.4.kt | 21 + .../p-1/pos/2.4.txt | 114 ++++ .../long-integer-literals/p-1/neg/1.1.kt | 16 + .../long-integer-literals/p-1/neg/1.1.txt | 94 +++ .../long-integer-literals/p-1/neg/1.2.kt | 21 + .../long-integer-literals/p-1/neg/1.2.txt | 154 +++++ .../long-integer-literals/p-1/neg/1.3.kt | 16 + .../long-integer-literals/p-1/neg/1.3.txt | 94 +++ .../long-integer-literals/p-1/neg/1.4.kt | 14 + .../long-integer-literals/p-1/neg/1.4.txt | 67 ++ .../long-integer-literals/p-1/pos/1.1.kt | 27 + .../long-integer-literals/p-1/pos/1.1.txt | 144 +++++ .../long-integer-literals/p-1/pos/1.10.kt | 14 + .../long-integer-literals/p-1/pos/1.10.txt | 44 ++ .../long-integer-literals/p-1/pos/1.2.kt | 24 + .../long-integer-literals/p-1/pos/1.2.txt | 134 ++++ .../long-integer-literals/p-1/pos/1.3.kt | 56 ++ .../long-integer-literals/p-1/pos/1.3.txt | 404 ++++++++++++ .../long-integer-literals/p-1/pos/1.4.kt | 12 + .../long-integer-literals/p-1/pos/1.4.txt | 24 + .../long-integer-literals/p-1/pos/1.5.kt | 32 + .../long-integer-literals/p-1/pos/1.5.txt | 204 ++++++ .../long-integer-literals/p-1/pos/1.6.kt | 30 + .../long-integer-literals/p-1/pos/1.6.txt | 194 ++++++ .../long-integer-literals/p-1/pos/1.7.kt | 12 + .../long-integer-literals/p-1/pos/1.7.txt | 24 + .../long-integer-literals/p-1/pos/1.8.kt | 31 + .../long-integer-literals/p-1/pos/1.8.txt | 194 ++++++ .../long-integer-literals/p-1/pos/1.9.kt | 26 + .../long-integer-literals/p-1/pos/1.9.txt | 164 +++++ .../DiagnosticsTestSpecGenerated.java | 310 +++++++++ .../BlackBoxCodegenTestSpecGenerated.java | 214 +++++++ .../parsing/ParsingTestSpecGenerated.java | 447 +++++++++++++ 128 files changed, 9444 insertions(+) create mode 100644 compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.1.kt create mode 100644 compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.1.kt create mode 100644 compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/1.1.kt create mode 100644 compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.1.kt create mode 100644 compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/1.1.kt create mode 100644 compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.1.kt create mode 100644 compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.1.kt create mode 100644 compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.2.kt create mode 100644 compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.3.kt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.1.kt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.1.txt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.1.kt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.1.txt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.2.kt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.2.txt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.3.kt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.3.txt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg/2.1.kt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg/2.1.txt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg/2.2.kt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg/2.2.txt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.1.kt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.1.txt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.1.kt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.1.txt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.2.kt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.2.txt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.3.kt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.3.txt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.1.kt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.1.txt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.2.kt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.2.txt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.3.kt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.3.txt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/2.1.kt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/2.2.kt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/2.3.kt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/2.4.kt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/2.5.kt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/2.1.kt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/2.2.kt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/2.3.kt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/2.4.kt create mode 100644 compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/2.5.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.1.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.1.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.2.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.2.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.1.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.1.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.1.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.1.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.2.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.2.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.3.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.3.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.1.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.1.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.2.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.2.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.3.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.3.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.4.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.4.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg/1.1.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg/1.1.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/1.1.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/1.1.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.1.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.1.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.2.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.2.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.3.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.3.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-2/neg/1.1.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-2/neg/1.1.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-2/neg/1.2.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-2/neg/1.2.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.1.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.1.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.2.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.2.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.1.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.1.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/1.1.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/1.1.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/1.2.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/1.2.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.1.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.1.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.2.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.2.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.3.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.3.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.4.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.4.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.1.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.1.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.2.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.2.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.3.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.3.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.4.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.4.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.1.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.1.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.10.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.10.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.2.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.2.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.3.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.3.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.4.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.4.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.5.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.5.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.6.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.6.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.7.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.7.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.8.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.8.txt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.9.kt create mode 100644 compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.9.txt diff --git a/compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.1.kt b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.1.kt new file mode 100644 index 00000000000..f5926bbac3f --- /dev/null +++ b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.1.kt @@ -0,0 +1,99 @@ +/* + KOTLIN CODEGEN BOX SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, binary-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] A sequence of decimal digit symbols (0 though 9) is a decimal integer literal. + NUMBER: 1 + DESCRIPTION: Sequences with binary digit symbols. + */ + +val value_1 = 0b1110001100 +val value_2 = 0B11000110 +val value_3 = 0b100011 +val value_7 = 0B1000 +val value_8 = 0b110001 +val value_9 = 0b01100011 + +val value_10 = 0B0 +val value_11 = 0b1 + +val value_12 = 0b100000 +val value_13 = 0B1000001 + +val value_14 = 0B0000000 +val value_16 = 0b00000010 + +val value_17 = 0b001101 +val value_18 = 0B001101 +val value_19 = 0b0011 +val value_23 = 0B00000000 +val value_24 = 0b111 +val value_25 = 0b01111111110 + +val value_26 = 0b0111000110001101 +val value_27 = 0b0111000110001101 +val value_28 = 0B000000 +val value_29 = 0b011101 +val value_30 = 0b00 +val value_31 = 0B01 +val value_32 = 0b010010010000 +val value_33 = 0B000000000000 +val value_34 = 0b111001 + +fun box(): String? { + val value_4 = 0B0001 + val value_5 = 0B00 + val value_6 = 0b00 + val value_15 = 0b0000001000000 + val value_20 = 0B0 + val value_21 = 0b0 + val value_22 = 0b00000000 + val value_35 = 0b011110000111110 + val value_36 = 0B00000000 + val value_37 = 0b00000000 + val value_38 = 0b000000010000000 + val value_39 = 0b000 + + if (value_1 != 0b1110001100 || value_1 != 908) return null + if (value_2 != 0B11000110 || value_2 != 198) return null + if (value_3 != 0b100011 || value_3 != 35) return null + if (value_4 != 0B0001 || value_4 != 1) return null + if (value_5 != 0B00 || value_5 != 0) return null + if (value_6 != 0b00 || value_6 != 0) return null + if (value_7 != 0B1000 || value_7 != 8) return null + if (value_8 != 0b110001 || value_8 != 49) return null + if (value_9 != 0b01100011 || value_9 != 99) return null + if (value_10 != 0B0 || value_10 != 0) return null + if (value_11 != 0b1 || value_11 != 1) return null + if (value_12 != 0b100000 || value_12 != 32) return null + if (value_13 != 0B1000001 || value_13 != 65) return null + if (value_14 != 0B0000000 || value_14 != 0) return null + if (value_15 != 0b0000001000000 || value_15 != 64) return null + if (value_16 != 0b00000010 || value_16 != 2) return null + if (value_17 != 0b001101 || value_17 != 13) return null + if (value_18 != 0B001101 || value_18 != 13) return null + if (value_19 != 0b0011 || value_19 != 3) return null + if (value_20 != 0B0 || value_20 != 0) return null + if (value_21 != 0b0 || value_21 != 0) return null + if (value_22 != 0b00000000 || value_22 != 0) return null + if (value_23 != 0B00000000 || value_23 != 0) return null + if (value_24 != 0b111 || value_24 != 7) return null + if (value_25 != 0b01111111110 || value_25 != 1022) return null + if (value_26 != 0b0111000110001101 || value_26 != 29069) return null + if (value_27 != 0b0111000110001101 || value_27 != 29069) return null + if (value_28 != 0B000000 || value_28 != 0) return null + if (value_29 != 0b011101 || value_29 != 29) return null + if (value_30 != 0b00 || value_30 != 0) return null + if (value_31 != 0B01 || value_31 != 1) return null + if (value_32 != 0b010010010000 || value_32 != 1168) return null + if (value_33 != 0B000000000000 || value_33 != 0) return null + if (value_34 != 0b111001 || value_34 != 57) return null + if (value_35 != 0b011110000111110 || value_35 != 15422) return null + if (value_36 != 0B00000000 || value_36 != 0) return null + if (value_37 != 0b00000000 || value_37 != 0) return null + if (value_38 != 0b000000010000000 || value_38 != 128) return null + if (value_39 != 0b000 || value_39 != 0) return null + + return "OK" +} diff --git a/compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.1.kt b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.1.kt new file mode 100644 index 00000000000..876d4fa8451 --- /dev/null +++ b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.1.kt @@ -0,0 +1,34 @@ +/* + KOTLIN CODEGEN BOX SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, binary-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] A sequence of decimal digit symbols (0 though 9) is a decimal integer literal. + NUMBER: 1 + DESCRIPTION: Sequences with binary digit symbols separated by underscores. + */ + +val value_1 = 0b1_110110100 +val value_2 = 0b1_______1011010 +val value_3 = 0b1_0_1_1_0_1 +val value_4 = 0b0_______1_______1_______0 +val value_5 = 0b1__________________________________________________________________________________________________1 +val value_6 = 0b0_______0 + +fun box(): String? { + val value_7 = 0B0_0 + val value_8 = 0b1_______________________________________________________________________________________________________________________________________________________0 + val value_9 = 0b1_00000000000000_1 + + if (value_1 != 0b1110110100 || value_1 != 0B1_110110100 || value_1 != 948) return null + if (value_2 != 0b11011010 || value_2 != 0b1_______1011010 || value_2 != 218) return null + if (value_3 != 0b101101 || value_3 != 0b1_0_1_1_0_1 || value_3 != 45) return null + if (value_4 != 0b0110 || value_4 != 0B0_______1_______1_______0 || value_4 != 6) return null + if (value_5 != 0b11 || value_5 != 0b1__________________________________________________________________________________________________1 || value_5 != 3) return null + if (value_6 != 0b0_______0 || value_6 != 0b00 || value_6 != 0b0 || value_6 != 0) return null + if (value_7 != 0b0_0 || value_7 != 0b00 || value_7 != 0b0 || value_7 != 0) return null + if (value_8 != 0b10 || value_8 != 0B1_______________________________________________________________________________________________________________________________________________________0 || value_8 != 2) return null + if (value_9 != 0b1000000000000001 || value_9 != 0B1_00000000000000_1 || value_9 != 32769) return null + + return "OK" +} diff --git a/compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/1.1.kt b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/1.1.kt new file mode 100644 index 00000000000..81d2f6dcc1e --- /dev/null +++ b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/1.1.kt @@ -0,0 +1,42 @@ +/* + KOTLIN CODEGEN BOX SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, decimal-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] A sequence of decimal digit symbols (0 though 9) is a decimal integer literal. + NUMBER: 1 + DESCRIPTION: Sequences with decimal digit symbols. + */ + +val value_1 = 1234567890 +val value_2 = 23456789 +val value_3 = 345678 +val value_4 = 4567 +val value_5 = 56 +val value_6 = 65 +val value_7 = 7654 +val value_8 = 876543 +val value_9 = 98765432 + +fun box(): String? { + val value_10 = 0 + val value_11 = 1 + val value_12 = 100000 + val value_13 = 1000001 + + if (value_1 != 1234567890) return null + if (value_2 != 23456789) return null + if (value_3 != 345678) return null + if (value_4 != 4567) return null + if (value_5 != 56) return null + if (value_6 != 65) return null + if (value_7 != 7654) return null + if (value_8 != 876543) return null + if (value_9 != 98765432) return null + if (value_10 != 0) return null + if (value_11 != 1) return null + if (value_12 != 100000) return null + if (value_13 != 1000001) return null + + return "OK" +} diff --git a/compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.1.kt b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.1.kt new file mode 100644 index 00000000000..a80eee210ae --- /dev/null +++ b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.1.kt @@ -0,0 +1,32 @@ +/* + KOTLIN CODEGEN BOX SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, decimal-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] Digits may be separated by an underscore symbol, but no underscore can be placed before the first digit or after the last one. + NUMBER: 1 + DESCRIPTION: Sequences with decimal digit symbols separated by underscores. + */ + +val value_1 = 1234_5678_90 +val value_2 = 1_2_3_4_5_6_7_8_9_0 +val value_3 = 1_2 +val value_4 = 1_00000000000000000_1 +val value_5 = 1_____________2 + +fun box(): String? { + val value_6 = 9_____________0000 + val value_7 = 9____________0_0000 + val value_8 = 1_______________________________________________________________________________________________________________________________________________________0 + + if (value_1 != 1234_5678_90 || value_1 != 1234567890) return null + if (value_2 != 1_2_3_4_5_6_7_8_9_0 || value_2 != 1234567890) return null + if (value_3 != 1_2 || value_3 != 12) return null + if (value_4 != 1_00000000000000000_1 || value_4 != 1000000000000000001) return null + if (value_5 != 1_____________2 || value_5 != 12) return null + if (value_6 != 9_____________0000 || value_6 != 90000) return null + if (value_7 != 9____________0_0000 || value_7 != 900000) return null + if (value_8 != 1_______________________________________________________________________________________________________________________________________________________0 || value_8 != 10) return null + + return "OK" +} diff --git a/compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/1.1.kt b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/1.1.kt new file mode 100644 index 00000000000..8b837fd4a35 --- /dev/null +++ b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/1.1.kt @@ -0,0 +1,99 @@ +/* + KOTLIN CODEGEN BOX SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, hexadecimal-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] A sequence of decimal digit symbols (0 though 9) is a decimal integer literal. + NUMBER: 1 + DESCRIPTION: Sequences with hexadecimal digit symbols. + */ + +val value_1 = 0x1234567890 +val value_2 = 0X23456789 +val value_3 = 0x345678 +val value_7 = 0X7654 +val value_8 = 0x876543 +val value_9 = 0x98765432 + +val value_10 = 0X0 +val value_11 = 0x1 + +val value_12 = 0x100000 +val value_13 = 0X1000001 + +val value_14 = 0X0000000 +val value_16 = 0x00000010 + +val value_17 = 0xABCDEF +val value_18 = 0Xabcdef +val value_19 = 0xAbcD +val value_23 = 0XAAAAAAAA +val value_24 = 0xcDf +val value_25 = 0xAcccccccccA + +val value_26 = 0x0123456789ABCDEF +val value_27 = 0x0123456789abcdef +val value_28 = 0XAA00AA +val value_29 = 0xBc12eF +val value_30 = 0xa0 +val value_31 = 0XE1 +val value_32 = 0xE1eE2eE3eE4e +val value_33 = 0XAAAAAA000000 +val value_34 = 0xcDf091 + +fun box(): String? { + val value_4 = 0X4567 + val value_5 = 0X56 + val value_6 = 0x65 + val value_15 = 0x0000001000000 + val value_20 = 0Xa + val value_21 = 0xE + val value_22 = 0xEeEeEeEe + val value_35 = 0xAcccc0000cccccA + val value_36 = 0X0000000A + val value_37 = 0xe0000000 + val value_38 = 0x0000000D0000000 + val value_39 = 0xA0A + + if (value_1 != 0x1234567890 || value_1 != 78187493520) return null + if (value_2 != 0X23456789 || value_2 != 591751049) return null + if (value_3 != 0x345678 || value_3 != 3430008) return null + if (value_4 != 0X4567 || value_4 != 17767) return null + if (value_5 != 0X56 || value_5 != 86) return null + if (value_6 != 0x65 || value_6 != 101) return null + if (value_7 != 0X7654 || value_7 != 30292) return null + if (value_8 != 0x876543 || value_8 != 8873283) return null + if (value_9 != 0x98765432 || value_9 != 2557891634) return null + if (value_10 != 0X0 || value_10 != 0) return null + if (value_11 != 0x1 || value_11 != 1) return null + if (value_12 != 0x100000 || value_12 != 1048576) return null + if (value_13 != 0X1000001 || value_13 != 16777217) return null + if (value_14 != 0X0000000 || value_14 != 0) return null + if (value_15 != 0x0000001000000 || value_15 != 16777216) return null + if (value_16 != 0x00000010 || value_16 != 16) return null + if (value_17 != 0xABCDEF || value_17 != 11259375) return null + if (value_18 != 0Xabcdef || value_18 != 11259375) return null + if (value_19 != 0xAbcD || value_19 != 43981) return null + if (value_20 != 0Xa || value_20 != 10) return null + if (value_21 != 0xE || value_21 != 14) return null + if (value_22 != 0xEeEeEeEe || value_22 != 4008636142) return null + if (value_23 != 0XAAAAAAAA || value_23 != 2863311530) return null + if (value_24 != 0xcDf || value_24 != 3295) return null + if (value_25 != 0xAcccccccccA || value_25 != 11874725579978) return null + if (value_26 != 0x0123456789ABCDEF || value_26 != 81985529216486895) return null + if (value_27 != 0x0123456789abcdef || value_27 != 81985529216486895) return null + if (value_28 != 0XAA00AA || value_28 != 11141290) return null + if (value_29 != 0xBc12eF || value_29 != 12325615) return null + if (value_30 != 0xa0 || value_30 != 160) return null + if (value_31 != 0XE1 || value_31 != 225) return null + if (value_32 != 0xE1eE2eE3eE4e || value_32 != 248413105155662) return null + if (value_33 != 0XAAAAAA000000 || value_33 != 187649973288960) return null + if (value_34 != 0xcDf091 || value_34 != 13496465) return null + if (value_35 != 0xAcccc0000cccccA || value_35 != 778221136013741258) return null + if (value_36 != 0X0000000A || value_36 != 10) return null + if (value_37 != 0xe0000000 || value_37 != 3758096384) return null + if (value_38 != 0x0000000D0000000 || value_38 != 3489660928) return null + if (value_39 != 0xA0A || value_39 != 2570) return null + + return "OK" +} diff --git a/compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.1.kt b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.1.kt new file mode 100644 index 00000000000..5d0428d86d1 --- /dev/null +++ b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.1.kt @@ -0,0 +1,34 @@ +/* + KOTLIN CODEGEN BOX SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, hexadecimal-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] A sequence of decimal digit symbols (0 though 9) is a decimal integer literal. + NUMBER: 1 + DESCRIPTION: Sequences with hexadecimal digit symbols separated by underscores. + */ + +val value_1 = 0x1_23a567b90 +val value_2 = 0XF_______34a6789f +val value_3 = 0x3_c_c_c_7_8 +val value_4 = 0X4_______b_______6_______d +val value_5 = 0X5__________________________________________________________________________________________________f +val value_6 = 0x0_______0 + +fun box(): String? { + val value_7 = 0X0_0 + val value_8 = 0xa_______________________________________________________________________________________________________________________________________________________0 + val value_9 = 0x1_00000000000000_1 + + if (value_1 != 0x123a567b90 || value_1 != 0x1_23a567b90 || value_1 != 78288157584) return null + if (value_2 != 0XF34a6789f || value_2 != 0xF_______34a6789f || value_2 != 65307834527) return null + if (value_3 != 0x3ccc78 || value_3 != 0x3_c_c_c_7_8 || value_3 != 3984504) return null + if (value_4 != 0X4b6d || value_4 != 0x4_______b_______6_______d || value_4 != 19309) return null + if (value_5 != 0X5f || value_5 != 0X5__________________________________________________________________________________________________f || value_5 != 95) return null + if (value_6 != 0x0_______0 || value_6 != 0x00 || value_6 != 0x0 || value_6 != 0) return null + if (value_7 != 0x0_0 || value_7 != 0X00 || value_7 != 0x0 || value_7 != 0) return null + if (value_8 != 0xa0 || value_8 != 0xa_______________________________________________________________________________________________________________________________________________________0 || value_8 != 160) return null + if (value_9 != 0x1000000000000001 || value_9 != 0X1_00000000000000_1 || value_9 != 1152921504606846977) return null + + return "OK" +} diff --git a/compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.1.kt b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.1.kt new file mode 100644 index 00000000000..8d503ea28af --- /dev/null +++ b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.1.kt @@ -0,0 +1,49 @@ +/* + KOTLIN CODEGEN BOX SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] A sequence of decimal digit symbols (0 though 9) is a decimal integer literal. + NUMBER: 1 + DESCRIPTION: Decimal integer literals with long literal mark. + */ + +val value_1 = 0L + +val value_2 = 127L +val value_3 = 128L +val value_4 = -128L +val value_5 = -129L + +val value_6 = 32767L +val value_7 = 32768L +val value_8 = -32768L +val value_9 = -32769L + +val value_10 = 2147483647L +val value_11 = 2147483648L +val value_12 = -2147483648L +val value_13 = -2147483649L + +fun box(): String? { + val value_14 = 9223372036854775807L + val value_15 = -9223372036854775807L + + if (value_1 != 0L) return null + if (value_2 != 127L) return null + if (value_3 != 128L) return null + if (value_4 != -128L) return null + if (value_5 != -129L) return null + if (value_6 != 32767L) return null + if (value_7 != 32768L) return null + if (value_8 != -32768L) return null + if (value_9 != -32769L) return null + if (value_10 != 2147483647L) return null + if (value_11 != 2147483648L) return null + if (value_12 != -2147483648L) return null + if (value_13 != -2147483649L) return null + if (value_14 != 9223372036854775807L) return null + if (value_15 != -9223372036854775807L) return null + + return "OK" +} diff --git a/compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.2.kt b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.2.kt new file mode 100644 index 00000000000..4daa1047b1f --- /dev/null +++ b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.2.kt @@ -0,0 +1,49 @@ +/* + KOTLIN CODEGEN BOX SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] A sequence of decimal digit symbols (0 though 9) is a decimal integer literal. + NUMBER: 2 + DESCRIPTION: Hexadecimal integer literals with long literal mark. + */ + +val value_1 = 0x0L + +val value_2 = 0x7FL +val value_3 = 0X80L +val value_4 = -0X80L +val value_5 = -0x81L + +val value_6 = 0x7FFFL +val value_7 = 0x8000L +val value_8 = -0x8000L +val value_9 = -0x8001L + +val value_10 = 0x7FFFFFFFL +val value_11 = 0x80000000L +val value_12 = -0x80000000L +val value_13 = -0x80000001L + +fun box(): String? { + val value_14 = 0X7FFFFFFFFFFFFFFFL + val value_15 = -0X7FFFFFFFFFFFFFFFL + + if (value_1 != 0x0L) return null + if (value_2 != 0x7FL) return null + if (value_3 != 0X80L) return null + if (value_4 != -0X80L) return null + if (value_5 != -0x81L) return null + if (value_6 != 0x7FFFL) return null + if (value_7 != 0x8000L) return null + if (value_8 != -0x8000L) return null + if (value_9 != -0x8001L) return null + if (value_10 != 0x7FFFFFFFL) return null + if (value_11 != 0x80000000L) return null + if (value_12 != -0x80000000L) return null + if (value_13 != -0x80000001L) return null + if (value_14 != 0X7FFFFFFFFFFFFFFFL) return null + if (value_15 != -0X7FFFFFFFFFFFFFFFL) return null + + return "OK" +} diff --git a/compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.3.kt b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.3.kt new file mode 100644 index 00000000000..969176369ce --- /dev/null +++ b/compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.3.kt @@ -0,0 +1,49 @@ +/* + KOTLIN CODEGEN BOX SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] A sequence of decimal digit symbols (0 though 9) is a decimal integer literal. + NUMBER: 3 + DESCRIPTION: Binary integer literals with long literal mark. + */ + +val value_1 = 0b0L + +val value_2 = 0B1111111L +val value_3 = 0b10000000L +val value_4 = -0b10000000L +val value_5 = -0b10000001L + +val value_6 = 0B111111111111111L +val value_7 = 0b1000000000000000L +val value_8 = -0b1000000000000000L +val value_9 = -0b1000000000000001L + +val value_10 = 0b1111111111111111111111111111111L +val value_11 = 0B10000000000000000000000000000000L +val value_12 = -0B10000000000000000000000000000000L +val value_13 = -0b10000000000000000000000000000001L + +fun box(): String? { + val value_14 = 0X7FFFFFFFFFFFFFFFL + val value_15 = -0X7FFFFFFFFFFFFFFFL + + if (value_1 != 0b0L) return null + if (value_2 != 0B1111111L) return null + if (value_3 != 0b10000000L) return null + if (value_4 != -0b10000000L) return null + if (value_5 != -0b10000001L) return null + if (value_6 != 0B111111111111111L) return null + if (value_7 != 0b1000000000000000L) return null + if (value_8 != -0b1000000000000000L) return null + if (value_9 != -0b1000000000000001L) return null + if (value_10 != 0b1111111111111111111111111111111L) return null + if (value_11 != 0B10000000000000000000000000000000L) return null + if (value_12 != -0B10000000000000000000000000000000L) return null + if (value_13 != -0b10000000000000000000000000000001L) return null + if (value_14 != 0b111111111111111111111111111111111111111111111111111111111111111L) return null + if (value_15 != -0B111111111111111111111111111111111111111111111111111111111111111L) return null + + return "OK" +} diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.1.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.1.kt new file mode 100644 index 00000000000..41eb45d1052 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.1.kt @@ -0,0 +1,12 @@ +/* + KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, binary-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] A sequence of binary digit symbols (0 or 1) prefixed by 0b or 0B is a binary integer literal. + NUMBER: 1 + DESCRIPTION: Binary integer literals with the prefix only. + */ + +val value_1 = 0b +val value_2 = 0B diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.1.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.1.txt new file mode 100644 index 00000000000..a96d6977dd7 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.1.txt @@ -0,0 +1,4 @@ +package + +public val value_1: kotlin.Int +public val value_2: kotlin.Int diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.1.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.1.kt new file mode 100644 index 00000000000..3ed06750da1 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.1.kt @@ -0,0 +1,14 @@ +/* + KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, binary-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] Digits may be separated by an underscore symbol, but no underscore can be placed before the first digit or after the last one. + NUMBER: 1 + DESCRIPTION: Binary integer literals with an underscore after the prefix. + */ + +val value_1 = 0b_1110100000 +val value_2 = 0B_______11010000 +val value_3 = 0B_1_1_0_1_0_0_0_0 +val value_4 = 0b_ diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.1.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.1.txt new file mode 100644 index 00000000000..e4bfbf413ac --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.1.txt @@ -0,0 +1,6 @@ +package + +public val value_1: kotlin.Int = 928 +public val value_2: kotlin.Int = 208 +public val value_3: kotlin.Int = 208 +public val value_4: kotlin.Int diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.2.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.2.kt new file mode 100644 index 00000000000..31061f28782 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.2.kt @@ -0,0 +1,21 @@ +/* + KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, binary-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] Digits may be separated by an underscore symbol, but no underscore can be placed before the first digit or after the last one. + NUMBER: 2 + DESCRIPTION: Binary integer literals with an underscore in the first position (it's considered as identifiers). + */ + +val value_0 = _____0b0_1_1_1_0_1 +val value_1 = _0B1_______1_______1_______0 +val value_2 = _0_0B1_0_1_1_1_0_1_1 +val value_3 = _0B000000000 +val value_4 = _0000000000b +val value_5 = _0_1b +val value_6 = ____________0b +val value_7 = _0_b_0 +val value_8 = _b_0 +val value_9 = _b +val value_10 = _b_ diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.2.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.2.txt new file mode 100644 index 00000000000..5c2c9868e47 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.2.txt @@ -0,0 +1,13 @@ +package + +public val value_0: [ERROR : Type for _____0b0_1_1_1_0_1] +public val value_1: [ERROR : Type for _0B1_______1_______1_______0] +public val value_10: [ERROR : Type for _b_] +public val value_2: [ERROR : Type for _0_0B1_0_1_1_1_0_1_1] +public val value_3: [ERROR : Type for _0B000000000] +public val value_4: [ERROR : Type for _0000000000b] +public val value_5: [ERROR : Type for _0_1b] +public val value_6: [ERROR : Type for ____________0b] +public val value_7: [ERROR : Type for _0_b_0] +public val value_8: [ERROR : Type for _b_0] +public val value_9: [ERROR : Type for _b] diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.3.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.3.kt new file mode 100644 index 00000000000..eab7d7e8249 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.3.kt @@ -0,0 +1,17 @@ +/* + KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, binary-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] Digits may be separated by an underscore symbol, but no underscore can be placed before the first digit or after the last one. + NUMBER: 3 + DESCRIPTION: Binary integer literals with an underscore in the last position. + */ + +val value_1 = 0b0_1_1_0_1_1_____ +val value_2 = 0B1_______1_______0_______1_ +val value_3 = 0B000000000_ +val value_4 = 0b_ +val value_5 = 0B______________ +val value_6 = 0B0_ +val value_7 = 0B10_ diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.3.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.3.txt new file mode 100644 index 00000000000..8c41a81ed92 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.3.txt @@ -0,0 +1,9 @@ +package + +public val value_1: kotlin.Int = 27 +public val value_2: kotlin.Int = 13 +public val value_3: kotlin.Int = 0 +public val value_4: kotlin.Int +public val value_5: kotlin.Int +public val value_6: kotlin.Int = 0 +public val value_7: kotlin.Int = 2 diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg/2.1.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg/2.1.kt new file mode 100644 index 00000000000..cdb380843bb --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg/2.1.kt @@ -0,0 +1,15 @@ +/* + KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, decimal-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] Digits may be separated by an underscore symbol, but no underscore can be placed before the first digit or after the last one. + NUMBER: 1 + DESCRIPTION: Integer literals with an underscore in the last position. + */ + +val value_1 = 1_ +val value_2 = 1_00000000000000000_ +val value_3 = 1_____________ +val value_4 = 9____________0_ +val value_5 = 1_______________________________________________________________________________________________________________________________________________________ diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg/2.1.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg/2.1.txt new file mode 100644 index 00000000000..7da3f695aca --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg/2.1.txt @@ -0,0 +1,7 @@ +package + +public val value_1: kotlin.Int = 1 +public val value_2: kotlin.Long = 100000000000000000.toLong() +public val value_3: kotlin.Int = 1 +public val value_4: kotlin.Int = 90 +public val value_5: kotlin.Int = 1 diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg/2.2.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg/2.2.kt new file mode 100644 index 00000000000..2c56bbef1b7 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg/2.2.kt @@ -0,0 +1,18 @@ +/* + KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, decimal-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] Digits may be separated by an underscore symbol, but no underscore can be placed before the first digit or after the last one. + NUMBER: 2 + DESCRIPTION: Integer literals with an underscore in the first position (it's considered as identifiers). + */ + +val value_1 = _5678_90 +val value_2 = _2_3_4_5_6_7_8_9_ +val value_3 = _____________0000 +val value_4 = _______________________________________________________________________________________________________________________________________________________0 +val value_5 = ____________________________________________________ +val value_6 = _ +val value_7 = _0_ +val value_8 = _9_ diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg/2.2.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg/2.2.txt new file mode 100644 index 00000000000..7545aba43f2 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg/2.2.txt @@ -0,0 +1,10 @@ +package + +public val value_1: [ERROR : Type for _5678_90] +public val value_2: [ERROR : Type for _2_3_4_5_6_7_8_9_] +public val value_3: [ERROR : Type for _____________0000] +public val value_4: [ERROR : Type for _______________________________________________________________________________________________________________________________________________________0] +public val value_5: [ERROR : Type for ____________________________________________________] +public val value_6: [ERROR : Type for _] +public val value_7: [ERROR : Type for _0_] +public val value_8: [ERROR : Type for _9_] diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.1.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.1.kt new file mode 100644 index 00000000000..6aa64fa54d5 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.1.kt @@ -0,0 +1,12 @@ +/* + KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, hexadecimal-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] A sequence of hexadecimal digit symbols (0 through 9, a through f, A through F) prefixed by 0x or 0X is a hexadecimal integer literal. + NUMBER: 1 + DESCRIPTION: Hexadecimal integer literals with the prefix only. + */ + +val value_1 = 0x +val value_2 = 0X diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.1.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.1.txt new file mode 100644 index 00000000000..a96d6977dd7 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.1.txt @@ -0,0 +1,4 @@ +package + +public val value_1: kotlin.Int +public val value_2: kotlin.Int diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.1.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.1.kt new file mode 100644 index 00000000000..c8838870320 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.1.kt @@ -0,0 +1,14 @@ +/* + KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, hexadecimal-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] Digits may be separated by an underscore symbol, but no underscore can be placed before the first digit or after the last one. + NUMBER: 1 + DESCRIPTION: Hexadecimal integer literals with an underscore after the prefix. + */ + +val value_1 = 0x_1234567890 +val value_2 = 0X_______23456789 +val value_3 = 0X_2_3_4_5_6_7_8_9 +val value_4 = 0x_ diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.1.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.1.txt new file mode 100644 index 00000000000..73bbeb7b578 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.1.txt @@ -0,0 +1,6 @@ +package + +public val value_1: kotlin.Long = 78187493520.toLong() +public val value_2: kotlin.Int = 591751049 +public val value_3: kotlin.Int = 591751049 +public val value_4: kotlin.Int diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.2.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.2.kt new file mode 100644 index 00000000000..83ddcec3adf --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.2.kt @@ -0,0 +1,21 @@ +/* + KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, hexadecimal-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] Digits may be separated by an underscore symbol, but no underscore can be placed before the first digit or after the last one. + NUMBER: 2 + DESCRIPTION: Hexadecimal integer literals with an underscore in the first position (it's considered as identifiers). + */ + +val value_1 = _____0x3_4_5_6_7_8 +val value_2 = _0X4_______5_______6_______7 +val value_3 = _0_0X4_3_4_5_6_7_8_9 +val value_4 = _0X000000000 +val value_5 = _0000000000x +val value_6 = _0_9x +val value_7 = ____________0x +val value_8 = _0_x_0 +val value_9 = _x_0 +val value_10 = _x +val value_11 = _x_ diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.2.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.2.txt new file mode 100644 index 00000000000..565b7d2f196 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.2.txt @@ -0,0 +1,13 @@ +package + +public val value_1: [ERROR : Type for _____0x3_4_5_6_7_8] +public val value_10: [ERROR : Type for _x] +public val value_11: [ERROR : Type for _x_] +public val value_2: [ERROR : Type for _0X4_______5_______6_______7] +public val value_3: [ERROR : Type for _0_0X4_3_4_5_6_7_8_9] +public val value_4: [ERROR : Type for _0X000000000] +public val value_5: [ERROR : Type for _0000000000x] +public val value_6: [ERROR : Type for _0_9x] +public val value_7: [ERROR : Type for ____________0x] +public val value_8: [ERROR : Type for _0_x_0] +public val value_9: [ERROR : Type for _x_0] diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.3.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.3.kt new file mode 100644 index 00000000000..77119328201 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.3.kt @@ -0,0 +1,17 @@ +/* + KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, hexadecimal-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] A sequence of hexadecimal digit symbols (0 through 9, a through f, A through F) prefixed by 0x or 0X is a hexadecimal integer literal. + NUMBER: 3 + DESCRIPTION: Hexadecimal integer literals with an underscore in the last position. + */ + +val value_1 = 0x3_4_5_6_7_8_____ +val value_2 = 0X4_______5_______6_______7_ +val value_3 = 0X000000000_ +val value_5 = 0x_ +val value_6 = 0X______________ +val value_7 = 0X0_ +val value_8 = 0X10_ diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.3.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.3.txt new file mode 100644 index 00000000000..d17a157d87c --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.3.txt @@ -0,0 +1,9 @@ +package + +public val value_1: kotlin.Int = 3430008 +public val value_2: kotlin.Int = 17767 +public val value_3: kotlin.Int = 0 +public val value_5: kotlin.Int +public val value_6: kotlin.Int +public val value_7: kotlin.Int = 0 +public val value_8: kotlin.Int = 16 diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.1.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.1.kt new file mode 100644 index 00000000000..9f0fc5fa7c9 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.1.kt @@ -0,0 +1,19 @@ +/* + KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] Any of the decimal, hexadecimal or binary literals may be suffixed by the long literal mark (symbol L). + NUMBER: 1 + DESCRIPTION: Binary and hexadecimal integer literals with a long literal mark only. + */ + +val value_1 = 0bl +val value_2 = 0BL +val value_3 = 0Xl +val value_4 = 0xL + +val value_5 = 0b_l +val value_6 = 0B_L +val value_7 = 0X____l +val value_8 = 0x_L diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.1.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.1.txt new file mode 100644 index 00000000000..63c3ebce4b8 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.1.txt @@ -0,0 +1,10 @@ +package + +public val value_1: kotlin.Int +public val value_2: kotlin.Int +public val value_3: kotlin.Int +public val value_4: kotlin.Int +public val value_5: kotlin.Int +public val value_6: kotlin.Int +public val value_7: kotlin.Int +public val value_8: kotlin.Int diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.2.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.2.kt new file mode 100644 index 00000000000..24aa909683f --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.2.kt @@ -0,0 +1,14 @@ +/* + KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] Any of the decimal, hexadecimal or binary literals may be suffixed by the long literal mark (symbol L). + NUMBER: 2 + DESCRIPTION: Various integer literals with a not allowed underscore before the long literal mark. + */ + +val value_1 = 0b0_l +val value_2 = 0B12_L +val value_3 = 0X234_l +val value_4 = 0x3567_L diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.2.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.2.txt new file mode 100644 index 00000000000..3ed7dc9590c --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.2.txt @@ -0,0 +1,6 @@ +package + +public val value_1: kotlin.Long = 0.toLong() +public val value_2: kotlin.Int +public val value_3: kotlin.Long = 564.toLong() +public val value_4: kotlin.Long = 13671.toLong() diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.3.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.3.kt new file mode 100644 index 00000000000..b8733dad3ec --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.3.kt @@ -0,0 +1,14 @@ +/* + KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] Any of the decimal, hexadecimal or binary literals may be suffixed by the long literal mark (symbol L). + NUMBER: 3 + DESCRIPTION: Various integer literals with not allowed long literal mark in lower case. + */ + +val value_1 = 0l +val value_2 = 1000000000000000l +val value_3 = 0X0l +val value_4 = 0b101l diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.3.txt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.3.txt new file mode 100644 index 00000000000..7ae39d5d093 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.3.txt @@ -0,0 +1,6 @@ +package + +public val value_1: kotlin.Long = 0.toLong() +public val value_2: kotlin.Long = 1000000000000000.toLong() +public val value_3: kotlin.Long = 0.toLong() +public val value_4: kotlin.Long = 5.toLong() diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/2.1.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/2.1.kt new file mode 100644 index 00000000000..d86547c9935 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/2.1.kt @@ -0,0 +1,21 @@ +// !CHECK_TYPE +// SKIP_TXT + +/* + KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] An integer literal with the long literal mark has type kotlin.Long; an integer literal without it has one of the types kotlin.Int/kotlin.Short/kotlin.Byte (the selected type is dependent on the context), if its value is in range of the corresponding type, or type kotlin.Long otherwise. + NUMBER: 1 + DESCRIPTION: Various integer literals with not allowed long literal mark in lower case (type checking). + */ + +fun case_1() { + 0l checkType { _() } + 10000000000000l checkType { _() } + 0X000Af10cDl checkType { _() } + 0x0_0l checkType { _() } + 0b100_000_111_111l checkType { _() } + 0b0l checkType { _() } +} diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/2.2.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/2.2.kt new file mode 100644 index 00000000000..aaed6b475df --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/2.2.kt @@ -0,0 +1,28 @@ +// !CHECK_TYPE +// SKIP_TXT + +/* + KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] An integer literal with the long literal mark has type kotlin.Long; an integer literal without it has one of the types kotlin.Int/kotlin.Short/kotlin.Byte (the selected type is dependent on the context), if its value is in range of the corresponding type, or type kotlin.Long otherwise. + NUMBER: 2 + DESCRIPTION: Type checking (comparison with invalid types) of various integer literals with long literal mark. + */ + +fun case_1() { + 0L checkType { _() } + 1000000L checkType { _() } + 0XAf10cDL checkType { _() } + 0x0_0L checkType { _() } + 0b100_000_111_111L checkType { _() } + 0b0L checkType { _() } + + 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/constant-literals/integer-literals/long-integer-literals/p-1/neg/2.3.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/2.3.kt new file mode 100644 index 00000000000..d6b31ca954a --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/2.3.kt @@ -0,0 +1,107 @@ +// !CHECK_TYPE +// SKIP_TXT + +/* + KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] An integer literal with the long literal mark has type kotlin.Long; an integer literal without it has one of the types kotlin.Int/kotlin.Short/kotlin.Byte (the selected type is dependent on the context), if its value is in range of the corresponding type, or type kotlin.Long otherwise. + NUMBER: 3 + DESCRIPTION: Type checking (comparison with invalid types) of various integer literals. + */ + +fun case_1() { + 0 checkType { _() } + 0 checkType { _() } + 0 checkType { _() } + + 127 checkType { _() } + 127 checkType { _() } + 127 checkType { _() } + + checkSubtype(128) + 128 checkType { _() } + 128 checkType { _() } + 128 checkType { _() } + + -128 checkType { _() } + -128 checkType { _() } + -128 checkType { _() } + + checkSubtype(-129) + -129 checkType { _() } + -129 checkType { _() } + -129 checkType { _() } + + checkSubtype(32767) + 32767 checkType { _() } + 32767 checkType { _() } + 32767 checkType { _() } + + checkSubtype(32768) + checkSubtype(32768) + 32768 checkType { _() } + 32768 checkType { _() } + 32768 checkType { _() } + + checkSubtype(-32768) + -32768 checkType { _() } + -32768 checkType { _() } + -32768 checkType { _() } + + checkSubtype(-32769) + checkSubtype(-32769) + -32769 checkType { _() } + -32769 checkType { _() } + -32769 checkType { _() } + + checkSubtype(2147483647) + checkSubtype(2147483647) + 2147483647 checkType { _() } + 2147483647 checkType { _() } + 2147483647 checkType { _() } + + checkSubtype(2147483648) + checkSubtype(2147483648) + checkSubtype(2147483648) + 2147483648 checkType { _() } + 2147483648 checkType { _() } + 2147483648 checkType { _() } + + checkSubtype(-2147483648) + checkSubtype(-2147483648) + -2147483648 checkType { _() } + -2147483648 checkType { _() } + -2147483648 checkType { _() } + + checkSubtype(-2147483649) + checkSubtype(-2147483649) + checkSubtype(-2147483649) + -2147483649 checkType { _() } + -2147483649 checkType { _() } + -2147483649 checkType { _() } + + checkSubtype(9223372036854775807) + checkSubtype(9223372036854775807) + checkSubtype(9223372036854775807) + 9223372036854775807 checkType { _() } + 9223372036854775807 checkType { _() } + 9223372036854775807 checkType { _() } + + checkSubtype(-9223372036854775807) + checkSubtype(-9223372036854775807) + checkSubtype(-9223372036854775807) + -9223372036854775807 checkType { _() } + -9223372036854775807 checkType { _() } + -9223372036854775807 checkType { _() } + + checkSubtype(-100000000000000000000000000000000) + checkSubtype(-100000000000000000000000000000000) + checkSubtype(-100000000000000000000000000000000) + checkSubtype(-100000000000000000000000000000000) + -100000000000000000000000000000000 checkType { _() } + -100000000000000000000000000000000 checkType { _() } + -100000000000000000000000000000000 checkType { _() } + -100000000000000000000000000000000 checkType { _() } +} diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/2.4.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/2.4.kt new file mode 100644 index 00000000000..864357ffab0 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/2.4.kt @@ -0,0 +1,32 @@ +// !CHECK_TYPE +// SKIP_TXT + +/* + KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] An integer literal with the long literal mark has type kotlin.Long; an integer literal without it has one of the types kotlin.Int/kotlin.Short/kotlin.Byte (the selected type is dependent on the context), if its value is in range of the corresponding type, or type kotlin.Long otherwise. + NUMBER: 4 + DESCRIPTION: Type checking (comparison with invalid types) of too a big integers. + */ + +fun case_1() { + checkSubtype(-9223372036854775808L) + -9223372036854775808L checkType { _() } + + checkSubtype(9223372036854775808L) + 9223372036854775808L checkType { _() } + + checkSubtype(100000000000000000000000000000000L) + 100000000000000000000000000000000L checkType { _() } + + checkSubtype(100000000000000000000000000000000l) + 100000000000000000000000000000000l checkType { _() } + + checkSubtype(-100000000000000000000000000000000L) + -100000000000000000000000000000000L checkType { _() } + + checkSubtype(-100000000000000000000000000000000l) + -100000000000000000000000000000000l checkType { _() } +} diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/2.5.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/2.5.kt new file mode 100644 index 00000000000..62c42d0dcd3 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/2.5.kt @@ -0,0 +1,64 @@ +// !CHECK_TYPE +// SKIP_TXT + +/* + KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] An integer literal with the long literal mark has type kotlin.Long; an integer literal without it has one of the types kotlin.Int/kotlin.Short/kotlin.Byte (the selected type is dependent on the context), if its value is in range of the corresponding type, or type kotlin.Long otherwise. + NUMBER: 5 + DESCRIPTION: Check of integer type selection depends on the context (incopatible types). + */ + +// FILE: functions.kt + +package functions + +fun f1(x1: Byte) = x1 + +fun f2(x1: Short) = x1 + +fun f3(x1: Int) = x1 + +fun f4(x1: Long) = x1 + +// FILE: usages.kt + +import functions.* + +fun case_1() { + f1(128) + f1(-129) + f1(32767) + f1(-32768) + f1(2147483647) + f1(-2147483648) + f1(9223372036854775807) + f1(-9223372036854775807) + f1(1000000000000000000000000000000000000000000000000) + f1(-1000000000000000000000000000000000000000000000000) +} + +fun case_2() { + f2(32768) + f2(-32769) + f2(2147483647) + f2(-2147483648) + f2(9223372036854775807) + f2(-9223372036854775807) + f2(1000000000000000000000000000000000000000000000000) + f2(-1000000000000000000000000000000000000000000000000) +} + +fun case_3() { + f3(9223372036854775807) + f3(-9223372036854775807) + f3(1000000000000000000000000000000000000000000000000) + f3(-1000000000000000000000000000000000000000000000000) +} + +fun case_4() { + f3(1000000000000000000000000000000000000000000000000) + f3(-1000000000000000000000000000000000000000000000000) +} diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/2.1.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/2.1.kt new file mode 100644 index 00000000000..0bc31263269 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/2.1.kt @@ -0,0 +1,32 @@ +// !CHECK_TYPE +// SKIP_TXT + +/* + KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] An integer literal with the long literal mark has type kotlin.Long; an integer literal without it has one of the types kotlin.Int/kotlin.Short/kotlin.Byte (the selected type is dependent on the context), if its value is in range of the corresponding type, or type kotlin.Long otherwise. + NUMBER: 1 + DESCRIPTION: Type checking of various integer literals with long literal mark. + */ + +fun case_1() { + 0L checkType { _() } + 10000000000000L checkType { _() } + 0X000Af10cDL checkType { _() } + 0x0_0L checkType { _() } + 0b100_000_111_111L checkType { _() } + 0b0L checkType { _() } +} + +fun case_2() { + 9223372036854775807L checkType { _() } + -9223372036854775807L checkType { _() } + + 0X7FFFFFFFFFFFFFFFL checkType { _() } + -0x7FFFFFFFFFFFFFFFL checkType { _() } + + 0b111111111111111111111111111111111111111111111111111111111111111L checkType { _() } + -0B111111111111111111111111111111111111111111111111111111111111111L checkType { _() } +} diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/2.2.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/2.2.kt new file mode 100644 index 00000000000..b816f11e8d8 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/2.2.kt @@ -0,0 +1,80 @@ +// !CHECK_TYPE +// SKIP_TXT + +/* + KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] An integer literal with the long literal mark has type kotlin.Long; an integer literal without it has one of the types kotlin.Int/kotlin.Short/kotlin.Byte (the selected type is dependent on the context), if its value is in range of the corresponding type, or type kotlin.Long otherwise. + NUMBER: 2 + DESCRIPTION: Type checking of decimal integer literals. + */ + +fun case_1() { + 0 checkType { _() } + checkSubtype(0) + checkSubtype(0) + checkSubtype(0) + checkSubtype(0) + + 127 checkType { _() } + checkSubtype(127) + checkSubtype(127) + checkSubtype(127) + checkSubtype(127) + + 128 checkType { _() } + checkSubtype(128) + checkSubtype(128) + checkSubtype(128) + + -128 checkType { _() } + checkSubtype(-128) + checkSubtype(-128) + checkSubtype(-128) + checkSubtype(-128) + + -129 checkType { _() } + checkSubtype(-129) + checkSubtype(-129) + checkSubtype(-129) + + 32767 checkType { _() } + checkSubtype(32767) + checkSubtype(32767) + checkSubtype(32767) + + 32768 checkType { _() } + checkSubtype(32768) + checkSubtype(32768) + + -32768 checkType { _() } + checkSubtype(-32768) + checkSubtype(-32768) + checkSubtype(-32768) + + -32769 checkType { _() } + checkSubtype(-32769) + checkSubtype(-32769) + + 2147483647 checkType { _() } + checkSubtype(2147483647) + checkSubtype(2147483647) + + 2147483648 checkType { _() } + checkSubtype(2147483648) + + -2147483648 checkType { _() } + checkSubtype(-2147483648) + checkSubtype(-2147483648) + + -2147483649 checkType { _() } + checkSubtype(-2147483649) + + 9223372036854775807 checkType { _() } + checkSubtype(9223372036854775807) + + -9223372036854775807 checkType { _() } + checkSubtype(-9223372036854775807) +} diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/2.3.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/2.3.kt new file mode 100644 index 00000000000..ce7ba380123 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/2.3.kt @@ -0,0 +1,80 @@ +// !CHECK_TYPE +// SKIP_TXT + +/* + KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] An integer literal with the long literal mark has type kotlin.Long; an integer literal without it has one of the types kotlin.Int/kotlin.Short/kotlin.Byte (the selected type is dependent on the context), if its value is in range of the corresponding type, or type kotlin.Long otherwise. + NUMBER: 3 + DESCRIPTION: Type checking of hexadecimal integer literals. + */ + +fun case_1() { + 0x0 checkType { _() } + checkSubtype(0x0) + checkSubtype(0x0) + checkSubtype(0x0) + checkSubtype(0x0) + + 0x7F checkType { _() } + checkSubtype(0x7F) + checkSubtype(0x7F) + checkSubtype(0x7F) + checkSubtype(0x7F) + + 0X80 checkType { _() } + checkSubtype(0X80) + checkSubtype(0X80) + checkSubtype(0X80) + + -0X80 checkType { _() } + checkSubtype(-0X80) + checkSubtype(-0X80) + checkSubtype(-0X80) + checkSubtype(-0X80) + + -0x81 checkType { _() } + checkSubtype(-0x81) + checkSubtype(-0x81) + checkSubtype(-0x81) + + 0x7FFF checkType { _() } + checkSubtype(0x7FFF) + checkSubtype(0x7FFF) + checkSubtype(0x7FFF) + + 0x8000 checkType { _() } + checkSubtype(0x8000) + checkSubtype(0x8000) + + -0x8000 checkType { _() } + checkSubtype(-0x8000) + checkSubtype(-0x8000) + checkSubtype(-0x8000) + + -0X8001 checkType { _() } + checkSubtype(-0X8001) + checkSubtype(-0X8001) + + 0x7FFFFFFF checkType { _() } + checkSubtype(0x7FFFFFFF) + checkSubtype(0x7FFFFFFF) + + 0x80000000 checkType { _() } + checkSubtype(0x80000000) + + -0x80000000 checkType { _() } + checkSubtype(-0x80000000) + checkSubtype(-0x80000000) + + -0x80000001 checkType { _() } + checkSubtype(-0x80000001) + + 0X7FFFFFFFFFFFFFFF checkType { _() } + checkSubtype(0X7FFFFFFFFFFFFFFF) + + -0X7FFFFFFFFFFFFFFF checkType { _() } + checkSubtype(-0X7FFFFFFFFFFFFFFF) +} diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/2.4.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/2.4.kt new file mode 100644 index 00000000000..8c23a1b7afb --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/2.4.kt @@ -0,0 +1,80 @@ +// !CHECK_TYPE +// SKIP_TXT + +/* + KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] An integer literal with the long literal mark has type kotlin.Long; an integer literal without it has one of the types kotlin.Int/kotlin.Short/kotlin.Byte (the selected type is dependent on the context), if its value is in range of the corresponding type, or type kotlin.Long otherwise. + NUMBER: 4 + DESCRIPTION: Type checking of binary integer literals. + */ + +fun case_1() { + 0b0 checkType { _() } + checkSubtype(0b0) + checkSubtype(0b0) + checkSubtype(0b0) + checkSubtype(0b0) + + 0B1111111 checkType { _() } + checkSubtype(0B1111111) + checkSubtype(0B1111111) + checkSubtype(0B1111111) + checkSubtype(0B1111111) + + 0b10000000 checkType { _() } + checkSubtype(0b10000000) + checkSubtype(0b10000000) + checkSubtype(0b10000000) + + -0B10000000 checkType { _() } + checkSubtype(-0B10000000) + checkSubtype(-0B10000000) + checkSubtype(-0B10000000) + checkSubtype(-0B10000000) + + -0b10000001 checkType { _() } + checkSubtype(-0b10000001) + checkSubtype(-0b10000001) + checkSubtype(-0b10000001) + + 0B111111111111111 checkType { _() } + checkSubtype(0B111111111111111) + checkSubtype(0B111111111111111) + checkSubtype(0B111111111111111) + + 0b1000000000000000 checkType { _() } + checkSubtype(0b1000000000000000) + checkSubtype(0b1000000000000000) + + -0b1000000000000000 checkType { _() } + checkSubtype(-0b1000000000000000) + checkSubtype(-0b1000000000000000) + checkSubtype(-0b1000000000000000) + + -0B1000000000000001 checkType { _() } + checkSubtype(-0B1000000000000001) + checkSubtype(-0B1000000000000001) + + 0b1111111111111111111111111111111 checkType { _() } + checkSubtype(0b1111111111111111111111111111111) + checkSubtype(0b1111111111111111111111111111111) + + 0B10000000000000000000000000000000 checkType { _() } + checkSubtype(0B10000000000000000000000000000000) + + -0B10000000000000000000000000000000 checkType { _() } + checkSubtype(-0B10000000000000000000000000000000) + checkSubtype(-0B10000000000000000000000000000000) + + -0b10000000000000000000000000000001 checkType { _() } + checkSubtype(-0b10000000000000000000000000000001) + + 0b111111111111111111111111111111111111111111111111111111111111111 checkType { _() } + checkSubtype(0b111111111111111111111111111111111111111111111111111111111111111) + + -0B111111111111111111111111111111111111111111111111111111111111111 checkType { _() } + checkSubtype(-0B111111111111111111111111111111111111111111111111111111111111111) +} diff --git a/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/2.5.kt b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/2.5.kt new file mode 100644 index 00000000000..1d0d5957ba9 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/2.5.kt @@ -0,0 +1,55 @@ +// !CHECK_TYPE +// SKIP_TXT + +/* + KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] An integer literal with the long literal mark has type kotlin.Long; an integer literal without it has one of the types kotlin.Int/kotlin.Short/kotlin.Byte (the selected type is dependent on the context), if its value is in range of the corresponding type, or type kotlin.Long otherwise. + NUMBER: 5 + DESCRIPTION: Check of integer type selection depends on the context. + */ + +// FILE: functions.kt + +package functions + +fun f1(x1: Byte, x2: Short, x3: Int, x4: Long) = x1 + x2 + x3 + x4 + +fun f2(x1: Short, x2: Int, x3: Long) = x1 + x2 + x3 + +fun f3(x1: Int, x2: Long) = x1 + x2 + +fun f4(x1: Long) = x1 + +// FILE: usages.kt + +import functions.* + +fun case_1() { + f1(0, 0, 0, 0) + f1(127, 127, 127, 127) + f1(-128, -128, -128, -128) +} + +fun case_2() { + f2(128, 128, 128) + f2(-129, -129, -129) + f2(32767, 32767, 32767) + f2(-32768, -32768, -32768) +} + +fun case_3() { + f3(32768, 32768) + f3(-32769, -32769) + f3(2147483647, 2147483647) + f3(-2147483648, -2147483648) +} + +fun case_4() { + f4(2147483648) + f4(-2147483649) + f4(9223372036854775807) + f4(-9223372036854775807) +} diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.1.kt new file mode 100644 index 00000000000..4271ed4d2ba --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.1.kt @@ -0,0 +1,33 @@ +/* + KOTLIN PSI SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, binary-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] A sequence of binary digit symbols (0 or 1) prefixed by 0b or 0B is a binary integer literal. + NUMBER: 1 + DESCRIPTION: Binary integer literals with invalid or double prefixes. + */ + +val value = 00b000111001 +val value = 00l0b10001110 +val value = 0F0l0b11111111 +val value = 0F0l0b00000000 +val value = 000000000000000000000000000000000000000000000000000000b001101 +val value = 00b01 +val value = 10B1001 +val value = 01b0001110 +val value = 0lB0000000 +val value = 0Fb0000001000000 +val value = 0e10fb11010001 +val value = 0EB1100001 +val value = 100b + +val value = 0BBB +val value = 0bBb +val value = 0bB11111 +val value = 0b0B0 +val value = 0b000b +val value = 0000000000b + +val value = 0A +val value = 0z diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.1.txt new file mode 100644 index 00000000000..f5f41b5f672 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.1.txt @@ -0,0 +1,359 @@ +KtFile: 1.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0b000111001') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0l') + PsiElement(INTEGER_LITERAL)('0b10001110') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0F') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0l') + PsiElement(INTEGER_LITERAL)('0b11111111') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0F') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0l') + PsiElement(INTEGER_LITERAL)('0b00000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0b001101') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0b01') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('10') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('B1001') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('1') + PsiElement(IDENTIFIER)('b0001110') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0l') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('B0000000') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0F') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('b0000001000000') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0e10f') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('b11010001') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0E') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('B1100001') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('100') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('b') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('BB') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('Bb') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('B11111') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('B0') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b000') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('b') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0b') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('A') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('z') + PsiErrorElement:Expecting an element + \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.2.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.2.kt new file mode 100644 index 00000000000..1daad0cea7a --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.2.kt @@ -0,0 +1,34 @@ +/* + KOTLIN PSI SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, binary-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] A sequence of binary digit symbols (0 or 1) prefixed by 0b or 0B is a binary integer literal. + NUMBER: 2 + DESCRIPTION: Binary integer literals with not allowed symbols. + */ + +val value = 0b101L001 +val value = 0bf101L001 +val value = 0bb1110010110 +val value = 0Bb11001011 +val value = 0bB100101 +val value = 0B00b10 +val value = 0B00B1 +val value = 0b10b0 +val value = 0bBb0100 +val value = 0BG +val value = 0bF1z +val value = 0b100M000 +val value = 0BBBB1000001 +val value = 0b00000010b +val value = 0bABCDEFBB +val value = 0Babcdefghijklmnopqrstuvwbyz +val value = 0BABCDEFGHIJKLMNOPQRSTUVWBYZ +val value = 0Bа +val value = 0b10С10 +val value = 0beeeeеееее +val value = 0bbbbbbb +val value = 0B0BBBBBB +val value = 0B0b0 +val value = 0bAF diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.2.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.2.txt new file mode 100644 index 00000000000..0ee9d12b164 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.2.txt @@ -0,0 +1,363 @@ +KtFile: 1.2.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b101L') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('f101L001') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('b1110010110') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('b11001011') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('B100101') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B00') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('b10') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B00') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('B1') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b10') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('b0') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('Bb0100') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('G') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('F1z') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b100') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('M000') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('BBB1000001') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b00000010') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('b') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('ABCDEFBB') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('abcdefghijklmnopqrstuvwbyz') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('ABCDEFGHIJKLMNOPQRSTUVWBYZ') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('а') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b10') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('С10') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('eeeeеееее') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('bbbbbb') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('BBBBBB') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('b0') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('AF') + PsiErrorElement:Expecting an element + \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.1.kt new file mode 100644 index 00000000000..05ca6131ebf --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.1.kt @@ -0,0 +1,22 @@ +/* + KOTLIN PSI SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, binary-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] A sequence of binary digit symbols (0 or 1) prefixed by 0b or 0B is a binary integer literal. + NUMBER: 1 + DESCRIPTION: Binary integer literals with underscore breaking the prefix (in it). + */ + +val value = 0_b1_1_0_1_0_1 +val value = 0_B_______1_______0_______1_______0 +val value = 0_0B1_1_1_0_1_0_1_0 +val value = 0_0B000000000 +val value = 0_0000000000B +val value = 0_0b +val value = 0____________0b +val value = 0_0_b_0 +val value = 0_b_0 +val value = 0_b +val value = 0_b_ +val value = 0_b_0_ diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.1.txt new file mode 100644 index 00000000000..4e53d5bdf95 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.1.txt @@ -0,0 +1,184 @@ +KtFile: 2.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_b1_1_0_1_0_1') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_B_______1_______0_______1_______0') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_0B1_1_1_0_1_0_1_0') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_0B000000000') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_0000000000B') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_0b') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('____________0b') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_0_b_0') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_b_0') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_b') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_b_') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_b_0_') + PsiErrorElement:Expecting an element + \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.1.kt new file mode 100644 index 00000000000..f6f43322755 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.1.kt @@ -0,0 +1,26 @@ +/* + KOTLIN PSI SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, binary-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] A sequence of binary digit symbols (0 or 1) prefixed by 0b or 0B is a binary integer literal. + NUMBER: 1 + DESCRIPTION: Binary integer literals with valid digit symbols. + */ + +val value = 0b0000111110000 +val value = 0B010101010101 +val value = 0b10101010101 +val value = 0B000000000000 +val value = 0b0 +val value = 0B0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +val value = 0b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000 +val value = 0B111111111111111111111111111111111111111111111111111111111111111 +val value = 0B1 +val value = 0b111111111111 +val value = 0b10 +val value = 0B01 +val value = 0B100000000 +val value = 0b000000001 + +val value = 0B10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.1.txt new file mode 100644 index 00000000000..34f6201cbcb --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.1.txt @@ -0,0 +1,154 @@ +KtFile: 1.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b0000111110000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B010101010101') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b10101010101') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B000000000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B111111111111111111111111111111111111111111111111111111111111111') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b111111111111') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B01') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B100000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b000000001') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.2.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.2.kt new file mode 100644 index 00000000000..bb16ad2fb1c --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.2.kt @@ -0,0 +1,14 @@ +/* + KOTLIN PSI SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, binary-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] A sequence of binary digit symbols (0 or 1) prefixed by 0b or 0B is a binary integer literal. + NUMBER: 2 + DESCRIPTION: Binary integer literals with invalid [2-9] digit symbols. + */ + +val value = 0B000123412 +val value = 0b000000009 +val value = 0b200000000 +val value = 0b1234567890 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.2.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.2.txt new file mode 100644 index 00000000000..a74f2de0a0f --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.2.txt @@ -0,0 +1,44 @@ +KtFile: 1.2.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B000123412') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b000000009') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b200000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b1234567890') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.3.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.3.kt new file mode 100644 index 00000000000..ca6334ecc68 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.3.kt @@ -0,0 +1,12 @@ +/* + KOTLIN PSI SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, binary-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] A sequence of binary digit symbols (0 or 1) prefixed by 0b or 0B is a binary integer literal. + NUMBER: 3 + DESCRIPTION: Binary integer literals with prefix only (without digit symbols). + */ + +val value = 0b +val value = 0B diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.3.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.3.txt new file mode 100644 index 00000000000..30b83df13ef --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.3.txt @@ -0,0 +1,24 @@ +KtFile: 1.3.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.1.kt new file mode 100644 index 00000000000..fc9c706b6b3 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.1.kt @@ -0,0 +1,18 @@ +/* + KOTLIN PSI SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, binary-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] Digits may be separated by an underscore symbol, but no underscore can be placed before the first digit or after the last one. + NUMBER: 1 + DESCRIPTION: Binary integer literals with underscore symbols in the valid positions. + */ + +val value = 0b0_00_01_11_11_00_00 +val value = 0B0_1_0_1_0_1_0_1_0_1_0_1 +val value = 0b101_010_10101 +val value = 0B00000000000________________________0 +val value = 0b0_0 +val value = 0B00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +val value = 0B11111111111111111111111111_________1111111111111111111111111111111111111 +val value = 0b1_______________________________________________________________________________________________________________________________________________________0 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.1.txt new file mode 100644 index 00000000000..93909af47cb --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.1.txt @@ -0,0 +1,84 @@ +KtFile: 2.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b0_00_01_11_11_00_00') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B0_1_0_1_0_1_0_1_0_1_0_1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b101_010_10101') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B00000000000________________________0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b0_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B11111111111111111111111111_________1111111111111111111111111111111111111') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b1_______________________________________________________________________________________________________________________________________________________0') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.2.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.2.kt new file mode 100644 index 00000000000..67de81185c1 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.2.kt @@ -0,0 +1,14 @@ +/* + KOTLIN PSI SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, binary-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] Digits may be separated by an underscore symbol, but no underscore can be placed before the first digit or after the last one. + NUMBER: 2 + DESCRIPTION: Binary integer literals with underscore symbols after binary prefix. + */ + +val value = 0b_000111010001111 +val value = 0b_______011001 +val value = 0B_0_1_0_1_1_0_0 +val value = 0b_ diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.2.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.2.txt new file mode 100644 index 00000000000..0ce473d8525 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.2.txt @@ -0,0 +1,44 @@ +KtFile: 2.2.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b_000111010001111') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b_______011001') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B_0_1_0_1_1_0_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b_') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.3.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.3.kt new file mode 100644 index 00000000000..5456ca870e8 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.3.kt @@ -0,0 +1,17 @@ +/* + KOTLIN PSI SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, binary-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] Digits may be separated by an underscore symbol, but no underscore can be placed before the first digit or after the last one. + NUMBER: 3 + DESCRIPTION: Binary integer literals with underscore symbol after the last digit. + */ + +val value = 0b0_1_0_1_0_1_____ +val value = 0B1_______0_______1_______0_ +val value = 0B000000000_ +val value = 0b_ +val value = 0B______________ +val value = 0B0_ +val value = 0b10_ diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.3.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.3.txt new file mode 100644 index 00000000000..8771363887e --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.3.txt @@ -0,0 +1,74 @@ +KtFile: 2.3.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b0_1_0_1_0_1_____') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B1_______0_______1_______0_') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B000000000_') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b_') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B______________') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B0_') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b10_') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.4.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.4.kt new file mode 100644 index 00000000000..4351813e346 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.4.kt @@ -0,0 +1,21 @@ +/* + KOTLIN PSI SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, binary-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] Digits may be separated by an underscore symbol, but no underscore can be placed before the first digit or after the last one. + NUMBER: 4 + DESCRIPTION: Binary integer literals with underscore symbol before the first digit (it's considered as identifiers). + */ + +val value = _____0b0_1_0_1_0_0 +val value = _0B1_______0_______1_______0 +val value = _0_0B1_0_1_0_1_0_0_1 +val value = _0B000000000 +val value = _0000000000b +val value = _0_9b +val value = ____________0b +val value = _0_b_0 +val value = _b_0 +val value = _b +val value = _b_ diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.4.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.4.txt new file mode 100644 index 00000000000..a6e0d49fe2d --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.4.txt @@ -0,0 +1,114 @@ +KtFile: 2.4.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_____0b0_1_0_1_0_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_0B1_______0_______1_______0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_0_0B1_0_1_0_1_0_0_1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_0B000000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_0000000000b') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_0_9b') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('____________0b') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_0_b_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_b_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_b') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_b_') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg/1.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg/1.1.kt new file mode 100644 index 00000000000..593b246aac8 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg/1.1.kt @@ -0,0 +1,37 @@ +/* + KOTLIN PSI SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, decimal-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] A sequence of decimal digit symbols (0 though 9) is a decimal integer literal. + NUMBER: 1 + DESCRIPTION: Sequences with not all decimal digit symbols + */ + +val value = 1234567890b +val value = 3456d78 +val value = 45z67 +val value = 5ffff6 +val value = 6f5 +val value = 7e6e54 +val value = 876c54d3 +val value = 0FF +val value = 0A + +val value = 0$ +val value = 2$100 +val value = 2val value = 2^10 +val value = 2\n +val value = 2@4 +val value = 0#1 +val value = 100!10 +val value = 100&10 +val value = 100|10 +val value = 100)(10 +val value = 100^10 +val value = 100<10> +val value = 100\10 +val value = 100,10 +val value = 100:10 +val value = 100::10 +val value = 100'10 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg/1.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg/1.1.txt new file mode 100644 index 00000000000..4e9201bee88 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg/1.1.txt @@ -0,0 +1,378 @@ +KtFile: 1.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1234567890') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('b') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('3456') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('d78') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('45') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('z67') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('5f') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('fff6') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('6f') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('5') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('7e6') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('e54') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('876') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('c54d3') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0F') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('F') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('A') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(BAD_CHARACTER)('$') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('2') + PsiErrorElement:Property getter or setter expected + PsiElement(BAD_CHARACTER)('$') + PsiElement(INTEGER_LITERAL)('100') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('2') + PsiErrorElement:Property getter or setter expected + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('2') + PsiErrorElement:Property getter or setter expected + PsiElement(BAD_CHARACTER)('^') + PsiElement(INTEGER_LITERAL)('10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('2') + PsiErrorElement:Property getter or setter expected + PsiElement(BAD_CHARACTER)('\') + PsiElement(IDENTIFIER)('n') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('2') + PsiErrorElement:Property getter or setter expected + PsiElement(AT)('@') + PsiElement(INTEGER_LITERAL)('4') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(HASH)('#') + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('100') + PsiErrorElement:Property getter or setter expected + PsiElement(EXCL)('!') + PsiElement(INTEGER_LITERAL)('10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('100') + PsiErrorElement:Property getter or setter expected + PsiElement(BAD_CHARACTER)('&') + PsiElement(INTEGER_LITERAL)('10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('100') + PsiErrorElement:Property getter or setter expected + PsiElement(BAD_CHARACTER)('|') + PsiElement(INTEGER_LITERAL)('10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('100') + PsiErrorElement:Property getter or setter expected + PsiElement(RPAR)(')') + PsiElement(LPAR)('(') + PsiElement(INTEGER_LITERAL)('10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('100') + PsiErrorElement:Property getter or setter expected + PsiElement(BAD_CHARACTER)('^') + PsiElement(INTEGER_LITERAL)('10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('100') + OPERATION_REFERENCE + PsiElement(LT)('<') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('10') + OPERATION_REFERENCE + PsiElement(GT)('>') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('100') + PsiErrorElement:Property getter or setter expected + PsiElement(BAD_CHARACTER)('\') + PsiElement(INTEGER_LITERAL)('10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('100') + PsiErrorElement:Property getter or setter expected + PsiElement(COMMA)(',') + PsiElement(INTEGER_LITERAL)('10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('100') + PsiErrorElement:Property getter or setter expected + PsiElement(COLON)(':') + PsiElement(INTEGER_LITERAL)('10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + CALLABLE_REFERENCE_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('100') + PsiElement(COLONCOLON)('::') + REFERENCE_EXPRESSION + PsiErrorElement:Expecting an identifier + + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('100') + PsiErrorElement:Property getter or setter expected + PsiElement(CHARACTER_LITERAL)(''10') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/1.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/1.1.kt new file mode 100644 index 00000000000..dca9fe53427 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/1.1.kt @@ -0,0 +1,27 @@ +/* + KOTLIN PSI SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, decimal-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] A sequence of decimal digit symbols (0 though 9) is a decimal integer literal. + NUMBER: 1 + DESCRIPTION: Sequences with decimal digit symbols. + */ + +val value = 1234567890 +val value = 23456789 +val value = 345678 +val value = 4567 +val value = 56 +val value = 65 +val value = 7654 +val value = 876543 +val value = 98765432 + +val value = 0 +val value = 1 + +val value = 100000 +val value = 1000001 + +val value = 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/1.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/1.1.txt new file mode 100644 index 00000000000..7ad6c93c146 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/1.1.txt @@ -0,0 +1,144 @@ +KtFile: 1.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1234567890') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('23456789') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('345678') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('4567') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('56') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('65') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('7654') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('876543') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('98765432') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('100000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1000001') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.1.kt new file mode 100644 index 00000000000..86ef2f8c2a7 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.1.kt @@ -0,0 +1,18 @@ +/* + KOTLIN PSI SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, decimal-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] Digits may be separated by an underscore symbol, but no underscore can be placed before the first digit or after the last one. + NUMBER: 1 + DESCRIPTION: Integers with underscore symbols in the valid positions. + */ + +val value = 1234_5678_90 +val value = 1_2_3_4_5_6_7_8_9_0 +val value = 1_2 +val value = 1_00000000000000000_1 +val value = 1_____________2 +val value = 9_____________0000 +val value = 9____________0_0000 +val value = 1_______________________________________________________________________________________________________________________________________________________0 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.1.txt new file mode 100644 index 00000000000..2608e209860 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.1.txt @@ -0,0 +1,84 @@ +KtFile: 2.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1234_5678_90') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1_2_3_4_5_6_7_8_9_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1_2') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1_00000000000000000_1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1_____________2') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('9_____________0000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('9____________0_0000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1_______________________________________________________________________________________________________________________________________________________0') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.2.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.2.kt new file mode 100644 index 00000000000..f46d2e8e386 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.2.kt @@ -0,0 +1,15 @@ +/* + KOTLIN PSI SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, decimal-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] Digits may be separated by an underscore symbol, but no underscore can be placed before the first digit or after the last one. + NUMBER: 2 + DESCRIPTION: Integers with underscore symbol in the last position. + */ + +val value = 1_ +val value = 1_00000000000000000_ +val value = 1_____________ +val value = 9____________0_ +val value = 1_______________________________________________________________________________________________________________________________________________________ diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.2.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.2.txt new file mode 100644 index 00000000000..753b60b69f4 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.2.txt @@ -0,0 +1,54 @@ +KtFile: 2.2.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1_') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1_00000000000000000_') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1_____________') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('9____________0_') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1_______________________________________________________________________________________________________________________________________________________') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.3.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.3.kt new file mode 100644 index 00000000000..f95bb9653cc --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.3.kt @@ -0,0 +1,18 @@ +/* + KOTLIN PSI SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, decimal-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] Digits may be separated by an underscore symbol, but no underscore can be placed before the first digit or after the last one. + NUMBER: 3 + DESCRIPTION: Integers with underscore symbols before the first digit (it's considered as identifiers). + */ + +val value = _5678_90 +val value = _2_3_4_5_6_7_8_9_ +val value = _____________0000 +val value = _______________________________________________________________________________________________________________________________________________________0 +val value = ____________________________________________________ +val value = _ +val value = _0_ +val value = _9_ diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.3.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.3.txt new file mode 100644 index 00000000000..7ad68a53b33 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.3.txt @@ -0,0 +1,84 @@ +KtFile: 2.3.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_5678_90') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_2_3_4_5_6_7_8_9_') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_____________0000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_______________________________________________________________________________________________________________________________________________________0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('____________________________________________________') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_0_') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_9_') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-2/neg/1.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-2/neg/1.1.kt new file mode 100644 index 00000000000..a47f4400b53 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-2/neg/1.1.kt @@ -0,0 +1,15 @@ +/* + KOTLIN PSI SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, decimal-integer-literals + PARAGRAPH: 2 + SENTENCE: [1] Even more so, any decimal literal starting with digit 0 and containing more than 1 digit is not a valid decimal literal. + NUMBER: 1 + DESCRIPTION: Integer literals with 0 in the first position and it contains more than 1 digit. + */ + +val value = 00 +val value = 000000 +val value = 010000 +val value = 01000100 +val value = 099999999 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-2/neg/1.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-2/neg/1.1.txt new file mode 100644 index 00000000000..63ad581eeea --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-2/neg/1.1.txt @@ -0,0 +1,68 @@ +KtFile: 1.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('10000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('1000100') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('99999999') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-2/neg/1.2.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-2/neg/1.2.kt new file mode 100644 index 00000000000..718ec2bdf93 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-2/neg/1.2.kt @@ -0,0 +1,15 @@ +/* + KOTLIN PSI SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, decimal-integer-literals + PARAGRAPH: 2 + SENTENCE: [1] Even more so, any decimal literal starting with digit 0 and containing more than 1 digit is not a valid decimal literal. + NUMBER: 2 + DESCRIPTION: Integer literals with 0 in the first position and it contains more than 1 digit separated by underscore. + */ + +val value = 0_0 +val value = 000_000 +val value = 0_10000 +val value = 0_1000100 +val value = 0_99999999 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-2/neg/1.2.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-2/neg/1.2.txt new file mode 100644 index 00000000000..4eec2768d1a --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-2/neg/1.2.txt @@ -0,0 +1,78 @@ +KtFile: 1.2.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_0') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(IDENTIFIER)('_000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_10000') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_1000100') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_99999999') + PsiErrorElement:Expecting an element + \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.1.kt new file mode 100644 index 00000000000..94be6ab4f69 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.1.kt @@ -0,0 +1,34 @@ +/* + KOTLIN PSI SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, hexadecimal-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] A sequence of hexadecimal digit symbols (0 through 9, a through f, A through F) prefixed by 0x or 0X is a hexadecimal integer literal. + NUMBER: 1 + DESCRIPTION: Hexadecimal integer literals with invalid or double prefixes. + */ + +val value = 00x876543 +val value = 00l0xf876L543 +val value = 0F0l0xf876L543 +val value = 0F0l0xf876L543 +val value = 000000000000000000000000000000000000000000000000000000xAcccccccccA +val value = 00xA45 + +val value = 0XXX +val value = 0xXx +val value = 0xX11111 +val value = 0x0X0 +val value = 0x000x +val value = 0000000000x + +val value = 90X7654 +val value = 09x98765432 +val value = 0lX0000000 +val value = 0Fx0000001000000 +val value = 0e10fxEeEeEeEe +val value = 0EXAAAAAAAA +val value = 200x + +val value = 0A +val value = 0z diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.1.txt new file mode 100644 index 00000000000..0d5df405a2d --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.1.txt @@ -0,0 +1,362 @@ +KtFile: 1.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0x876543') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0l') + PsiElement(INTEGER_LITERAL)('0xf876L') + PsiElement(INTEGER_LITERAL)('543') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0F') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0l') + PsiElement(INTEGER_LITERAL)('0xf876L') + PsiElement(INTEGER_LITERAL)('543') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0F') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0l') + PsiElement(INTEGER_LITERAL)('0xf876L') + PsiElement(INTEGER_LITERAL)('543') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0xAcccccccccA') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0xA45') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('XX') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('Xx') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('X11111') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('X0') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x000') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('x') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0x') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('90') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('X7654') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('9') + PsiElement(IDENTIFIER)('x98765432') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0l') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('X0000000') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0F') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('x0000001000000') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0e10f') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('xEeEeEeEe') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('0E') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('XAAAAAAAA') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('200') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('x') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('A') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('z') + PsiErrorElement:Expecting an element + \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.2.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.2.kt new file mode 100644 index 00000000000..e0830492102 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.2.kt @@ -0,0 +1,51 @@ +/* + KOTLIN PSI SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, hexadecimal-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] A sequence of hexadecimal digit symbols (0 through 9, a through f, A through F) prefixed by 0x or 0X is a hexadecimal integer literal. + NUMBER: 2 + DESCRIPTION: Hexadecimal integer literals with not allowed symbols. + */ + +val value = 0x876L543 +val value = 0xf876L543 +val value = 0xx1234567890 +val value = 0Xx23456789 +val value = 0xX345678 +val value = 0X45x67 +val value = 0X50X6 +val value = 0x60x5 +val value = 0xXx7654 +val value = 0XG +val value = 0xF1z +val value = 0x100M000 +val value = 0XXXX1000001 +val value = 0x00000010x +val value = 0xABCDEFXX +val value = 0Xabcdefghijklmnopqrstuvwxyz +val value = 0XABCDEFGHIJKLMNOPQRSTUVWXYZ +val value = 0Xа +val value = 0x10С10 +val value = 0xeeeeеееее +val value = 0xxxxxxx +val value = 0X0XXXXXX +val value = 0X0x0 + +val value = 0x$ +val value = 0x4$0x100 +val value = 0x1val value = 2x^0x10 +val value = 0X\n +val value = 0x@0x4 +val value = 0x#0x1 +val value = 0x!0X10 +val value = 0X&0X10 +val value = 0X|0X10 +val value = 0X)(0X10 +val value = 0x^0x10 +val value = 0x<0X10> +val value = 0x\0X10 +val value = 0X,0X10 +val value = 0X:0x10 +val value = 0X::0x10 +val value = 0X'0x10 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.2.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.2.txt new file mode 100644 index 00000000000..17967623903 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.2.txt @@ -0,0 +1,589 @@ +KtFile: 1.2.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x876L') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('543') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xf876L') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('543') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('x1234567890') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('x23456789') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('X345678') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X45') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('x67') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X50') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('X6') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x60') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('x5') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('Xx7654') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('G') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xF1') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('z') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x100') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('M000') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('XXX1000001') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x00000010') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('x') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xABCDEF') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('XX') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0Xabcdef') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('ghijklmnopqrstuvwxyz') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0XABCDEF') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('GHIJKLMNOPQRSTUVWXYZ') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('а') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x10') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('С10') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xeeee') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('еееее') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('xxxxxx') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('XXXXXX') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('x0') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x') + PsiErrorElement:Property getter or setter expected + PsiElement(BAD_CHARACTER)('$') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x4') + PsiErrorElement:Property getter or setter expected + PsiElement(BAD_CHARACTER)('$') + PsiElement(INTEGER_LITERAL)('0x100') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x1') + PsiErrorElement:Property getter or setter expected + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('2') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('x') + PsiErrorElement:Expecting an element + PsiElement(BAD_CHARACTER)('^') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0x10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X') + PsiErrorElement:Property getter or setter expected + PsiElement(BAD_CHARACTER)('\') + PsiElement(IDENTIFIER)('n') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x') + PsiErrorElement:Property getter or setter expected + PsiElement(AT)('@') + PsiElement(INTEGER_LITERAL)('0x4') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x') + PsiErrorElement:Property getter or setter expected + PsiElement(HASH)('#') + PsiElement(INTEGER_LITERAL)('0x1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x') + PsiErrorElement:Property getter or setter expected + PsiElement(EXCL)('!') + PsiElement(INTEGER_LITERAL)('0X10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X') + PsiErrorElement:Property getter or setter expected + PsiElement(BAD_CHARACTER)('&') + PsiElement(INTEGER_LITERAL)('0X10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X') + PsiErrorElement:Property getter or setter expected + PsiElement(BAD_CHARACTER)('|') + PsiElement(INTEGER_LITERAL)('0X10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X') + PsiErrorElement:Property getter or setter expected + PsiElement(RPAR)(')') + PsiElement(LPAR)('(') + PsiElement(INTEGER_LITERAL)('0X10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x') + PsiErrorElement:Property getter or setter expected + PsiElement(BAD_CHARACTER)('^') + PsiElement(INTEGER_LITERAL)('0x10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x') + OPERATION_REFERENCE + PsiElement(LT)('<') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X10') + OPERATION_REFERENCE + PsiElement(GT)('>') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x') + PsiErrorElement:Property getter or setter expected + PsiElement(BAD_CHARACTER)('\') + PsiElement(INTEGER_LITERAL)('0X10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X') + PsiErrorElement:Property getter or setter expected + PsiElement(COMMA)(',') + PsiElement(INTEGER_LITERAL)('0X10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X') + PsiErrorElement:Property getter or setter expected + PsiElement(COLON)(':') + PsiElement(INTEGER_LITERAL)('0x10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + CALLABLE_REFERENCE_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X') + PsiElement(COLONCOLON)('::') + REFERENCE_EXPRESSION + PsiErrorElement:Expecting an identifier + + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0x10') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X') + PsiErrorElement:Property getter or setter expected + PsiElement(CHARACTER_LITERAL)(''0x10') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.1.kt new file mode 100644 index 00000000000..375bd1d032b --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.1.kt @@ -0,0 +1,22 @@ +/* + KOTLIN PSI SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, hexadecimal-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] Digits may be separated by an underscore symbol, but no underscore can be placed before the first digit or after the last one. + NUMBER: 1 + DESCRIPTION: Hexadecimal integer literals with underscore breaking the prefix (in it). + */ + +val value = 0_x3_4_5_6_7_8 +val value = 0_X_______4_______5_______6_______7 +val value = 0_0X4_3_4_5_6_7_8_9 +val value = 0_0X000000000 +val value = 0_0000000000X +val value = 0_9x +val value = 0____________0x +val value = 0_0_x_0 +val value = 0_x_0 +val value = 0_x +val value = 0_x_ +val value = 0_x_0_ diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.1.txt new file mode 100644 index 00000000000..308c6dfe53e --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.1.txt @@ -0,0 +1,184 @@ +KtFile: 2.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_x3_4_5_6_7_8') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_X_______4_______5_______6_______7') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_0X4_3_4_5_6_7_8_9') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_0X000000000') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_0000000000X') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_9x') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('____________0x') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_0_x_0') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_x_0') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_x') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_x_') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_x_0_') + PsiErrorElement:Expecting an element + \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/1.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/1.1.kt new file mode 100644 index 00000000000..d0240f772a2 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/1.1.kt @@ -0,0 +1,57 @@ +/* + KOTLIN PSI SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, hexadecimal-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] A sequence of hexadecimal digit symbols (0 through 9, a through f, A through F) prefixed by 0x or 0X is a hexadecimal integer literal. + NUMBER: 1 + DESCRIPTION: Hexadecimal integer literals with valid symbols. + */ + +val value = 0x1234567890 +val value = 0X23456789 +val value = 0x345678 +val value = 0X4567 +val value = 0X56 +val value = 0x65 +val value = 0X7654 +val value = 0x876543 +val value = 0x98765432 + +val value = 0X0 +val value = 0x1 + +val value = 0x100000 +val value = 0X1000001 + +val value = 0X0000000 +val value = 0x0000001000000 +val value = 0x00000010 + +val value = 0xABCDEF +val value = 0Xabcdef +val value = 0xAbcD +val value = 0Xa +val value = 0xE +val value = 0xEeEeEeEe +val value = 0XAAAAAAAA +val value = 0xcDf +val value = 0xAcccccccccA + +val value = 0x0123456789ABCDEF +val value = 0x0123456789abcdef +val value = 0XAA00AA +val value = 0xBc12eF +val value = 0xa0 +val value = 0XE1 +val value = 0xE1eE2eE3eE4e +val value = 0XAAAAAAAA000000000 +val value = 0xcDf091 +val value = 0xAcccc0000cccccA +val value = 0X0000000A +val value = 0xe0000000 +val value = 0x0000000D0000000 +val value = 0xA0A + +val value = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/1.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/1.1.txt new file mode 100644 index 00000000000..a29f0c0bba2 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/1.1.txt @@ -0,0 +1,404 @@ +KtFile: 1.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x1234567890') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X23456789') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x345678') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X4567') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X56') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x65') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X7654') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x876543') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x98765432') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x1') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x100000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X1000001') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X0000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x0000001000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x00000010') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xABCDEF') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0Xabcdef') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xAbcD') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0Xa') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xE') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xEeEeEeEe') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0XAAAAAAAA') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xcDf') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xAcccccccccA') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x0123456789ABCDEF') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x0123456789abcdef') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0XAA00AA') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xBc12eF') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xa0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0XE1') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xE1eE2eE3eE4e') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0XAAAAAAAA000000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xcDf091') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xAcccc0000cccccA') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X0000000A') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xe0000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x0000000D0000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xA0A') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/1.2.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/1.2.kt new file mode 100644 index 00000000000..dc8fd496cf8 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/1.2.kt @@ -0,0 +1,12 @@ +/* + KOTLIN PSI SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, hexadecimal-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] A sequence of hexadecimal digit symbols (0 through 9, a through f, A through F) prefixed by 0x or 0X is a hexadecimal integer literal. + NUMBER: 2 + DESCRIPTION: Hexadecimal integer literals with prefix only (without digit symbols). + */ + +val value = 0x +val value = 0X diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/1.2.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/1.2.txt new file mode 100644 index 00000000000..8a14b631a4b --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/1.2.txt @@ -0,0 +1,24 @@ +KtFile: 1.2.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.1.kt new file mode 100644 index 00000000000..66da3abe663 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.1.kt @@ -0,0 +1,19 @@ +/* + KOTLIN PSI SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, hexadecimal-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] Digits may be separated by an underscore symbol, but no underscore can be placed before the first digit or after the last one. + NUMBER: 1 + DESCRIPTION: Hexadecimal integer literals with underscore symbols in the valid positions. + */ + +val value = 0x1_234C67890 +val value = 0XF_______3456789 +val value = 0x3_4_5_6_7_8 +val value = 0X4_______5_______d_______7 +val value = 0X5__________________________________________________________________________________________________6 +val value = 0x0_______B +val value = 0X0_0 +val value = 0xB_______________________________________________________________________________________________________________________________________________________0 +val value = 0x1_00000000000000000_1 diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.1.txt new file mode 100644 index 00000000000..6f57899f9ac --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.1.txt @@ -0,0 +1,94 @@ +KtFile: 2.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x1_234C67890') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0XF_______3456789') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x3_4_5_6_7_8') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X4_______5_______d_______7') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X5__________________________________________________________________________________________________6') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x0_______B') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X0_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xB_______________________________________________________________________________________________________________________________________________________0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x1_00000000000000000_1') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.2.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.2.kt new file mode 100644 index 00000000000..ff00e1dcac5 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.2.kt @@ -0,0 +1,14 @@ +/* + KOTLIN PSI SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, hexadecimal-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] Digits may be separated by an underscore symbol, but no underscore can be placed before the first digit or after the last one. + NUMBER: 2 + DESCRIPTION: Hexadecimal integer literals with underscore symbols after hexadecimal prefix. + */ + +val value = 0x_a2b45f789e +val value = 0X_______2f45c7d9 +val value = 0X_a_3_4_5_6_7_e_e +val value = 0x_ diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.2.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.2.txt new file mode 100644 index 00000000000..0eb9c019ff3 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.2.txt @@ -0,0 +1,44 @@ +KtFile: 2.2.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x_a2b45f789e') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X_______2f45c7d9') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X_a_3_4_5_6_7_e_e') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x_') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.3.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.3.kt new file mode 100644 index 00000000000..2f5597caaa2 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.3.kt @@ -0,0 +1,17 @@ +/* + KOTLIN PSI SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, hexadecimal-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] Digits may be separated by an underscore symbol, but no underscore can be placed before the first digit or after the last one. + NUMBER: 3 + DESCRIPTION: Hexadecimal integer literals with underscore symbol after the last digit. + */ + +val value = 0x3_c_c_c_7_8_____ +val value = 0Xc_______5_______6_______F_ +val value = 0X000000000_ +val value = 0x_ +val value = 0X______________ +val value = 0X0_ +val value = 0X1e_ diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.3.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.3.txt new file mode 100644 index 00000000000..40ad8cdb93c --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.3.txt @@ -0,0 +1,74 @@ +KtFile: 2.3.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x3_c_c_c_7_8_____') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0Xc_______5_______6_______F_') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X000000000_') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x_') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X______________') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X0_') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X1e_') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.4.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.4.kt new file mode 100644 index 00000000000..dffa1bbf086 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.4.kt @@ -0,0 +1,21 @@ +/* + KOTLIN PSI SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, hexadecimal-integer-literals + PARAGRAPH: 1 + SENTENCE: [2] Digits may be separated by an underscore symbol, but no underscore can be placed before the first digit or after the last one. + NUMBER: 4 + DESCRIPTION: Hexadecimal integer literals with underscore symbol before the first digit (it's considered as identifiers). + */ + +val value = _____0x3_4_5_6_7_8 +val value = _0X4_______5_______6_______7 +val value = _0_0X4_3_4_5_6_7_8_9 +val value = _0X000000000 +val value = _0000000000x +val value = _0_9x +val value = ____________0x +val value = _0_x_0 +val value = _x_0 +val value = _x +val value = _x_ diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.4.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.4.txt new file mode 100644 index 00000000000..5e060bbe900 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.4.txt @@ -0,0 +1,114 @@ +KtFile: 2.4.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_____0x3_4_5_6_7_8') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_0X4_______5_______6_______7') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_0_0X4_3_4_5_6_7_8_9') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_0X000000000') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_0000000000x') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_0_9x') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('____________0x') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_0_x_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_x_0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_x') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_x_') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.1.kt new file mode 100644 index 00000000000..8d70f969001 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.1.kt @@ -0,0 +1,16 @@ +/* + KOTLIN PSI SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] Any of the decimal, hexadecimal or binary literals may be suffixed by the long literal mark (symbol L). + NUMBER: 1 + DESCRIPTION: Various integer literals with a long literal mark doublicate. + */ + +val value = 1234567890lL +val value = 1Ll +val value = 1_ll +val value = 1234_5678_90LLLLLL +val value = 0x1llllll +val value = 0B0LlLlLl diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.1.txt new file mode 100644 index 00000000000..a2cc873472a --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.1.txt @@ -0,0 +1,94 @@ +KtFile: 1.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1234567890l') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('L') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1L') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('l') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1_l') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('l') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1234_5678_90L') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('LLLLL') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x1l') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('lllll') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B0L') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('lLlLl') + PsiErrorElement:Expecting an element + \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.2.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.2.kt new file mode 100644 index 00000000000..f6616e3fb9b --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.2.kt @@ -0,0 +1,21 @@ +/* + KOTLIN PSI SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] Any of the decimal, hexadecimal or binary literals may be suffixed by the long literal mark (symbol L). + NUMBER: 2 + DESCRIPTION: Various integer literals with a long literal mark in not allowed positions. + */ + +val value = 0x0123456L789abcdef +val value = 0lXal +val value = 0xL0L +val value = 0X4_______5_______d_______L7l +val value = 0xl_l +val value = 0b10101010101L0 +val value = 0bL000000009l +val value = 0LB1___L____0____l___1____L___0 +val value = 0Bl1______________0 +val value = 0L0L +val value = 1L0L diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.2.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.2.txt new file mode 100644 index 00000000000..c6b7ec25113 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.2.txt @@ -0,0 +1,154 @@ +KtFile: 1.2.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x0123456L') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('789') + PsiElement(IDENTIFIER)('abcdef') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0l') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('Xal') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xL') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X4_______5_______d_______L') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('7l') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xl') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_l') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b10101010101L') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0bL') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('0') + PsiElement(INTEGER_LITERAL)('9l') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0L') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('B1___L____0____l___1____L___0') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0Bl') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('1______________0') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0L') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1L') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('0L') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.3.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.3.kt new file mode 100644 index 00000000000..1a17bfe213f --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.3.kt @@ -0,0 +1,16 @@ +/* + KOTLIN PSI SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] Any of the decimal, hexadecimal or binary literals may be suffixed by the long literal mark (symbol L). + NUMBER: 3 + DESCRIPTION: Various integer literals with underscores after a long literal mark. + */ + +val value = 1000l___ +val value = 90L_ +val value = 0xFL_ +val value = 0X0Al_ +val value = 0b1L_ +val value = 0B101001L_ diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.3.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.3.txt new file mode 100644 index 00000000000..10ff3646596 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.3.txt @@ -0,0 +1,94 @@ +KtFile: 1.3.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1000l') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('___') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('90L') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xFL') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X0Al') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b1L') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B101001L') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('_') + PsiErrorElement:Expecting an element + \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.4.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.4.kt new file mode 100644 index 00000000000..9a4d6c58736 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.4.kt @@ -0,0 +1,14 @@ +/* + KOTLIN PSI SPEC TEST (NEGATIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] Any of the decimal, hexadecimal or binary literals may be suffixed by the long literal mark (symbol L). + NUMBER: 4 + DESCRIPTION: The long literal mark after not integer literals. + */ + +val value = 'a'l +val value = .09L +val value = 10.10l +val value = "..."L diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.4.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.4.txt new file mode 100644 index 00000000000..5b8d62fdbce --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.4.txt @@ -0,0 +1,67 @@ +KtFile: 1.4.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + CHARACTER_CONSTANT + PsiElement(CHARACTER_LITERAL)(''a'') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('l') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.09') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('L') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('10.10') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('l') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + BINARY_EXPRESSION + STRING_TEMPLATE + PsiElement(OPEN_QUOTE)('"') + LITERAL_STRING_TEMPLATE_ENTRY + PsiElement(REGULAR_STRING_PART)('...') + PsiElement(CLOSING_QUOTE)('"') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('L') + PsiErrorElement:Expecting an element + \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.1.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.1.kt new file mode 100644 index 00000000000..274c33350d2 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.1.kt @@ -0,0 +1,27 @@ +/* + KOTLIN PSI SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] Any of the decimal, hexadecimal or binary literals may be suffixed by the long literal mark (symbol L). + NUMBER: 1 + DESCRIPTION: Decimal integer literals suffixed by the long literal mark. + */ + +val value = 1234567890L +val value = 23456789L +val value = 345678L +val value = 4567L +val value = 56L +val value = 65L +val value = 7654L +val value = 876543L +val value = 98765432L + +val value = 0L +val value = 1L + +val value = 100000L +val value = 1000001L + +val value = 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999L diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.1.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.1.txt new file mode 100644 index 00000000000..1386768ff00 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.1.txt @@ -0,0 +1,144 @@ +KtFile: 1.1.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1234567890L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('23456789L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('345678L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('4567L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('56L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('65L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('7654L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('876543L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('98765432L') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1L') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('100000L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1000001L') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999L') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.10.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.10.kt new file mode 100644 index 00000000000..47062e255e6 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.10.kt @@ -0,0 +1,14 @@ +/* + KOTLIN PSI SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] Any of the decimal, hexadecimal or binary literals may be suffixed by the long literal mark (symbol L). + NUMBER: 10 + DESCRIPTION: Long literal mark in not allowed positions (it's considered as identifiers). + */ + +val value = l1234 +val value = L0xA0Al +val value = _l +val value = _L diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.10.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.10.txt new file mode 100644 index 00000000000..99f1a81d991 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.10.txt @@ -0,0 +1,44 @@ +KtFile: 1.10.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('l1234') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('L0xA0Al') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_l') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('_L') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.2.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.2.kt new file mode 100644 index 00000000000..fdc30450432 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.2.kt @@ -0,0 +1,24 @@ +/* + KOTLIN PSI SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] Any of the decimal, hexadecimal or binary literals may be suffixed by the long literal mark (symbol L). + NUMBER: 2 + DESCRIPTION: Decimal integer literals with underscores suffixed by the long literal mark. + */ + +val value = 1234_5678_90L +val value = 1_2_3_4_5_6_7_8_9_0L +val value = 1_2L +val value = 1_00000000000000000_1L +val value = 1_____________2L +val value = 9_____________0000L +val value = 9____________0_0000L +val value = 1_______________________________________________________________________________________________________________________________________________________0L + +val value = 1_L +val value = 1_00000000000000000_L +val value = 1_____________L +val value = 9____________0_L +val value = 1_______________________________________________________________________________________________________________________________________________________L diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.2.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.2.txt new file mode 100644 index 00000000000..78f109753ed --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.2.txt @@ -0,0 +1,134 @@ +KtFile: 1.2.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1234_5678_90L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1_2_3_4_5_6_7_8_9_0L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1_2L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1_00000000000000000_1L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1_____________2L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('9_____________0000L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('9____________0_0000L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1_______________________________________________________________________________________________________________________________________________________0L') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1_L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1_00000000000000000_L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1_____________L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('9____________0_L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1_______________________________________________________________________________________________________________________________________________________L') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.3.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.3.kt new file mode 100644 index 00000000000..7ef86ec0a02 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.3.kt @@ -0,0 +1,56 @@ +/* + KOTLIN PSI SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] Any of the decimal, hexadecimal or binary literals may be suffixed by the long literal mark (symbol L). + NUMBER: 3 + DESCRIPTION: Hexadecimal integer literals suffixed by the long literal mark. + */ + +val value = 0x1234567890L +val value = 0X23456789L +val value = 0x345678L +val value = 0X4567L +val value = 0X56L +val value = 0x65L +val value = 0X7654L +val value = 0x876543L +val value = 0x98765432L + +val value = 0X0L +val value = 0x1L + +val value = 0x100000L +val value = 0X1000001L + +val value = 0X0000000L +val value = 0x0000001000000L +val value = 0x00000010L + +val value = 0xABCDEFL +val value = 0XabcdefL +val value = 0xAbcDL +val value = 0XaL +val value = 0xEL +val value = 0xEeEeEeEeL +val value = 0XAAAAAAAAL +val value = 0xcDfL +val value = 0xAcccccccccAL + +val value = 0x0123456789ABCDEFL +val value = 0x0123456789abcdefL +val value = 0XAA00AAL +val value = 0xBc12eFL +val value = 0xa0L +val value = 0XE1L +val value = 0xE1eE2eE3eE4eL +val value = 0XAAAAAAAA000000000L +val value = 0xcDf091L +val value = 0xAcccc0000cccccAL +val value = 0X0000000AL +val value = 0xe0000000L +val value = 0x0000000D0000000L +val value = 0xA0AL + +val value = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFL diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.3.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.3.txt new file mode 100644 index 00000000000..4c68e67dae4 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.3.txt @@ -0,0 +1,404 @@ +KtFile: 1.3.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x1234567890L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X23456789L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x345678L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X4567L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X56L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x65L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X7654L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x876543L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x98765432L') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X0L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x1L') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x100000L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X1000001L') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X0000000L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x0000001000000L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x00000010L') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xABCDEFL') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0XabcdefL') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xAbcDL') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0XaL') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xEL') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xEeEeEeEeL') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0XAAAAAAAAL') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xcDfL') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xAcccccccccAL') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x0123456789ABCDEFL') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x0123456789abcdefL') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0XAA00AAL') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xBc12eFL') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xa0L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0XE1L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xE1eE2eE3eE4eL') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0XAAAAAAAA000000000L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xcDf091L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xAcccc0000cccccAL') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X0000000AL') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xe0000000L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x0000000D0000000L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xA0AL') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFL') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.4.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.4.kt new file mode 100644 index 00000000000..6e9b7738b32 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.4.kt @@ -0,0 +1,12 @@ +/* + KOTLIN PSI SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] Any of the decimal, hexadecimal or binary literals may be suffixed by the long literal mark (symbol L). + NUMBER: 4 + DESCRIPTION: Hexadecimal prefix only suffixed by the long literal mark. + */ + +val value = 0xL +val value = 0XL diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.4.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.4.txt new file mode 100644 index 00000000000..9432f8f8a2b --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.4.txt @@ -0,0 +1,24 @@ +KtFile: 1.4.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xL') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0XL') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.5.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.5.kt new file mode 100644 index 00000000000..587ad70ee60 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.5.kt @@ -0,0 +1,32 @@ +/* + KOTLIN PSI SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] Any of the decimal, hexadecimal or binary literals may be suffixed by the long literal mark (symbol L). + NUMBER: 5 + DESCRIPTION: Hexadecimal integer literals with underscores suffixed by the long literal mark. + */ + +val value = 0x1_234C67890L +val value = 0XF_______3456789L +val value = 0x3_4_5_6_7_8L +val value = 0X4_______5_______d_______7L +val value = 0X5__________________________________________________________________________________________________6L +val value = 0x0_______BL +val value = 0X0_0L +val value = 0xB_______________________________________________________________________________________________________________________________________________________0L +val value = 0x1_00000000000000000_1L + +val value = 0x_a2b45f789eL +val value = 0X_______2f45c7d9L +val value = 0X_a_3_4_5_6_7_e_eL +val value = 0x_L + +val value = 0x3_c_c_c_7_8_____L +val value = 0Xc_______5_______6_______F_L +val value = 0X000000000_L +val value = 0x_L +val value = 0X______________L +val value = 0X0_L +val value = 0X1e_L diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.5.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.5.txt new file mode 100644 index 00000000000..5385d91e551 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.5.txt @@ -0,0 +1,204 @@ +KtFile: 1.5.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x1_234C67890L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0XF_______3456789L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x3_4_5_6_7_8L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X4_______5_______d_______7L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X5__________________________________________________________________________________________________6L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x0_______BL') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X0_0L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xB_______________________________________________________________________________________________________________________________________________________0L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x1_00000000000000000_1L') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x_a2b45f789eL') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X_______2f45c7d9L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X_a_3_4_5_6_7_e_eL') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x_L') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x3_c_c_c_7_8_____L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0Xc_______5_______6_______F_L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X000000000_L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x_L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X______________L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X0_L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X1e_L') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.6.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.6.kt new file mode 100644 index 00000000000..cf912b10b23 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.6.kt @@ -0,0 +1,30 @@ +/* + KOTLIN PSI SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] Any of the decimal, hexadecimal or binary literals may be suffixed by the long literal mark (symbol L). + NUMBER: 6 + DESCRIPTION: Binary integer literals suffixed by the long literal mark. + */ + +val value = 0b0000111110000L +val value = 0B010101010101L +val value = 0b10101010101L +val value = 0B000000000000L +val value = 0b0L +val value = 0B0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L +val value = 0b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000L +val value = 0B111111111111111111111111111111111111111111111111111111111111111L +val value = 0B1L +val value = 0b111111111111L +val value = 0b10L +val value = 0B01L +val value = 0B100000000L +val value = 0b000000001L +val value = 0B000123412L +val value = 0b000000009L +val value = 0b200000000L +val value = 0b1234567890L + +val value = 0B10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.6.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.6.txt new file mode 100644 index 00000000000..8aea14af321 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.6.txt @@ -0,0 +1,194 @@ +KtFile: 1.6.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b0000111110000L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B010101010101L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b10101010101L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B000000000000L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b0L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B111111111111111111111111111111111111111111111111111111111111111L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B1L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b111111111111L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b10L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B01L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B100000000L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b000000001L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B000123412L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b000000009L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b200000000L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b1234567890L') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.7.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.7.kt new file mode 100644 index 00000000000..6bbb199c6d7 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.7.kt @@ -0,0 +1,12 @@ +/* + KOTLIN PSI SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] Any of the decimal, hexadecimal or binary literals may be suffixed by the long literal mark (symbol L). + NUMBER: 7 + DESCRIPTION: Binary prefix only suffixed by the long literal mark. + */ + +val value = 0bL +val value = 0BL diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.7.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.7.txt new file mode 100644 index 00000000000..6690bc34662 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.7.txt @@ -0,0 +1,24 @@ +KtFile: 1.7.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0bL') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0BL') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.8.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.8.kt new file mode 100644 index 00000000000..1cd917c4858 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.8.kt @@ -0,0 +1,31 @@ +/* + KOTLIN PSI SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] Any of the decimal, hexadecimal or binary literals may be suffixed by the long literal mark (symbol L). + NUMBER: 8 + DESCRIPTION: Binary integer literals with underscores suffixed by the long literal mark. + */ + +val value = 0b0_00_01_11_11_00_00L +val value = 0B0_1_0_1_0_1_0_1_0_1_0_1L +val value = 0b101_010_10101L +val value = 0B00000000000________________________0L +val value = 0b0_0L +val value = 0B00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L +val value = 0B11111111111111111111111111_________1111111111111111111111111111111111111L +val value = 0b1_______________________________________________________________________________________________________________________________________________________0L + +val value = 0b_000111010001111L +val value = 0b_______011001L +val value = 0B_0_1_0_1_1_0_0L +val value = 0b_L + +val value = 0b0_1_0_1_0_1_____L +val value = 0B1_______0_______1_______0_L +val value = 0B000000000_L +val value = 0b_L +val value = 0B______________L +val value = 0B0_L +val value = 0b10_L diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.8.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.8.txt new file mode 100644 index 00000000000..07393b0cbfa --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.8.txt @@ -0,0 +1,194 @@ +KtFile: 1.8.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b0_00_01_11_11_00_00L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B0_1_0_1_0_1_0_1_0_1_0_1L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b101_010_10101L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B00000000000________________________0L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b0_0L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B11111111111111111111111111_________1111111111111111111111111111111111111L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b1_______________________________________________________________________________________________________________________________________________________0L') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b_000111010001111L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b_______011001L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B_0_1_0_1_1_0_0L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b_L') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b0_1_0_1_0_1_____L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B1_______0_______1_______0_L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B000000000_L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b_L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B______________L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B0_L') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b10_L') \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.9.kt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.9.kt new file mode 100644 index 00000000000..79672d8651e --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.9.kt @@ -0,0 +1,26 @@ +/* + KOTLIN PSI SPEC TEST (POSITIVE) + + SECTIONS: constant-literals, integer-literals, long-integer-literals + PARAGRAPH: 1 + SENTENCE: [1] Any of the decimal, hexadecimal or binary literals may be suffixed by the long literal mark (symbol L). + NUMBER: 9 + DESCRIPTION: Various integer literals with long literal mark in not allowed lower case (but valid in opinion the parser). + */ + +val value = 1234567890l +val value = 1l +val value = 1_l +val value = 1234_5678_90l +val value = 0x0123456789abcdefl +val value = 0x1l +val value = 0Xal +val value = 0xA0Al +val value = 0xl +val value = 0X4_______5_______d_______7l +val value = 0x_l +val value = 0b10101010101l +val value = 0b000000009l +val value = 0bl +val value = 0B1_______0_______1_______0_l +val value = 0B______________l diff --git a/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.9.txt b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.9.txt new file mode 100644 index 00000000000..6bd4fb40ad4 --- /dev/null +++ b/compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.9.txt @@ -0,0 +1,164 @@ +KtFile: 1.9.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1234567890l') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1l') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1_l') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1234_5678_90l') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x0123456789abcdefl') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x1l') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0Xal') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xA0Al') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xl') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0X4_______5_______d_______7l') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0x_l') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b10101010101l') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b000000009l') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0bl') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B1_______0_______1_______0_l') + PsiWhiteSpace('\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0B______________l') \ No newline at end of file diff --git a/compiler/tests-spec/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestSpecGenerated.java b/compiler/tests-spec/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestSpecGenerated.java index a3a9a261936..8de922017c6 100644 --- a/compiler/tests-spec/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestSpecGenerated.java +++ b/compiler/tests-spec/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestSpecGenerated.java @@ -41,6 +41,316 @@ public class DiagnosticsTestSpecGenerated extends AbstractDiagnosticsTestSpec { KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Constant_literals extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInConstant_literals() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Integer_literals extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInInteger_literals() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Binary_integer_literals extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInBinary_integer_literals() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class P_1 extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInP_1() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Neg extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.1.kt"); + } + + @TestMetadata("2.1.kt") + public void test2_1() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.1.kt"); + } + + @TestMetadata("2.2.kt") + public void test2_2() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.2.kt"); + } + + @TestMetadata("2.3.kt") + public void test2_3() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.3.kt"); + } + + public void testAllFilesPresentInNeg() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + } + } + + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/decimal-integer-literals") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Decimal_integer_literals extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInDecimal_integer_literals() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/decimal-integer-literals"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/decimal-integer-literals/p-1") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class P_1 extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInP_1() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/decimal-integer-literals/p-1"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Neg extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("2.1.kt") + public void test2_1() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg/2.1.kt"); + } + + @TestMetadata("2.2.kt") + public void test2_2() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg/2.2.kt"); + } + + public void testAllFilesPresentInNeg() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + } + } + + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Hexadecimal_integer_literals extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInHexadecimal_integer_literals() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class P_1 extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInP_1() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Neg extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.1.kt"); + } + + @TestMetadata("2.1.kt") + public void test2_1() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.1.kt"); + } + + @TestMetadata("2.2.kt") + public void test2_2() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.2.kt"); + } + + @TestMetadata("2.3.kt") + public void test2_3() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.3.kt"); + } + + public void testAllFilesPresentInNeg() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + } + } + + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Long_integer_literals extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInLong_integer_literals() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class P_1 extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInP_1() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Neg extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.1.kt"); + } + + @TestMetadata("1.2.kt") + public void test1_2() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.2.kt"); + } + + @TestMetadata("1.3.kt") + public void test1_3() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.3.kt"); + } + + @TestMetadata("2.1.kt") + public void test2_1() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/2.1.kt"); + } + + @TestMetadata("2.2.kt") + public void test2_2() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/2.2.kt"); + } + + @TestMetadata("2.3.kt") + public void test2_3() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/2.3.kt"); + } + + @TestMetadata("2.4.kt") + public void test2_4() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/2.4.kt"); + } + + @TestMetadata("2.5.kt") + public void test2_5() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/2.5.kt"); + } + + public void testAllFilesPresentInNeg() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Pos extends AbstractDiagnosticsTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("2.1.kt") + public void test2_1() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/2.1.kt"); + } + + @TestMetadata("2.2.kt") + public void test2_2() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/2.2.kt"); + } + + @TestMetadata("2.3.kt") + public void test2_3() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/2.3.kt"); + } + + @TestMetadata("2.4.kt") + public void test2_4() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/2.4.kt"); + } + + @TestMetadata("2.5.kt") + public void test2_5() throws Exception { + runTest("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/2.5.kt"); + } + + public void testAllFilesPresentInPos() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + } + } + } + } + @TestMetadata("compiler/tests-spec/testData/diagnostics/linked/when-expression") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) diff --git a/compiler/tests-spec/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestSpecGenerated.java b/compiler/tests-spec/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestSpecGenerated.java index f1d016ab298..27effef21da 100644 --- a/compiler/tests-spec/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestSpecGenerated.java +++ b/compiler/tests-spec/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestSpecGenerated.java @@ -221,6 +221,220 @@ public class BlackBoxCodegenTestSpecGenerated extends AbstractBlackBoxCodegenTes } } } + + @TestMetadata("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Integer_literals extends AbstractBlackBoxCodegenTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInInteger_literals() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/binary-integer-literals") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Binary_integer_literals extends AbstractBlackBoxCodegenTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInBinary_integer_literals() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/binary-integer-literals"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/binary-integer-literals/p-1") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class P_1 extends AbstractBlackBoxCodegenTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInP_1() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/binary-integer-literals/p-1"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Pos extends AbstractBlackBoxCodegenTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.1.kt"); + } + + @TestMetadata("2.1.kt") + public void test2_1() throws Exception { + runTest("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.1.kt"); + } + + public void testAllFilesPresentInPos() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + } + } + + @TestMetadata("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/decimal-integer-literals") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Decimal_integer_literals extends AbstractBlackBoxCodegenTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInDecimal_integer_literals() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/decimal-integer-literals"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/decimal-integer-literals/p-1") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class P_1 extends AbstractBlackBoxCodegenTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInP_1() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/decimal-integer-literals/p-1"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Pos extends AbstractBlackBoxCodegenTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/1.1.kt"); + } + + @TestMetadata("2.1.kt") + public void test2_1() throws Exception { + runTest("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.1.kt"); + } + + public void testAllFilesPresentInPos() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + } + } + + @TestMetadata("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/hexadecimal-integer-literals") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Hexadecimal_integer_literals extends AbstractBlackBoxCodegenTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInHexadecimal_integer_literals() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/hexadecimal-integer-literals"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class P_1 extends AbstractBlackBoxCodegenTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInP_1() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Pos extends AbstractBlackBoxCodegenTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/1.1.kt"); + } + + @TestMetadata("2.1.kt") + public void test2_1() throws Exception { + runTest("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.1.kt"); + } + + public void testAllFilesPresentInPos() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + } + } + + @TestMetadata("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/long-integer-literals") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Long_integer_literals extends AbstractBlackBoxCodegenTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInLong_integer_literals() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/long-integer-literals"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/long-integer-literals/p-1") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class P_1 extends AbstractBlackBoxCodegenTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInP_1() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/long-integer-literals/p-1"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Pos extends AbstractBlackBoxCodegenTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.1.kt"); + } + + @TestMetadata("1.2.kt") + public void test1_2() throws Exception { + runTest("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.2.kt"); + } + + @TestMetadata("1.3.kt") + public void test1_3() throws Exception { + runTest("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.3.kt"); + } + + public void testAllFilesPresentInPos() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + } + } + } } } } diff --git a/compiler/tests-spec/tests/org/jetbrains/kotlin/parsing/ParsingTestSpecGenerated.java b/compiler/tests-spec/tests/org/jetbrains/kotlin/parsing/ParsingTestSpecGenerated.java index 438ad7d944e..cbd43da4ff7 100644 --- a/compiler/tests-spec/tests/org/jetbrains/kotlin/parsing/ParsingTestSpecGenerated.java +++ b/compiler/tests-spec/tests/org/jetbrains/kotlin/parsing/ParsingTestSpecGenerated.java @@ -364,6 +364,453 @@ public class ParsingTestSpecGenerated extends AbstractParsingTestSpec { } } } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Integer_literals extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInInteger_literals() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Binary_integer_literals extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInBinary_integer_literals() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class P_1 extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInP_1() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Neg extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.1.kt"); + } + + @TestMetadata("1.2.kt") + public void test1_2() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/1.2.kt"); + } + + @TestMetadata("2.1.kt") + public void test2_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg/2.1.kt"); + } + + public void testAllFilesPresentInNeg() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/neg"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Pos extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.1.kt"); + } + + @TestMetadata("1.2.kt") + public void test1_2() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.2.kt"); + } + + @TestMetadata("1.3.kt") + public void test1_3() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/1.3.kt"); + } + + @TestMetadata("2.1.kt") + public void test2_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.1.kt"); + } + + @TestMetadata("2.2.kt") + public void test2_2() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.2.kt"); + } + + @TestMetadata("2.3.kt") + public void test2_3() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.3.kt"); + } + + @TestMetadata("2.4.kt") + public void test2_4() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos/2.4.kt"); + } + + public void testAllFilesPresentInPos() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/binary-integer-literals/p-1/pos"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + } + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Decimal_integer_literals extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInDecimal_integer_literals() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class P_1 extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInP_1() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Neg extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg/1.1.kt"); + } + + public void testAllFilesPresentInNeg() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/neg"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Pos extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/1.1.kt"); + } + + @TestMetadata("2.1.kt") + public void test2_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.1.kt"); + } + + @TestMetadata("2.2.kt") + public void test2_2() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.2.kt"); + } + + @TestMetadata("2.3.kt") + public void test2_3() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos/2.3.kt"); + } + + public void testAllFilesPresentInPos() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-1/pos"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-2") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class P_2 extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInP_2() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-2"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-2/neg") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Neg extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-2/neg/1.1.kt"); + } + + @TestMetadata("1.2.kt") + public void test1_2() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-2/neg/1.2.kt"); + } + + public void testAllFilesPresentInNeg() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/decimal-integer-literals/p-2/neg"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + } + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Hexadecimal_integer_literals extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInHexadecimal_integer_literals() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class P_1 extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInP_1() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Neg extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.1.kt"); + } + + @TestMetadata("1.2.kt") + public void test1_2() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/1.2.kt"); + } + + @TestMetadata("2.1.kt") + public void test2_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg/2.1.kt"); + } + + public void testAllFilesPresentInNeg() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/neg"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Pos extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/1.1.kt"); + } + + @TestMetadata("1.2.kt") + public void test1_2() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/1.2.kt"); + } + + @TestMetadata("2.1.kt") + public void test2_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.1.kt"); + } + + @TestMetadata("2.2.kt") + public void test2_2() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.2.kt"); + } + + @TestMetadata("2.3.kt") + public void test2_3() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.3.kt"); + } + + @TestMetadata("2.4.kt") + public void test2_4() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos/2.4.kt"); + } + + public void testAllFilesPresentInPos() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/hexadecimal-integer-literals/p-1/pos"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + } + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Long_integer_literals extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInLong_integer_literals() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class P_1 extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInP_1() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Neg extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.1.kt"); + } + + @TestMetadata("1.2.kt") + public void test1_2() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.2.kt"); + } + + @TestMetadata("1.3.kt") + public void test1_3() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.3.kt"); + } + + @TestMetadata("1.4.kt") + public void test1_4() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg/1.4.kt"); + } + + public void testAllFilesPresentInNeg() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/neg"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + + @TestMetadata("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Pos extends AbstractParsingTestSpec { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doParsingTest, TargetBackend.ANY, testDataFilePath); + } + + @TestMetadata("1.1.kt") + public void test1_1() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.1.kt"); + } + + @TestMetadata("1.10.kt") + public void test1_10() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.10.kt"); + } + + @TestMetadata("1.2.kt") + public void test1_2() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.2.kt"); + } + + @TestMetadata("1.3.kt") + public void test1_3() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.3.kt"); + } + + @TestMetadata("1.4.kt") + public void test1_4() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.4.kt"); + } + + @TestMetadata("1.5.kt") + public void test1_5() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.5.kt"); + } + + @TestMetadata("1.6.kt") + public void test1_6() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.6.kt"); + } + + @TestMetadata("1.7.kt") + public void test1_7() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.7.kt"); + } + + @TestMetadata("1.8.kt") + public void test1_8() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.8.kt"); + } + + @TestMetadata("1.9.kt") + public void test1_9() throws Exception { + runTest("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos/1.9.kt"); + } + + public void testAllFilesPresentInPos() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/tests-spec/testData/psi/linked/constant-literals/integer-literals/long-integer-literals/p-1/pos"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); + } + } + } + } + } } } }