From 9a7621f2916a104d73bcff787ad8d53addde9f3f Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Tue, 26 May 2026 11:31:23 -0400 Subject: [PATCH] Fix parser translation when escaped newline with trailing content --- lib/prism/translation/parser/compiler.rb | 2 +- test/prism/fixtures/escaped_newline_with_trailing_content.txt | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 test/prism/fixtures/escaped_newline_with_trailing_content.txt diff --git a/lib/prism/translation/parser/compiler.rb b/lib/prism/translation/parser/compiler.rb index aaccee64c1..d11db12ae6 100644 --- a/lib/prism/translation/parser/compiler.rb +++ b/lib/prism/translation/parser/compiler.rb @@ -2178,7 +2178,7 @@ def string_nodes_from_line_continuations(unescaped, escaped, start_offset, openi else lines.sum do |line| count = line.scan(/(\\*)n/).count { |(backslashes)| backslashes&.length&.odd? } - count -= 1 if !line.end_with?("\n") && count > 0 + count -= 1 if line.match?(/(?:\A|[^\\])(?:\\\\)*\\n\z/) && count > 0 count end end diff --git a/test/prism/fixtures/escaped_newline_with_trailing_content.txt b/test/prism/fixtures/escaped_newline_with_trailing_content.txt new file mode 100644 index 0000000000..fe947a3f10 --- /dev/null +++ b/test/prism/fixtures/escaped_newline_with_trailing_content.txt @@ -0,0 +1,2 @@ +"A +B\nCC"