diff options
author | Oleg Grenrus <oleg.grenrus@iki.fi> | 2021-02-14 13:33:21 +0200 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2021-04-05 20:38:07 -0400 |
commit | 9c9adbd0ffe6ecc37d3a565811d8e79f24383943 (patch) | |
tree | 6beab45ec5caf3e406c3aecb7dfb7f4361d3fb05 /testsuite | |
parent | 918d5021ad74a6b7e5e027df2f7d7605d833b486 (diff) | |
download | haskell-9c9adbd0ffe6ecc37d3a565811d8e79f24383943.tar.gz |
Implement proposal 403: Lexer cleanup
This allows Other Numbers to be used in identifiers, and also documents
other, already existing lexer divergence from Haskell Report
Diffstat (limited to 'testsuite')
-rw-r--r-- | testsuite/tests/parser/unicode/T18158.hs | 15 | ||||
-rw-r--r-- | testsuite/tests/parser/unicode/T18158b.hs | 15 | ||||
-rw-r--r-- | testsuite/tests/parser/unicode/T18158b.stderr | 2 | ||||
-rw-r--r-- | testsuite/tests/parser/unicode/all.T | 3 |
4 files changed, 35 insertions, 0 deletions
diff --git a/testsuite/tests/parser/unicode/T18158.hs b/testsuite/tests/parser/unicode/T18158.hs new file mode 100644 index 0000000000..510ba858c5 --- /dev/null +++ b/testsuite/tests/parser/unicode/T18158.hs @@ -0,0 +1,15 @@ +main = print nⅯⅯⅩⅩ + where nⅯⅯⅩⅩ = 11 + +-- ⅯⅯⅩⅩ is characters are in NumberLetter unicode category. +-- We now allow it to be used in identifiers, but they +-- are not lower or upper, so cannot be the first one. +-- +-- Just like 'OtherNumber' (#4373), 'ModifierLetter' (#10196) and +-- NonSpacingMark (#7650). +-- +-- > map generalCategory "ⅯⅯⅩⅩ" +-- [LetterNumber,LetterNumber,LetterNumber,LetterNumber] +-- +-- > map show "ⅯⅯⅩⅩ" +-- ["'\\8559'","'\\8559'","'\\8553'","'\\8553'"] diff --git a/testsuite/tests/parser/unicode/T18158b.hs b/testsuite/tests/parser/unicode/T18158b.hs new file mode 100644 index 0000000000..0bd8780b31 --- /dev/null +++ b/testsuite/tests/parser/unicode/T18158b.hs @@ -0,0 +1,15 @@ +main = print ⅯⅯⅩⅩ + where ⅯⅯⅩⅩ = 11 + +-- ⅯⅯⅩⅩ is characters are in NumberLetter unicode category. +-- We now allow it to be used in identifiers, but they +-- are not lower or upper, so cannot be the first one. +-- +-- Just like 'OtherNumber' (#4373), 'ModifierLetter' (#10196) and +-- NonSpacingMark (#7650). +-- +-- > map generalCategory "ⅯⅯⅩⅩ" +-- [LetterNumber,LetterNumber,LetterNumber,LetterNumber] +-- +-- > map show "ⅯⅯⅩⅩ" +-- ["'\\8559'","'\\8559'","'\\8553'","'\\8553'"] diff --git a/testsuite/tests/parser/unicode/T18158b.stderr b/testsuite/tests/parser/unicode/T18158b.stderr new file mode 100644 index 0000000000..a2148b3908 --- /dev/null +++ b/testsuite/tests/parser/unicode/T18158b.stderr @@ -0,0 +1,2 @@ + +T18158b.hs:1:14: error: lexical error at character '\8559' diff --git a/testsuite/tests/parser/unicode/all.T b/testsuite/tests/parser/unicode/all.T index 54a3b7cb1f..c854ea41c4 100644 --- a/testsuite/tests/parser/unicode/all.T +++ b/testsuite/tests/parser/unicode/all.T @@ -30,3 +30,6 @@ test('T7650', normal, compile, ['']) test('brackets', normal, compile, ['']) test('T18225A', normal, compile, ['']) test('T18225B', normal, compile_fail, ['']) + +test('T18158', normal, compile, ['']) +test('T18158b', normal, compile_fail, ['']) |