Remove issue if the previous leaf is an error leaf.

This commit is contained in:
Dave Halter
2017-07-08 23:12:08 +02:00
parent cdc2df7881
commit 7198df85ba
4 changed files with 11 additions and 9 deletions

View File

@@ -207,9 +207,9 @@ class Parser(BaseParser):
# For every deleted INDENT we have to delete a DEDENT as well.
# Otherwise the parser will get into trouble and DEDENT too early.
self._omit_dedent_list.append(self._indent_counter)
else:
error_leaf = tree.PythonErrorLeaf(tok_name[typ].lower(), value, start_pos, prefix)
stack[-1][2][1].append(error_leaf)
error_leaf = tree.PythonErrorLeaf(tok_name[typ].lower(), value, start_pos, prefix)
stack[-1][2][1].append(error_leaf)
def _stack_removal(self, pgen_grammar, stack, arcs, start_index, value, start_pos):
failed_stack = []

View File

@@ -675,9 +675,12 @@ class PEP8Normalizer(Normalizer):
def add_issue(self, code, message, node):
from parso.python.tree import search_ancestor
if search_ancestor(node, 'error_node') is not None or \
self._previous_leaf is not None and \
search_ancestor(self._previous_leaf, 'error_node') is not None:
if self._previous_leaf is not None:
if search_ancestor(self._previous_leaf, 'error_node') is not None:
return
if self._previous_leaf.type == 'error_leaf':
return
if search_ancestor(node, 'error_node') is not None:
return
super(PEP8Normalizer, self).add_issue(code, message, node)

View File

@@ -15,7 +15,6 @@ if False:
pass
print
print
#: E111:4
print
mimetype = 'application/x-directory'
#: E111:5

View File

@@ -259,7 +259,7 @@ def test_wrong_whitespace(differ):
hello
'''
differ.initialize(code)
differ.parse(code + 'bar\n ', parsers=1, copies=1)
differ.parse(code + 'bar\n ', parsers=1)
code += """abc(\npass\n """
differ.parse(code, parsers=1, copies=1, expect_error_leaves=True)
@@ -363,7 +363,7 @@ def test_totally_wrong_whitespace(differ):
'''
differ.initialize(code1)
differ.parse(code2, parsers=3, copies=1, expect_error_leaves=True)
differ.parse(code2, parsers=3, copies=0, expect_error_leaves=True)
def test_node_insertion(differ):