diff options
author | Guido van Rossum <guido@python.org> | 2020-05-15 02:22:48 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-15 02:22:48 (GMT) |
commit | 15bc9ab301d73f20bff47a12ef05326feb40f797 (patch) | |
tree | e29afe19a6ce7aaa5b7f1ea3639810080ea6d2d5 /Lib/test/test_cmd_line_script.py | |
parent | 1aa8767baf498a920f0461d1088772a12dcb4d20 (diff) | |
download | cpython-15bc9ab301d73f20bff47a12ef05326feb40f797.zip cpython-15bc9ab301d73f20bff47a12ef05326feb40f797.tar.gz cpython-15bc9ab301d73f20bff47a12ef05326feb40f797.tar.bz2 |
bpo-40612: Fix SyntaxError edge cases in traceback formatting (GH-20072)
This fixes both the traceback.py module and the C code for formatting syntax errors (in Python/pythonrun.c). They now both consistently do the following:
- Suppress caret if it points left of text
- Allow caret pointing just past end of line
- If caret points past end of line, clip to *just* past end of line
The syntax error formatting code in traceback.py was mostly rewritten; small, subtle changes were applied to the C code in pythonrun.c.
There's still a difference when the text contains embedded newlines. Neither handles these very well, and I don't think the case occurs in practice.
Automerge-Triggered-By: @gvanrossum
Diffstat (limited to 'Lib/test/test_cmd_line_script.py')
-rw-r--r-- | Lib/test/test_cmd_line_script.py | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/Lib/test/test_cmd_line_script.py b/Lib/test/test_cmd_line_script.py index 1713405..15fca7b 100644 --- a/Lib/test/test_cmd_line_script.py +++ b/Lib/test/test_cmd_line_script.py @@ -633,7 +633,7 @@ class CmdLineTest(unittest.TestCase): stderr.splitlines()[-3:], [ b' foo"""', - b' ^', + b' ^', b'SyntaxError: f-string: empty expression not allowed', ], ) |