diff --git a/parso/python/tokenize.py b/parso/python/tokenize.py index 3e1afe6..3ac5a42 100644 --- a/parso/python/tokenize.py +++ b/parso/python/tokenize.py @@ -517,7 +517,7 @@ def tokenize_lines(lines, version_info, start_pos=(1, 0)): start = match.end() spos = (lnum, start) - if new_line and initial not in '\r\n\\#': + if new_line and initial not in '\r\n#' and (initial != '\\' or pseudomatch is None): new_line = False if paren_level == 0 and not fstring_stack: i = 0 diff --git a/test/test_diff_parser.py b/test/test_diff_parser.py index 442956d..96f6969 100644 --- a/test/test_diff_parser.py +++ b/test/test_diff_parser.py @@ -1332,3 +1332,19 @@ def test_wrong_indent_in_def(differ): differ.initialize(code1) differ.parse(code2, parsers=1, expect_error_leaves=True) differ.parse(code1, parsers=1) + + +def test_backslash_issue(differ): + code1 = dedent(''' + pre = ( + '') + after = 'instead' + ''') + code2 = dedent(''' + pre = ( + '') + \\if + ''') + differ.initialize(code1) + differ.parse(code2, parsers=1, copies=1, expect_error_leaves=True) + differ.parse(code1, parsers=1, copies=1)