Skip to content

Commit

Permalink
pythongh-102310: Change error range for invalid bytes literals (pytho…
Browse files Browse the repository at this point in the history
  • Loading branch information
sobolevn committed Apr 23, 2023
1 parent 7bf9456 commit 0fd3891
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 1 deletion.
24 changes: 24 additions & 0 deletions Lib/test/test_syntax.py
Original file line number Diff line number Diff line change
Expand Up @@ -1853,6 +1853,30 @@ def f(x: *b)
Traceback (most recent call last):
...
SyntaxError: invalid syntax
Invalid bytes literals:
>>> b"Ā"
Traceback (most recent call last):
...
b"Ā"
^^^
SyntaxError: bytes can only contain ASCII literal characters
>>> b"абвгде"
Traceback (most recent call last):
...
b"абвгде"
^^^^^^^^
SyntaxError: bytes can only contain ASCII literal characters
>>> b"abc ъющый" # first 3 letters are ascii
Traceback (most recent call last):
...
b"abc ъющый"
^^^^^^^^^^^
SyntaxError: bytes can only contain ASCII literal characters
"""

import re
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Change the error range for invalid bytes literals.
3 changes: 2 additions & 1 deletion Parser/string_parser.c
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,8 @@ _PyPegen_parse_string(Parser *p, Token *t)
const char *ch;
for (ch = s; *ch; ch++) {
if (Py_CHARMASK(*ch) >= 0x80) {
RAISE_SYNTAX_ERROR(
RAISE_SYNTAX_ERROR_KNOWN_LOCATION(
t,
"bytes can only contain ASCII "
"literal characters");
return NULL;
Expand Down

0 comments on commit 0fd3891

Please sign in to comment.