Self test on parsos files to check if there's no syntax errors.

This commit is contained in:
Dave Halter
2017-08-05 23:39:44 +02:00
parent db3c635fcd
commit 0e3e393f37
2 changed files with 28 additions and 2 deletions

View File

@@ -430,7 +430,7 @@ class ErrorFinder(Normalizer):
self._add_syntax_error(message % p.name.value, p.name)
param_names.add(p.name.value)
if p.default is None:
if p.default is None and not p.star_count:
if default_only:
# def f(x=3, y): pass
message = "non-default argument follows default argument"
@@ -510,6 +510,9 @@ class ErrorFinder(Normalizer):
yield
if node.type == 'suite':
self._indentation_count -= 1
def visit_leaf(self, leaf):
if leaf.type == 'error_leaf':
if leaf.original_type in ('indent', 'error_dedent'):
@@ -597,7 +600,7 @@ class ErrorFinder(Normalizer):
elif leaf.value == 'break':
in_loop = False
for block in self._context.blocks:
if block.type == 'for_stmt':
if block.type in ('for_stmt', 'while_stmt'):
in_loop = True
if not in_loop:
self._add_syntax_error("'break' outside loop", leaf)