mirror of
https://github.com/davidhalter/parso.git
synced 2025-12-07 05:14:29 +08:00
Fix diff parser: The previous fix was a bit off
This commit is contained in:
@@ -676,9 +676,7 @@ class _NodesTree(object):
|
||||
# line, otherwise it's going to be missing. This happens e.g.
|
||||
# if a bracket is around before that moves newlines to
|
||||
# prefixes.
|
||||
newline_index = max(p.rfind('\n'), p.rfind('\r'))
|
||||
if newline_index > -1:
|
||||
new_prefix = p[:newline_index + 1]
|
||||
new_prefix = split_lines(p, keepends=True)[0]
|
||||
|
||||
if had_valid_suite_last:
|
||||
last = new_nodes[-1]
|
||||
|
||||
@@ -1214,3 +1214,30 @@ def test_open_bracket(differ):
|
||||
differ.parse(code2, copies=1, parsers=1, expect_error_leaves=True)
|
||||
differ.parse(code3, copies=1, parsers=1, expect_error_leaves=True)
|
||||
differ.parse(code1, copies=1, parsers=1)
|
||||
|
||||
|
||||
def test_aaaaaaaaaa(differ):
|
||||
code1 = dedent('''\
|
||||
class C:
|
||||
def f(self):
|
||||
(
|
||||
b
|
||||
c
|
||||
|
||||
def g(self):
|
||||
d
|
||||
''')
|
||||
code2 = dedent('''\
|
||||
class C:
|
||||
def f(self):
|
||||
(
|
||||
b
|
||||
c
|
||||
self.
|
||||
|
||||
def g(self):
|
||||
d
|
||||
''')
|
||||
differ.initialize(code1)
|
||||
differ.parse(code2, copies=1, parsers=2, expect_error_leaves=True)
|
||||
differ.parse(code1, copies=2, parsers=0, expect_error_leaves=True)
|
||||
|
||||
Reference in New Issue
Block a user