diff --git a/parso/python/parser.py b/parso/python/parser.py index e0b7e1c..717fc48 100644 --- a/parso/python/parser.py +++ b/parso/python/parser.py @@ -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 = [] diff --git a/parso/python/pep8.py b/parso/python/pep8.py index 0d71cad..3f68697 100644 --- a/parso/python/pep8.py +++ b/parso/python/pep8.py @@ -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) diff --git a/test/normalizer_issue_files/E11.py b/test/normalizer_issue_files/E11.py index 816a9be..4bff693 100644 --- a/test/normalizer_issue_files/E11.py +++ b/test/normalizer_issue_files/E11.py @@ -15,7 +15,6 @@ if False: pass print print -#: E111:4 print mimetype = 'application/x-directory' #: E111:5 diff --git a/test/test_diff_parser.py b/test/test_diff_parser.py index 1757196..09c96af 100644 --- a/test/test_diff_parser.py +++ b/test/test_diff_parser.py @@ -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):