]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-44409: Fix error location in tokenizer errors that happen during initialization...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Mon, 14 Jun 2021 17:07:52 +0000 (10:07 -0700)
committerGitHub <noreply@github.com>
Mon, 14 Jun 2021 17:07:52 +0000 (10:07 -0700)
(cherry picked from commit 507ed6fa1d6661e0f8e6d3282764aa9625a99594)

Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
Lib/test/test_exceptions.py
Misc/NEWS.d/next/Core and Builtins/2021-06-13-23-12-18.bpo-44409.eW4LS-.rst [new file with mode: 0644]
Parser/pegen.c

index 9cb5466a674d1364c279883a4503dbdb2cb0abe7..d444a122af9be7bc36df1e5fb759ed0811e4e779 100644 (file)
@@ -246,6 +246,7 @@ class ExceptionTests(unittest.TestCase):
         check("pass\npass\npass\n(1+)\npass\npass\npass", 4, 4)
         check("(1+)", 1, 4)
         check("[interesting\nfoo()\n", 1, 1)
+        check(b"\xef\xbb\xbf#coding: utf8\nprint('\xe6\x88\x91')\n", 0, -1)
 
         # Errors thrown by symtable.c
         check('x = [(yield i) for i in range(3)]', 1, 5)
diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-06-13-23-12-18.bpo-44409.eW4LS-.rst b/Misc/NEWS.d/next/Core and Builtins/2021-06-13-23-12-18.bpo-44409.eW4LS-.rst
new file mode 100644 (file)
index 0000000..0f204ed
--- /dev/null
@@ -0,0 +1,2 @@
+Fix error location information for tokenizer errors raised on initialization
+of the tokenizer. Patch by Pablo Galindo.
index 19412446b118abd4b1ab00a2641fed220f3689fd..615047c1b6a00731b756d0b5bbc49d9efad0e2a6 100644 (file)
@@ -283,6 +283,7 @@ static void
 raise_tokenizer_init_error(PyObject *filename)
 {
     if (!(PyErr_ExceptionMatches(PyExc_LookupError)
+          || PyErr_ExceptionMatches(PyExc_SyntaxError)
           || PyErr_ExceptionMatches(PyExc_ValueError)
           || PyErr_ExceptionMatches(PyExc_UnicodeDecodeError))) {
         return;