From 8b820fca917d0af23778dacc9ebc5fa66edd6650 Mon Sep 17 00:00:00 2001 From: kbkpbot Date: Tue, 7 Oct 2025 16:36:33 +0800 Subject: [PATCH] scanner: fix raw string endingwiths backslash (fix #25455) (#25456) --- vlib/v/scanner/scanner.v | 2 +- vlib/v/tests/raw_string_ending_withs_backslash_test.v | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 vlib/v/tests/raw_string_ending_withs_backslash_test.v diff --git a/vlib/v/scanner/scanner.v b/vlib/v/scanner/scanner.v index d459225ff..5dbe196b2 100644 --- a/vlib/v/scanner/scanner.v +++ b/vlib/v/scanner/scanner.v @@ -1347,7 +1347,7 @@ pub fn (mut s Scanner) ident_string() string { if n_cr_chars > 0 { string_so_far = string_so_far.replace('\r', '') } - if string_so_far.contains('\\\n') { + if !is_raw && string_so_far.contains('\\\n') { lit = trim_slash_line_break(string_so_far) } else { lit = string_so_far diff --git a/vlib/v/tests/raw_string_ending_withs_backslash_test.v b/vlib/v/tests/raw_string_ending_withs_backslash_test.v new file mode 100644 index 000000000..1f98a3faa --- /dev/null +++ b/vlib/v/tests/raw_string_ending_withs_backslash_test.v @@ -0,0 +1,11 @@ +fn test_raw_string_ending_withs_backslack() { + str := r'line1 \ + line2 \ + line3\' + + lines := str.split_into_lines() + assert lines.len == 3 + assert lines[0] == 'line1 \\' + assert lines[1] == '\tline2 \\' + assert lines[2] == ' line3\\' +} -- 2.39.5