From d674bc98955729f4f147e716da824c4023235f1c Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Sun, 29 Mar 2020 23:59:53 +0200 Subject: [PATCH] Fix a backslash issue --- parso/python/tokenize.py | 2 +- test/test_diff_parser.py | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) 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)