mirror of
https://github.com/davidhalter/parso.git
synced 2025-12-09 22:25:53 +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 max(line, self._node_children[-1].get_last_line(suffix))
|
||||||
return line
|
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):
|
class _NodesTree(object):
|
||||||
def __init__(self, module):
|
def __init__(self, module):
|
||||||
@@ -543,11 +548,12 @@ class _NodesTree(object):
|
|||||||
break
|
break
|
||||||
elif tree_node.type == 'file_input':
|
elif tree_node.type == 'file_input':
|
||||||
if indentation > 0:
|
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
|
node = previous_node
|
||||||
add_error_leaf = 'ERROR_DEDENT'
|
add_error_leaf = 'ERROR_DEDENT'
|
||||||
else:
|
|
||||||
add_error_leaf = 'INDENT'
|
|
||||||
break
|
break
|
||||||
previous_node = node
|
previous_node = node
|
||||||
|
|
||||||
|
|||||||
@@ -284,10 +284,10 @@ def test_wrong_whitespace(differ):
|
|||||||
hello
|
hello
|
||||||
'''
|
'''
|
||||||
differ.initialize(code)
|
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 """
|
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):
|
def test_issues_with_error_leaves(differ):
|
||||||
|
|||||||
Reference in New Issue
Block a user