bpo-40847: Consider a line with only a LINECONT a blank line (GH-20769)
A line with only a line continuation character should be considered
a blank line at tokenizer level so that only a single NEWLINE token
gets emitted. The old parser was working around the issue, but the
new parser threw a `SyntaxError` for valid input. For example,
an empty line following a line continuation character was interpreted
as a `SyntaxError`.
Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
diff --git a/Lib/test/test_syntax.py b/Lib/test/test_syntax.py
index f41426a..0c207ec 100644
--- a/Lib/test/test_syntax.py
+++ b/Lib/test/test_syntax.py
@@ -858,6 +858,20 @@
"iterable argument unpacking follows "
"keyword argument unpacking")
+ def test_empty_line_after_linecont(self):
+ # See issue-40847
+ s = r"""\
+pass
+ \
+
+pass
+"""
+ try:
+ compile(s, '<string>', 'exec')
+ except SyntaxError:
+ self.fail("Empty line after a line continuation character is valid.")
+
+
def test_main():
support.run_unittest(SyntaxTestCase)
from test import test_syntax