gh-102310: Change error range for invalid bytes literals (#103663)

This commit is contained in:
Nikita Sobolev 2023-04-23 03:08:27 +03:00 committed by GitHub
parent 7bf94568a9
commit 0fd3891758
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 1 deletions

View File

@ -1853,6 +1853,30 @@ x: *b
Traceback (most recent call last): Traceback (most recent call last):
... ...
SyntaxError: invalid syntax 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 import re

View File

@ -0,0 +1 @@
Change the error range for invalid bytes literals.

View File

@ -248,7 +248,8 @@ _PyPegen_parse_string(Parser *p, Token *t)
const char *ch; const char *ch;
for (ch = s; *ch; ch++) { for (ch = s; *ch; ch++) {
if (Py_CHARMASK(*ch) >= 0x80) { if (Py_CHARMASK(*ch) >= 0x80) {
RAISE_SYNTAX_ERROR( RAISE_SYNTAX_ERROR_KNOWN_LOCATION(
t,
"bytes can only contain ASCII " "bytes can only contain ASCII "
"literal characters"); "literal characters");
return NULL; return NULL;