mirror of
https://github.com/davidhalter/parso.git
synced 2025-12-08 05:34:51 +08:00
Fix newline endings and a few parser/copy counts
This commit is contained in:
@@ -271,10 +271,9 @@ class DiffParser(object):
|
||||
self._parse(self._nodes_tree.parsed_until_line + 1)
|
||||
elif not copied_nodes:
|
||||
# We have copied as much as possible (but definitely not too
|
||||
# much). Therefore we just parse the rest.
|
||||
# We might not reach the end, because there's a statement
|
||||
# that is not finished.
|
||||
self._parse(until_line_new)
|
||||
# much). Therefore we just parse a bit more.
|
||||
self._parse(self._nodes_tree.parsed_until_line + 1)
|
||||
copied_nodes = [None]
|
||||
else:
|
||||
p_children = line_stmt.parent.children
|
||||
index = p_children.index(line_stmt)
|
||||
@@ -393,10 +392,6 @@ class DiffParser(object):
|
||||
typ, string, start_pos, prefix = next(tokens)
|
||||
if '\n' in prefix or '\r' in prefix:
|
||||
prefix = re.sub(r'[^\n\r]+\Z', '', prefix)
|
||||
else:
|
||||
# This is basically the next line and it still needs to
|
||||
# be parserd.
|
||||
prefix = ''
|
||||
yield PythonToken(
|
||||
PythonTokenTypes.ENDMARKER, '',
|
||||
(start_pos[0] + line_offset, 0),
|
||||
|
||||
@@ -67,8 +67,8 @@ class Differ(object):
|
||||
|
||||
error_node = _check_error_leaves_nodes(new_module)
|
||||
assert expect_error_leaves == (error_node is not None), error_node
|
||||
#assert diff_parser._parser_count == parsers
|
||||
#assert diff_parser._copy_count == copies
|
||||
assert diff_parser._parser_count == parsers
|
||||
assert diff_parser._copy_count == copies
|
||||
return new_module
|
||||
|
||||
|
||||
@@ -726,7 +726,7 @@ def test_paren_in_strange_position(differ):
|
||||
|
||||
differ.initialize(code1)
|
||||
differ.parse(code2, parsers=1, copies=2, expect_error_leaves=True)
|
||||
differ.parse(code1, parsers=1, copies=1)
|
||||
differ.parse(code1, parsers=0, copies=2)
|
||||
|
||||
|
||||
def insert_line_into_code(code, index, line):
|
||||
@@ -818,9 +818,9 @@ def test_indentation_issues(differ):
|
||||
''')
|
||||
|
||||
differ.initialize(code1)
|
||||
differ.parse(code2, parsers=1, copies=2, expect_error_leaves=True)
|
||||
differ.parse(code1, parsers=2, copies=1)
|
||||
differ.parse(code3, parsers=1, copies=1)
|
||||
differ.parse(code2, parsers=2, copies=2, expect_error_leaves=True)
|
||||
differ.parse(code1, copies=2)
|
||||
differ.parse(code3, parsers=2, copies=1)
|
||||
differ.parse(code1, parsers=1, copies=2)
|
||||
|
||||
|
||||
@@ -854,7 +854,7 @@ def test_error_dedent_issues(differ):
|
||||
''')
|
||||
|
||||
differ.initialize(code1)
|
||||
differ.parse(code2, parsers=5, copies=1, expect_error_leaves=True)
|
||||
differ.parse(code2, parsers=6, copies=2, expect_error_leaves=True)
|
||||
differ.parse(code1, parsers=1, copies=0)
|
||||
|
||||
|
||||
@@ -998,5 +998,17 @@ def test_dedent_end_positions(differ):
|
||||
5}
|
||||
''')
|
||||
differ.initialize(code1)
|
||||
differ.parse(code2, copies=6, parsers=14, expect_error_leaves=True)
|
||||
differ.parse(code1, copies=6, parsers=11)
|
||||
differ.parse(code2, parsers=1, expect_error_leaves=True)
|
||||
differ.parse(code1, parsers=1)
|
||||
|
||||
|
||||
def test_special_no_newline_ending(differ):
|
||||
code1 = dedent('''\
|
||||
1
|
||||
''')
|
||||
code2 = dedent('''\
|
||||
1
|
||||
is ''')
|
||||
differ.initialize(code1)
|
||||
differ.parse(code2, copies=1, parsers=1, expect_error_leaves=True)
|
||||
differ.parse(code1, copies=1, parsers=0)
|
||||
|
||||
Reference in New Issue
Block a user