bpo-42214: Fix check for NOTEQUAL token in the PEG parser for the barry_as_flufl rule (GH-23048)

This commit is contained in:
Pablo Galindo 2020-10-30 23:48:42 +00:00 committed by GitHub
parent 6e03c0ad15
commit 06f8c3328d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 23 additions and 5 deletions

View file

@ -955,6 +955,23 @@ pass
code += f"{' '*4*12}pass"
self._check_error(code, "too many statically nested blocks")
def test_barry_as_flufl_with_syntax_errors(self):
# The "barry_as_flufl" rule can produce some "bugs-at-a-distance" if
# is reading the wrong token in the presence of syntax errors later
# in the file. See bpo-42214 for more information.
code = """
def func1():
if a != b:
raise ValueError
def func2():
try
return 1
finally:
pass
"""
self._check_error(code, "invalid syntax")
def test_main():
support.run_unittest(SyntaxTestCase)
from test import test_syntax