mirror of
https://github.com/davidhalter/parso.git
synced 2025-12-07 05:14:29 +08:00
Fix an issue where indents where repeated unnessecarily
This commit is contained in:
@@ -503,6 +503,11 @@ class _NodesTreeNode(object):
|
||||
return max(line, self._node_children[-1].get_last_line(suffix))
|
||||
return line
|
||||
|
||||
def get_latest_indentation(self):
|
||||
if not self._children_groups:
|
||||
return 0
|
||||
return self._children_groups[-1].children[0].start_pos[1]
|
||||
|
||||
|
||||
class _NodesTree(object):
|
||||
def __init__(self, module):
|
||||
@@ -543,11 +548,12 @@ class _NodesTree(object):
|
||||
break
|
||||
elif tree_node.type == 'file_input':
|
||||
if indentation > 0:
|
||||
if previous_node is not None:
|
||||
if previous_node is None:
|
||||
if indentation != node.get_latest_indentation():
|
||||
add_error_leaf = 'INDENT'
|
||||
else:
|
||||
node = previous_node
|
||||
add_error_leaf = 'ERROR_DEDENT'
|
||||
else:
|
||||
add_error_leaf = 'INDENT'
|
||||
break
|
||||
previous_node = node
|
||||
|
||||
|
||||
@@ -284,10 +284,10 @@ def test_wrong_whitespace(differ):
|
||||
hello
|
||||
'''
|
||||
differ.initialize(code)
|
||||
differ.parse(code + 'bar\n ', parsers=3)
|
||||
differ.parse(code + 'bar\n ', parsers=3, expect_error_leaves=True)
|
||||
|
||||
code += """abc(\npass\n """
|
||||
differ.parse(code, parsers=2, copies=1, expect_error_leaves=True)
|
||||
differ.parse(code, parsers=3, expect_error_leaves=True)
|
||||
|
||||
|
||||
def test_issues_with_error_leaves(differ):
|
||||
|
||||
Reference in New Issue
Block a user