diff options
author | Jemma Issroff <jemmaissroff@gmail.com> | 2023-09-12 09:39:18 -0400 |
---|---|---|
committer | git <svn-admin@ruby-lang.org> | 2023-09-12 13:39:24 +0000 |
commit | 39336c1ab897cee3b9069d8650a1e2ace23d128f (patch) | |
tree | dab1290a7db150e1eabb030ae96ad3fd433f0812 /test | |
parent | b55785579cf114acbb0d9809b9e429d31b7aa8f3 (diff) |
[ruby/yarp] Heredocs can create Interpolated(X)StringNodes or
(X)StringNodes
(https://github.com/ruby/yarp/pull/1427)
Prior to this commit, heredocs were automatically InterpolatedNodes
regardless of whether there was actually interpolation. With this
commit, heredocs are only interpolate if there is actually
interpolation
https://github.com/ruby/yarp/commit/e9f436128b
Diffstat (limited to 'test')
57 files changed, 480 insertions, 870 deletions
diff --git a/test/yarp/heredoc_dedent_test.rb b/test/yarp/heredoc_dedent_test.rb index 975232889f..9d26febc01 100644 --- a/test/yarp/heredoc_dedent_test.rb +++ b/test/yarp/heredoc_dedent_test.rb @@ -8,8 +8,12 @@ module YARP File.read(filepath).split(/(?=\n)\n(?=<)/).each_with_index do |heredoc, index| define_method "test_heredoc_#{index}" do - parts = YARP.parse(heredoc).value.statements.body.first.parts - actual = parts.map { |part| part.is_a?(StringNode) ? part.unescaped : "1" }.join + node = YARP.parse(heredoc).value.statements.body.first + if node.is_a? StringNode + actual = node.unescaped + else + actual = node.parts.map { |part| part.is_a?(StringNode) ? part.unescaped : "1" }.join + end assert_equal(eval(heredoc), actual, "Expected heredocs to match.") end diff --git a/test/yarp/location_test.rb b/test/yarp/location_test.rb index 46cae55cac..253d616099 100644 --- a/test/yarp/location_test.rb +++ b/test/yarp/location_test.rb @@ -460,7 +460,7 @@ module YARP def test_InterpolatedStringNode assert_location(InterpolatedStringNode, "\"foo \#@bar baz\"") - assert_location(InterpolatedStringNode, "<<~A\nhello world\nA", 0...4) + assert_location(InterpolatedStringNode, "<<~A\nhello \#{1} world\nA", 0...4) end def test_InterpolatedSymbolNode diff --git a/test/yarp/parse_test.rb b/test/yarp/parse_test.rb index 5299cfd7b1..1325bc0389 100644 --- a/test/yarp/parse_test.rb +++ b/test/yarp/parse_test.rb @@ -186,7 +186,11 @@ module YARP # We only want to compare parent/child location overlap in the case that # we are not looking at a heredoc. That's because heredoc locations are # special in that they only use the declaration of the heredoc. - compare = !(current.is_a?(InterpolatedStringNode) || current.is_a?(InterpolatedXStringNode)) || !current.opening&.start_with?("<<") + compare = !(current.is_a?(StringNode) || + current.is_a?(XStringNode) || + current.is_a?(InterpolatedStringNode) || + current.is_a?(InterpolatedXStringNode)) || + !current.opening&.start_with?("<<") current.child_nodes.each do |child| # child_nodes can return nil values, so we need to skip those. diff --git a/test/yarp/snapshots/dash_heredocs.txt b/test/yarp/snapshots/dash_heredocs.txt index 28537bf23a..1e53e00085 100644 --- a/test/yarp/snapshots/dash_heredocs.txt +++ b/test/yarp/snapshots/dash_heredocs.txt @@ -3,41 +3,29 @@ └── statements: @ StatementsNode (location: (0...278)) └── body: (length: 13) - ├── @ InterpolatedStringNode (location: (0...6)) + ├── @ StringNode (location: (0...6)) │ ├── opening_loc: (0...6) = "<<-EOF" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (7...11)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (7...11) = " a\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: " a\n" - │ └── closing_loc: (11...15) = "EOF\n" + │ ├── content_loc: (7...11) = " a\n" + │ ├── closing_loc: (11...15) = "EOF\n" + │ └── unescaped: " a\n" ├── @ CallNode (location: (16...36)) │ ├── receiver: - │ │ @ InterpolatedStringNode (location: (16...24)) + │ │ @ StringNode (location: (16...24)) │ │ ├── opening_loc: (16...24) = "<<-FIRST" - │ │ ├── parts: (length: 1) - │ │ │ └── @ StringNode (location: (37...41)) - │ │ │ ├── opening_loc: ∅ - │ │ │ ├── content_loc: (37...41) = " a\n" - │ │ │ ├── closing_loc: ∅ - │ │ │ └── unescaped: " a\n" - │ │ └── closing_loc: (41...47) = "FIRST\n" + │ │ ├── content_loc: (37...41) = " a\n" + │ │ ├── closing_loc: (41...47) = "FIRST\n" + │ │ └── unescaped: " a\n" │ ├── call_operator_loc: ∅ │ ├── message_loc: (25...26) = "+" │ ├── opening_loc: ∅ │ ├── arguments: │ │ @ ArgumentsNode (location: (27...36)) │ │ └── arguments: (length: 1) - │ │ └── @ InterpolatedStringNode (location: (27...36)) + │ │ └── @ StringNode (location: (27...36)) │ │ ├── opening_loc: (27...36) = "<<-SECOND" - │ │ ├── parts: (length: 1) - │ │ │ └── @ StringNode (location: (47...51)) - │ │ │ ├── opening_loc: ∅ - │ │ │ ├── content_loc: (47...51) = " b\n" - │ │ │ ├── closing_loc: ∅ - │ │ │ └── unescaped: " b\n" - │ │ └── closing_loc: (51...58) = "SECOND\n" + │ │ ├── content_loc: (47...51) = " b\n" + │ │ ├── closing_loc: (51...58) = "SECOND\n" + │ │ └── unescaped: " b\n" │ ├── closing_loc: ∅ │ ├── block: ∅ │ ├── flags: @@ -72,24 +60,16 @@ │ │ ├── closing_loc: ∅ │ │ └── unescaped: "\n" │ └── closing_loc: (77...81) = "EOF\n" - ├── @ InterpolatedStringNode (location: (82...88)) + ├── @ StringNode (location: (82...88)) │ ├── opening_loc: (82...88) = "<<-EOF" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (98...102)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (98...102) = " a\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: " a\n" - │ └── closing_loc: (102...106) = "EOF\n" - ├── @ InterpolatedStringNode (location: (107...113)) + │ ├── content_loc: (98...102) = " a\n" + │ ├── closing_loc: (102...106) = "EOF\n" + │ └── unescaped: " a\n" + ├── @ StringNode (location: (107...113)) │ ├── opening_loc: (107...113) = "<<-EOF" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (114...122)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (114...122) = " a\n b\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: " a\n b\n" - │ └── closing_loc: (122...128) = " EOF\n" + │ ├── content_loc: (114...122) = " a\n b\n" + │ ├── closing_loc: (122...128) = " EOF\n" + │ └── unescaped: " a\n b\n" ├── @ InterpolatedStringNode (location: (129...137)) │ ├── opening_loc: (129...137) = "<<-\"EOF\"" │ ├── parts: (length: 3) @@ -155,39 +135,28 @@ │ ├── content_loc: (175...178) = "abc" │ ├── closing_loc: (178...179) = "#" │ └── unescaped: "abc" - ├── @ InterpolatedStringNode (location: (181...187)) + ├── @ StringNode (location: (181...187)) │ ├── opening_loc: (181...187) = "<<-EOF" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (188...196)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (188...196) = " a\n b\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: " a\n b\n" - │ └── closing_loc: (196...200) = "EOF\n" - ├── @ InterpolatedStringNode (location: (201...206)) + │ ├── content_loc: (188...196) = " a\n b\n" + │ ├── closing_loc: (196...200) = "EOF\n" + │ └── unescaped: " a\n b\n" + ├── @ StringNode (location: (201...206)) │ ├── opening_loc: (201...206) = "<<-''" - │ ├── parts: (length: 0) - │ └── closing_loc: (207...208) = "\n" - ├── @ InterpolatedStringNode (location: (209...217)) + │ ├── content_loc: (206...207) = "\n" + │ ├── closing_loc: (207...208) = "\n" + │ └── unescaped: "" + ├── @ StringNode (location: (209...217)) │ ├── opening_loc: (209...217) = "<<-'EOF'" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (218...227)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (218...227) = " a \#{1}\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: " a \#{1}\n" - │ └── closing_loc: (227...231) = "EOF\n" + │ ├── content_loc: (218...227) = " a \#{1}\n" + │ ├── closing_loc: (227...231) = "EOF\n" + │ └── unescaped: " a \#{1}\n" ├── @ CallNode (location: (232...243)) │ ├── receiver: - │ │ @ InterpolatedStringNode (location: (232...236)) + │ │ @ StringNode (location: (232...236)) │ │ ├── opening_loc: (232...236) = "<<-A" - │ │ ├── parts: (length: 1) - │ │ │ └── @ StringNode (location: (244...248)) - │ │ │ ├── opening_loc: ∅ - │ │ │ ├── content_loc: (244...248) = " a\n" - │ │ │ ├── closing_loc: ∅ - │ │ │ └── unescaped: " a\n" - │ │ └── closing_loc: (248...250) = "A\n" + │ │ ├── content_loc: (244...248) = " a\n" + │ │ ├── closing_loc: (248...250) = "A\n" + │ │ └── unescaped: " a\n" │ ├── call_operator_loc: ∅ │ ├── message_loc: (237...238) = "+" │ ├── opening_loc: ∅ @@ -222,15 +191,11 @@ │ └── name: "+" └── @ CallNode (location: (267...278)) ├── receiver: - │ @ InterpolatedStringNode (location: (267...271)) + │ @ StringNode (location: (267...271)) │ ├── opening_loc: (267...271) = "<<-A" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (279...283)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (279...283) = " a\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: " a\n" - │ └── closing_loc: (283...285) = "A\n" + │ ├── content_loc: (279...283) = " a\n" + │ ├── closing_loc: (283...285) = "A\n" + │ └── unescaped: " a\n" ├── call_operator_loc: ∅ ├── message_loc: (272...273) = "+" ├── opening_loc: ∅ diff --git a/test/yarp/snapshots/dos_endings.txt b/test/yarp/snapshots/dos_endings.txt index 5186b4ebfb..7afc5d3ebb 100644 --- a/test/yarp/snapshots/dos_endings.txt +++ b/test/yarp/snapshots/dos_endings.txt @@ -37,15 +37,11 @@ │ │ └── unescaped: "ab" │ ├── opening_loc: (28...31) = "%I{" │ └── closing_loc: (36...37) = "}" - ├── @ InterpolatedStringNode (location: (41...45)) + ├── @ StringNode (location: (41...45)) │ ├── opening_loc: (41...45) = "<<-E" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (47...70)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (47...70) = " 1 \\\r\n 2\r\n 3\r\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: " 1 2\r\n 3\r\n" - │ └── closing_loc: (70...73) = "E\r\n" + │ ├── content_loc: (47...70) = " 1 \\\r\n 2\r\n 3\r\n" + │ ├── closing_loc: (70...73) = "E\r\n" + │ └── unescaped: " 1 2\r\n 3\r\n" ├── @ LocalVariableWriteNode (location: (75...84)) │ ├── name: :x │ ├── depth: 0 @@ -72,15 +68,11 @@ │ │ └── arguments: (length: 1) │ │ └── @ CallNode (location: (96...107)) │ │ ├── receiver: - │ │ │ @ InterpolatedStringNode (location: (96...102)) + │ │ │ @ StringNode (location: (96...102)) │ │ │ ├── opening_loc: (96...102) = "<<~EOF" - │ │ │ ├── parts: (length: 1) - │ │ │ │ └── @ StringNode (location: (110...121)) - │ │ │ │ ├── opening_loc: ∅ - │ │ │ │ ├── content_loc: (110...121) = "\r\n baz\r\n" - │ │ │ │ ├── closing_loc: ∅ - │ │ │ │ └── unescaped: "\nbaz\r\n" - │ │ │ └── closing_loc: (121...128) = " EOF\r\n" + │ │ │ ├── content_loc: (110...121) = "\r\n baz\r\n" + │ │ │ ├── closing_loc: (121...128) = " EOF\r\n" + │ │ │ └── unescaped: "\nbaz\r\n" │ │ ├── call_operator_loc: (102...103) = "." │ │ ├── message_loc: (103...107) = "chop" │ │ ├── opening_loc: ∅ diff --git a/test/yarp/snapshots/heredoc_with_escaped_newline_at_start.txt b/test/yarp/snapshots/heredoc_with_escaped_newline_at_start.txt index ed2abc7f39..5f7cbedae7 100644 --- a/test/yarp/snapshots/heredoc_with_escaped_newline_at_start.txt +++ b/test/yarp/snapshots/heredoc_with_escaped_newline_at_start.txt @@ -5,10 +5,11 @@ └── body: (length: 2) ├── @ CallNode (location: (0...25)) │ ├── receiver: - │ │ @ InterpolatedStringNode (location: (0...9)) + │ │ @ StringNode (location: (0...9)) │ │ ├── opening_loc: (0...9) = "<<-TARGET" - │ │ ├── parts: (length: 0) - │ │ └── closing_loc: (27...34) = "TARGET\n" + │ │ ├── content_loc: (9...27) = ".gsub /^\\s{/, ''\\\n" + │ │ ├── closing_loc: (27...34) = "TARGET\n" + │ │ └── unescaped: "" │ ├── call_operator_loc: (9...10) = "." │ ├── message_loc: (10...14) = "gsub" │ ├── opening_loc: ∅ @@ -32,10 +33,11 @@ │ └── name: "gsub" └── @ CallNode (location: (37...62)) ├── receiver: - │ @ InterpolatedStringNode (location: (37...46)) + │ @ StringNode (location: (37...46)) │ ├── opening_loc: (37...46) = "<<-TARGET" - │ ├── parts: (length: 0) - │ └── closing_loc: (65...73) = "TARGET\r\n" + │ ├── content_loc: (46...65) = ".gsub /^\\s{/, ''\\\r\n" + │ ├── closing_loc: (65...73) = "TARGET\r\n" + │ └── unescaped: "" ├── call_operator_loc: (46...47) = "." ├── message_loc: (47...51) = "gsub" ├── opening_loc: ∅ diff --git a/test/yarp/snapshots/heredoc_with_trailing_newline.txt b/test/yarp/snapshots/heredoc_with_trailing_newline.txt index cf80947b0c..077e9703af 100644 --- a/test/yarp/snapshots/heredoc_with_trailing_newline.txt +++ b/test/yarp/snapshots/heredoc_with_trailing_newline.txt @@ -3,7 +3,8 @@ └── statements: @ StatementsNode (location: (0...6)) └── body: (length: 1) - └── @ InterpolatedStringNode (location: (0...6)) + └── @ StringNode (location: (0...6)) ├── opening_loc: (0...6) = "<<-END" - ├── parts: (length: 0) - └── closing_loc: (7...10) = "END" + ├── content_loc: (6...7) = "\n" + ├── closing_loc: (7...10) = "END" + └── unescaped: "" diff --git a/test/yarp/snapshots/heredocs_nested.txt b/test/yarp/snapshots/heredocs_nested.txt index a35b0bf4d5..335110797e 100644 --- a/test/yarp/snapshots/heredocs_nested.txt +++ b/test/yarp/snapshots/heredocs_nested.txt @@ -16,15 +16,11 @@ │ │ ├── statements: │ │ │ @ StatementsNode (location: (15...21)) │ │ │ └── body: (length: 1) - │ │ │ └── @ InterpolatedStringNode (location: (15...21)) + │ │ │ └── @ StringNode (location: (15...21)) │ │ │ ├── opening_loc: (15...21) = "<<RUBY" - │ │ │ ├── parts: (length: 1) - │ │ │ │ └── @ StringNode (location: (22...30)) - │ │ │ │ ├── opening_loc: ∅ - │ │ │ │ ├── content_loc: (22...30) = " hello\n" - │ │ │ │ ├── closing_loc: ∅ - │ │ │ │ └── unescaped: " hello\n" - │ │ │ └── closing_loc: (30...35) = "RUBY\n" + │ │ │ ├── content_loc: (22...30) = " hello\n" + │ │ │ ├── closing_loc: (30...35) = "RUBY\n" + │ │ │ └── unescaped: " hello\n" │ │ └── closing_loc: (35...36) = "}" │ └── @ StringNode (location: (36...42)) │ ├── opening_loc: ∅ diff --git a/test/yarp/snapshots/heredocs_with_ignored_newlines.txt b/test/yarp/snapshots/heredocs_with_ignored_newlines.txt index e8e6616219..c0e84a874b 100644 --- a/test/yarp/snapshots/heredocs_with_ignored_newlines.txt +++ b/test/yarp/snapshots/heredocs_with_ignored_newlines.txt @@ -3,16 +3,13 @@ └── statements: @ StatementsNode (location: (0...23)) └── body: (length: 2) - ├── @ InterpolatedStringNode (location: (0...7)) + ├── @ StringNode (location: (0...7)) │ ├── opening_loc: (0...7) = "<<-HERE" - │ ├── parts: (length: 0) - │ └── closing_loc: (9...14) = "HERE\n" - └── @ InterpolatedStringNode (location: (15...23)) + │ ├── content_loc: (7...9) = "\\\n" + │ ├── closing_loc: (9...14) = "HERE\n" + │ └── unescaped: "" + └── @ StringNode (location: (15...23)) ├── opening_loc: (15...23) = "<<~THERE" - ├── parts: (length: 1) - │ └── @ StringNode (location: (25...100)) - │ ├── opening_loc: ∅ - │ ├── content_loc: (25...100) = " way over\n <<HERE\n not here\n HERE\n\n <<~BUT\\\n but\n BUT\n there\n" - │ ├── closing_loc: ∅ - │ └── unescaped: "way over\n<<HERE\n not here\nHERE\n\n<<~BUT but\nBUT\n there\n" - └── closing_loc: (100...106) = "THERE\n" + ├── content_loc: (25...100) = " way over\n <<HERE\n not here\n HERE\n\n <<~BUT\\\n but\n BUT\n there\n" + ├── closing_loc: (100...106) = "THERE\n" + └── unescaped: "way over\n<<HERE\n not here\nHERE\n\n<<~BUT but\nBUT\n there\n" diff --git a/test/yarp/snapshots/heredocs_with_ignored_newlines_and_non_empty.txt b/test/yarp/snapshots/heredocs_with_ignored_newlines_and_non_empty.txt index d5c0bf56b6..dd8e620bf5 100644 --- a/test/yarp/snapshots/heredocs_with_ignored_newlines_and_non_empty.txt +++ b/test/yarp/snapshots/heredocs_with_ignored_newlines_and_non_empty.txt @@ -3,12 +3,8 @@ └── statements: @ StatementsNode (location: (0...6)) └── body: (length: 1) - └── @ InterpolatedStringNode (location: (0...6)) + └── @ StringNode (location: (0...6)) ├── opening_loc: (0...6) = "<<-EOE" - ├── parts: (length: 1) - │ └── @ StringNode (location: (7...23)) - │ ├── opening_loc: ∅ - │ ├── content_loc: (7...23) = " some\n heredocs\n" - │ ├── closing_loc: ∅ - │ └── unescaped: " some\n heredocs\n" - └── closing_loc: (23...26) = "EOE" + ├── content_loc: (7...23) = " some\n heredocs\n" + ├── closing_loc: (23...26) = "EOE" + └── unescaped: " some\n heredocs\n" diff --git a/test/yarp/snapshots/seattlerb/difficult0_.txt b/test/yarp/snapshots/seattlerb/difficult0_.txt index b763d090b9..c6a521d27a 100644 --- a/test/yarp/snapshots/seattlerb/difficult0_.txt +++ b/test/yarp/snapshots/seattlerb/difficult0_.txt @@ -15,15 +15,11 @@ │ ├── receiver: │ │ @ CallNode (location: (2...26)) │ │ ├── receiver: - │ │ │ @ InterpolatedStringNode (location: (2...8)) + │ │ │ @ StringNode (location: (2...8)) │ │ │ ├── opening_loc: (2...8) = "<<-END" - │ │ │ ├── parts: (length: 1) - │ │ │ │ └── @ StringNode (location: (12...16)) - │ │ │ │ ├── opening_loc: ∅ - │ │ │ │ ├── content_loc: (12...16) = " a\n" - │ │ │ │ ├── closing_loc: ∅ - │ │ │ │ └── unescaped: " a\n" - │ │ │ └── closing_loc: (16...22) = " END\n" + │ │ │ ├── content_loc: (12...16) = " a\n" + │ │ │ ├── closing_loc: (16...22) = " END\n" + │ │ │ └── unescaped: " a\n" │ │ ├── call_operator_loc: ∅ │ │ ├── message_loc: (8...9) = "+" │ │ ├── opening_loc: ∅ diff --git a/test/yarp/snapshots/seattlerb/heredoc__backslash_dos_format.txt b/test/yarp/snapshots/seattlerb/heredoc__backslash_dos_format.txt index 656cfdcdc6..7f58f36dc7 100644 --- a/test/yarp/snapshots/seattlerb/heredoc__backslash_dos_format.txt +++ b/test/yarp/snapshots/seattlerb/heredoc__backslash_dos_format.txt @@ -8,13 +8,9 @@ ├── depth: 0 ├── name_loc: (0...3) = "str" ├── value: - │ @ InterpolatedStringNode (location: (6...12)) + │ @ StringNode (location: (6...12)) │ ├── opening_loc: (6...12) = "<<-XXX" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (14...30)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (14...30) = "before\\\r\nafter\r\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "beforeafter\r\n" - │ └── closing_loc: (30...35) = "XXX\r\n" + │ ├── content_loc: (14...30) = "before\\\r\nafter\r\n" + │ ├── closing_loc: (30...35) = "XXX\r\n" + │ └── unescaped: "beforeafter\r\n" └── operator_loc: (4...5) = "=" diff --git a/test/yarp/snapshots/seattlerb/heredoc_backslash_nl.txt b/test/yarp/snapshots/seattlerb/heredoc_backslash_nl.txt index 4bb11c4811..3980b4f12f 100644 --- a/test/yarp/snapshots/seattlerb/heredoc_backslash_nl.txt +++ b/test/yarp/snapshots/seattlerb/heredoc_backslash_nl.txt @@ -8,12 +8,8 @@ │ ├── content_loc: (1...39) = " why would someone do this? \\\n blah\n" │ ├── closing_loc: (39...40) = "\"" │ └── unescaped: " why would someone do this? blah\n" - └── @ InterpolatedStringNode (location: (42...49)) + └── @ StringNode (location: (42...49)) ├── opening_loc: (42...49) = "<<-DESC" - ├── parts: (length: 1) - │ └── @ StringNode (location: (50...88)) - │ ├── opening_loc: ∅ - │ ├── content_loc: (50...88) = " why would someone do this? \\\n blah\n" - │ ├── closing_loc: ∅ - │ └── unescaped: " why would someone do this? blah\n" - └── closing_loc: (88...93) = "DESC\n" + ├── content_loc: (50...88) = " why would someone do this? \\\n blah\n" + ├── closing_loc: (88...93) = "DESC\n" + └── unescaped: " why would someone do this? blah\n" diff --git a/test/yarp/snapshots/seattlerb/heredoc_bad_hex_escape.txt b/test/yarp/snapshots/seattlerb/heredoc_bad_hex_escape.txt index c0af63a657..7b0933bbb9 100644 --- a/test/yarp/snapshots/seattlerb/heredoc_bad_hex_escape.txt +++ b/test/yarp/snapshots/seattlerb/heredoc_bad_hex_escape.txt @@ -8,13 +8,9 @@ ├── depth: 0 ├── name_loc: (0...1) = "s" ├── value: - │ @ InterpolatedStringNode (location: (4...9)) + │ @ StringNode (location: (4...9)) │ ├── opening_loc: (4...9) = "<<eos" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (10...17)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (10...17) = "a\\xE9b\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "a\xE9b\n" - │ └── closing_loc: (17...21) = "eos\n" + │ ├── content_loc: (10...17) = "a\\xE9b\n" + │ ├── closing_loc: (17...21) = "eos\n" + │ └── unescaped: "a\xE9b\n" └── operator_loc: (2...3) = "=" diff --git a/test/yarp/snapshots/seattlerb/heredoc_bad_oct_escape.txt b/test/yarp/snapshots/seattlerb/heredoc_bad_oct_escape.txt index aba1212f38..5973e23d12 100644 --- a/test/yarp/snapshots/seattlerb/heredoc_bad_oct_escape.txt +++ b/test/yarp/snapshots/seattlerb/heredoc_bad_oct_escape.txt @@ -8,13 +8,9 @@ ├── depth: 0 ├── name_loc: (0...1) = "s" ├── value: - │ @ InterpolatedStringNode (location: (4...10)) + │ @ StringNode (location: (4...10)) │ ├── opening_loc: (4...10) = "<<-EOS" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (11...23)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (11...23) = "a\\247b\ncöd\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "a\xA7b\ncöd\n" - │ └── closing_loc: (23...27) = "EOS\n" + │ ├── content_loc: (11...23) = "a\\247b\ncöd\n" + │ ├── closing_loc: (23...27) = "EOS\n" + │ └── unescaped: "a\xA7b\ncöd\n" └── operator_loc: (2...3) = "=" diff --git a/test/yarp/snapshots/seattlerb/heredoc_comma_arg.txt b/test/yarp/snapshots/seattlerb/heredoc_comma_arg.txt index c4e52e17f4..5cb26773fa 100644 --- a/test/yarp/snapshots/seattlerb/heredoc_comma_arg.txt +++ b/test/yarp/snapshots/seattlerb/heredoc_comma_arg.txt @@ -14,14 +14,10 @@ │ └── closing_loc: (16...17) = "]" └── @ ArrayNode (location: (19...47)) ├── elements: (length: 1) - │ └── @ InterpolatedStringNode (location: (20...27)) + │ └── @ StringNode (location: (20...27)) │ ├── opening_loc: (20...27) = "<<-FILE" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (29...41)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (29...41) = " some text\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: " some text\n" - │ └── closing_loc: (41...46) = "FILE\n" + │ ├── content_loc: (29...41) = " some text\n" + │ ├── closing_loc: (41...46) = "FILE\n" + │ └── unescaped: " some text\n" ├── opening_loc: (19...20) = "[" └── closing_loc: (46...47) = "]" diff --git a/test/yarp/snapshots/seattlerb/heredoc_lineno.txt b/test/yarp/snapshots/seattlerb/heredoc_lineno.txt index 8d050ae8fe..f7980d3e51 100644 --- a/test/yarp/snapshots/seattlerb/heredoc_lineno.txt +++ b/test/yarp/snapshots/seattlerb/heredoc_lineno.txt @@ -8,15 +8,11 @@ │ ├── depth: 0 │ ├── name_loc: (0...1) = "c" │ ├── value: - │ │ @ InterpolatedStringNode (location: (4...11)) + │ │ @ StringNode (location: (4...11)) │ │ ├── opening_loc: (4...11) = "<<'CCC'" - │ │ ├── parts: (length: 1) - │ │ │ └── @ StringNode (location: (12...30)) - │ │ │ ├── opening_loc: ∅ - │ │ │ ├── content_loc: (12...30) = "line2\nline3\nline4\n" - │ │ │ ├── closing_loc: ∅ - │ │ │ └── unescaped: "line2\nline3\nline4\n" - │ │ └── closing_loc: (30...34) = "CCC\n" + │ │ ├── content_loc: (12...30) = "line2\nline3\nline4\n" + │ │ ├── closing_loc: (30...34) = "CCC\n" + │ │ └── unescaped: "line2\nline3\nline4\n" │ └── operator_loc: (2...3) = "=" └── @ LocalVariableWriteNode (location: (35...41)) ├── name: :d diff --git a/test/yarp/snapshots/seattlerb/heredoc_nested.txt b/test/yarp/snapshots/seattlerb/heredoc_nested.txt index e3d44d38e5..ad5c1a8896 100644 --- a/test/yarp/snapshots/seattlerb/heredoc_nested.txt +++ b/test/yarp/snapshots/seattlerb/heredoc_nested.txt @@ -13,15 +13,11 @@ │ │ │ │ ├── statements: │ │ │ │ │ @ StatementsNode (location: (8...11)) │ │ │ │ │ └── body: (length: 1) - │ │ │ │ │ └── @ InterpolatedStringNode (location: (8...11)) + │ │ │ │ │ └── @ StringNode (location: (8...11)) │ │ │ │ │ ├── opening_loc: (8...11) = "<<B" - │ │ │ │ │ ├── parts: (length: 1) - │ │ │ │ │ │ └── @ StringNode (location: (13...15)) - │ │ │ │ │ │ ├── opening_loc: ∅ - │ │ │ │ │ │ ├── content_loc: (13...15) = "b\n" - │ │ │ │ │ │ ├── closing_loc: ∅ - │ │ │ │ │ │ └── unescaped: "b\n" - │ │ │ │ │ └── closing_loc: (15...17) = "B\n" + │ │ │ │ │ ├── content_loc: (13...15) = "b\n" + │ │ │ │ │ ├── closing_loc: (15...17) = "B\n" + │ │ │ │ │ └── unescaped: "b\n" │ │ │ │ └── closing_loc: (11...12) = "}" │ │ │ ├── @ StringNode (location: (12...13)) │ │ │ │ ├── opening_loc: ∅ diff --git a/test/yarp/snapshots/seattlerb/heredoc_squiggly.txt b/test/yarp/snapshots/seattlerb/heredoc_squiggly.txt index 789e3d90a9..0edb96fa5b 100644 --- a/test/yarp/snapshots/seattlerb/heredoc_squiggly.txt +++ b/test/yarp/snapshots/seattlerb/heredoc_squiggly.txt @@ -8,13 +8,9 @@ ├── depth: 0 ├── name_loc: (0...1) = "a" ├── value: - │ @ InterpolatedStringNode (location: (4...12)) + │ @ StringNode (location: (4...12)) │ ├── opening_loc: (4...12) = "<<~\"EOF\"" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (13...25)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (13...25) = " x\n y\n z\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "x\ny\nz\n" - │ └── closing_loc: (25...31) = " EOF\n" + │ ├── content_loc: (13...25) = " x\n y\n z\n" + │ ├── closing_loc: (25...31) = " EOF\n" + │ └── unescaped: "x\ny\nz\n" └── operator_loc: (2...3) = "=" diff --git a/test/yarp/snapshots/seattlerb/heredoc_squiggly_blank_lines.txt b/test/yarp/snapshots/seattlerb/heredoc_squiggly_blank_lines.txt index fd474553d8..57864a671e 100644 --- a/test/yarp/snapshots/seattlerb/heredoc_squiggly_blank_lines.txt +++ b/test/yarp/snapshots/seattlerb/heredoc_squiggly_blank_lines.txt @@ -8,13 +8,9 @@ ├── depth: 0 ├── name_loc: (0...1) = "a" ├── value: - │ @ InterpolatedStringNode (location: (4...10)) + │ @ StringNode (location: (4...10)) │ ├── opening_loc: (4...10) = "<<~EOF" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (11...20)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (11...20) = " x\n\n z\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "x\n\nz\n" - │ └── closing_loc: (20...24) = "EOF\n" + │ ├── content_loc: (11...20) = " x\n\n z\n" + │ ├── closing_loc: (20...24) = "EOF\n" + │ └── unescaped: "x\n\nz\n" └── operator_loc: (2...3) = "=" diff --git a/test/yarp/snapshots/seattlerb/heredoc_squiggly_empty.txt b/test/yarp/snapshots/seattlerb/heredoc_squiggly_empty.txt index 7769e4ca2c..78e9731fdc 100644 --- a/test/yarp/snapshots/seattlerb/heredoc_squiggly_empty.txt +++ b/test/yarp/snapshots/seattlerb/heredoc_squiggly_empty.txt @@ -3,7 +3,8 @@ └── statements: @ StatementsNode (location: (0...4)) └── body: (length: 1) - └── @ InterpolatedStringNode (location: (0...4)) + └── @ StringNode (location: (0...4)) ├── opening_loc: (0...4) = "<<~A" - ├── parts: (length: 0) - └── closing_loc: (5...7) = "A\n" + ├── content_loc: (4...5) = "\n" + ├── closing_loc: (5...7) = "A\n" + └── unescaped: "" diff --git a/test/yarp/snapshots/seattlerb/heredoc_squiggly_no_indent.txt b/test/yarp/snapshots/seattlerb/heredoc_squiggly_no_indent.txt index b88a5b4af9..e4b9c6cc1c 100644 --- a/test/yarp/snapshots/seattlerb/heredoc_squiggly_no_indent.txt +++ b/test/yarp/snapshots/seattlerb/heredoc_squiggly_no_indent.txt @@ -3,12 +3,8 @@ └── statements: @ StatementsNode (location: (0...4)) └── body: (length: 1) - └── @ InterpolatedStringNode (location: (0...4)) + └── @ StringNode (location: (0...4)) ├── opening_loc: (0...4) = "<<~A" - ├── parts: (length: 1) - │ └── @ StringNode (location: (5...7)) - │ ├── opening_loc: ∅ - │ ├── content_loc: (5...7) = "a\n" - │ ├── closing_loc: ∅ - │ └── unescaped: "a\n" - └── closing_loc: (7...9) = "A\n" + ├── content_loc: (5...7) = "a\n" + ├── closing_loc: (7...9) = "A\n" + └── unescaped: "a\n" diff --git a/test/yarp/snapshots/seattlerb/heredoc_squiggly_tabs.txt b/test/yarp/snapshots/seattlerb/heredoc_squiggly_tabs.txt index b5046bcca2..47feda9aeb 100644 --- a/test/yarp/snapshots/seattlerb/heredoc_squiggly_tabs.txt +++ b/test/yarp/snapshots/seattlerb/heredoc_squiggly_tabs.txt @@ -8,13 +8,9 @@ ├── depth: 0 ├── name_loc: (0...1) = "a" ├── value: - │ @ InterpolatedStringNode (location: (4...12)) + │ @ StringNode (location: (4...12)) │ ├── opening_loc: (4...12) = "<<~\"EOF\"" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (13...43)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (13...43) = " blah blah\n\t blah blah\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "blah blah\n blah blah\n" - │ └── closing_loc: (43...49) = " EOF\n" + │ ├── content_loc: (13...43) = " blah blah\n\t blah blah\n" + │ ├── closing_loc: (43...49) = " EOF\n" + │ └── unescaped: "blah blah\n blah blah\n" └── operator_loc: (2...3) = "=" diff --git a/test/yarp/snapshots/seattlerb/heredoc_squiggly_tabs_extra.txt b/test/yarp/snapshots/seattlerb/heredoc_squiggly_tabs_extra.txt index f321ec6e5d..7d9b7da50d 100644 --- a/test/yarp/snapshots/seattlerb/heredoc_squiggly_tabs_extra.txt +++ b/test/yarp/snapshots/seattlerb/heredoc_squiggly_tabs_extra.txt @@ -8,13 +8,9 @@ ├── depth: 0 ├── name_loc: (0...1) = "a" ├── value: - │ @ InterpolatedStringNode (location: (4...12)) + │ @ StringNode (location: (4...12)) │ ├── opening_loc: (4...12) = "<<~\"EOF\"" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (13...37)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (13...37) = " blah blah\n \tblah blah\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "blah blah\n\tblah blah\n" - │ └── closing_loc: (37...43) = " EOF\n" + │ ├── content_loc: (13...37) = " blah blah\n \tblah blah\n" + │ ├── closing_loc: (37...43) = " EOF\n" + │ └── unescaped: "blah blah\n\tblah blah\n" └── operator_loc: (2...3) = "=" diff --git a/test/yarp/snapshots/seattlerb/heredoc_squiggly_visually_blank_lines.txt b/test/yarp/snapshots/seattlerb/heredoc_squiggly_visually_blank_lines.txt index 8fbdfac6ef..aa337be5b7 100644 --- a/test/yarp/snapshots/seattlerb/heredoc_squiggly_visually_blank_lines.txt +++ b/test/yarp/snapshots/seattlerb/heredoc_squiggly_visually_blank_lines.txt @@ -8,13 +8,9 @@ ├── depth: 0 ├── name_loc: (0...1) = "a" ├── value: - │ @ InterpolatedStringNode (location: (4...10)) + │ @ StringNode (location: (4...10)) │ ├── opening_loc: (4...10) = "<<~EOF" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (11...21)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (11...21) = " x\n \n z\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "x\n\nz\n" - │ └── closing_loc: (21...25) = "EOF\n" + │ ├── content_loc: (11...21) = " x\n \n z\n" + │ ├── closing_loc: (21...25) = "EOF\n" + │ └── unescaped: "x\n\nz\n" └── operator_loc: (2...3) = "=" diff --git a/test/yarp/snapshots/seattlerb/heredoc_trailing_slash_continued_call.txt b/test/yarp/snapshots/seattlerb/heredoc_trailing_slash_continued_call.txt index f5018d999b..ed21660c29 100644 --- a/test/yarp/snapshots/seattlerb/heredoc_trailing_slash_continued_call.txt +++ b/test/yarp/snapshots/seattlerb/heredoc_trailing_slash_continued_call.txt @@ -5,15 +5,11 @@ └── body: (length: 1) └── @ CallNode (location: (0...22)) ├── receiver: - │ @ InterpolatedStringNode (location: (0...5)) + │ @ StringNode (location: (0...5)) │ ├── opening_loc: (0...5) = "<<END" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (7...12)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (7...12) = "blah\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "blah\n" - │ └── closing_loc: (12...16) = "END\n" + │ ├── content_loc: (7...12) = "blah\n" + │ ├── closing_loc: (12...16) = "END\n" + │ └── unescaped: "blah\n" ├── call_operator_loc: (16...17) = "." ├── message_loc: (17...22) = "strip" ├── opening_loc: ∅ diff --git a/test/yarp/snapshots/seattlerb/heredoc_unicode.txt b/test/yarp/snapshots/seattlerb/heredoc_unicode.txt index 0fc8737282..95a04c3ee6 100644 --- a/test/yarp/snapshots/seattlerb/heredoc_unicode.txt +++ b/test/yarp/snapshots/seattlerb/heredoc_unicode.txt @@ -3,12 +3,8 @@ └── statements: @ StatementsNode (location: (0...9)) └── body: (length: 1) - └── @ InterpolatedStringNode (location: (0...9)) + └── @ StringNode (location: (0...9)) ├── opening_loc: (0...9) = "<<OOTPÜT" - ├── parts: (length: 1) - │ └── @ StringNode (location: (10...12)) - │ ├── opening_loc: ∅ - │ ├── content_loc: (10...12) = ".\n" - │ ├── closing_loc: ∅ - │ └── unescaped: ".\n" - └── closing_loc: (12...20) = "OOTPÜT\n" + ├── content_loc: (10...12) = ".\n" + ├── closing_loc: (12...20) = "OOTPÜT\n" + └── unescaped: ".\n" diff --git a/test/yarp/snapshots/seattlerb/heredoc_with_carriage_return_escapes.txt b/test/yarp/snapshots/seattlerb/heredoc_with_carriage_return_escapes.txt index b5f85f4348..a19f37c60e 100644 --- a/test/yarp/snapshots/seattlerb/heredoc_with_carriage_return_escapes.txt +++ b/test/yarp/snapshots/seattlerb/heredoc_with_carriage_return_escapes.txt @@ -3,12 +3,8 @@ └── statements: @ StatementsNode (location: (0...5)) └── body: (length: 1) - └── @ InterpolatedStringNode (location: (0...5)) + └── @ StringNode (location: (0...5)) ├── opening_loc: (0...5) = "<<EOS" - ├── parts: (length: 1) - │ └── @ StringNode (location: (6...21)) - │ ├── opening_loc: ∅ - │ ├── content_loc: (6...21) = "foo\\rbar\nbaz\\r\n" - │ ├── closing_loc: ∅ - │ └── unescaped: "foo\rbar\nbaz\r\n" - └── closing_loc: (21...25) = "EOS\n" + ├── content_loc: (6...21) = "foo\\rbar\nbaz\\r\n" + ├── closing_loc: (21...25) = "EOS\n" + └── unescaped: "foo\rbar\nbaz\r\n" diff --git a/test/yarp/snapshots/seattlerb/heredoc_with_carriage_return_escapes_windows.txt b/test/yarp/snapshots/seattlerb/heredoc_with_carriage_return_escapes_windows.txt index aed5f0465c..558fac8cdf 100644 --- a/test/yarp/snapshots/seattlerb/heredoc_with_carriage_return_escapes_windows.txt +++ b/test/yarp/snapshots/seattlerb/heredoc_with_carriage_return_escapes_windows.txt @@ -3,12 +3,8 @@ └── statements: @ StatementsNode (location: (0...5)) └── body: (length: 1) - └── @ InterpolatedStringNode (location: (0...5)) + └── @ StringNode (location: (0...5)) ├── opening_loc: (0...5) = "<<EOS" - ├── parts: (length: 1) - │ └── @ StringNode (location: (7...24)) - │ ├── opening_loc: ∅ - │ ├── content_loc: (7...24) = "foo\\rbar\r\nbaz\\r\r\n" - │ ├── closing_loc: ∅ - │ └── unescaped: "foo\rbar\r\nbaz\r\r\n" - └── closing_loc: (24...29) = "EOS\r\n" + ├── content_loc: (7...24) = "foo\\rbar\r\nbaz\\r\r\n" + ├── closing_loc: (24...29) = "EOS\r\n" + └── unescaped: "foo\rbar\r\nbaz\r\r\n" diff --git a/test/yarp/snapshots/seattlerb/heredoc_with_extra_carriage_horrible_mix.txt b/test/yarp/snapshots/seattlerb/heredoc_with_extra_carriage_horrible_mix.txt index 9c6471da76..97270b40d6 100644 --- a/test/yarp/snapshots/seattlerb/heredoc_with_extra_carriage_horrible_mix.txt +++ b/test/yarp/snapshots/seattlerb/heredoc_with_extra_carriage_horrible_mix.txt @@ -3,12 +3,8 @@ └── statements: @ StatementsNode (location: (0...7)) └── body: (length: 1) - └── @ InterpolatedStringNode (location: (0...7)) + └── @ StringNode (location: (0...7)) ├── opening_loc: (0...7) = "<<'eot'" - ├── parts: (length: 1) - │ └── @ StringNode (location: (9...15)) - │ ├── opening_loc: ∅ - │ ├── content_loc: (9...15) = "body\r\n" - │ ├── closing_loc: ∅ - │ └── unescaped: "body\r\n" - └── closing_loc: (15...19) = "eot\n" + ├── content_loc: (9...15) = "body\r\n" + ├── closing_loc: (15...19) = "eot\n" + └── unescaped: "body\r\n" diff --git a/test/yarp/snapshots/seattlerb/heredoc_with_extra_carriage_returns.txt b/test/yarp/snapshots/seattlerb/heredoc_with_extra_carriage_returns.txt index 217824be97..56e12ee828 100644 --- a/test/yarp/snapshots/seattlerb/heredoc_with_extra_carriage_returns.txt +++ b/test/yarp/snapshots/seattlerb/heredoc_with_extra_carriage_returns.txt @@ -3,12 +3,8 @@ └── statements: @ StatementsNode (location: (0...5)) └── body: (length: 1) - └── @ InterpolatedStringNode (location: (0...5)) + └── @ StringNode (location: (0...5)) ├── opening_loc: (0...5) = "<<EOS" - ├── parts: (length: 1) - │ └── @ StringNode (location: (6...19)) - │ ├── opening_loc: ∅ - │ ├── content_loc: (6...19) = "foo\rbar\r\nbaz\n" - │ ├── closing_loc: ∅ - │ └── unescaped: "foo\rbar\r\nbaz\n" - └── closing_loc: (19...23) = "EOS\n" + ├── content_loc: (6...19) = "foo\rbar\r\nbaz\n" + ├── closing_loc: (19...23) = "EOS\n" + └── unescaped: "foo\rbar\r\nbaz\n" diff --git a/test/yarp/snapshots/seattlerb/heredoc_with_extra_carriage_returns_windows.txt b/test/yarp/snapshots/seattlerb/heredoc_with_extra_carriage_returns_windows.txt index 482dc5ba15..e8d05713a4 100644 --- a/test/yarp/snapshots/seattlerb/heredoc_with_extra_carriage_returns_windows.txt +++ b/test/yarp/snapshots/seattlerb/heredoc_with_extra_carriage_returns_windows.txt @@ -3,12 +3,8 @@ └── statements: @ StatementsNode (location: (0...5)) └── body: (length: 1) - └── @ InterpolatedStringNode (location: (0...5)) + └── @ StringNode (location: (0...5)) ├── opening_loc: (0...5) = "<<EOS" - ├── parts: (length: 1) - │ └── @ StringNode (location: (7...22)) - │ ├── opening_loc: ∅ - │ ├── content_loc: (7...22) = "foo\rbar\r\r\nbaz\r\n" - │ ├── closing_loc: ∅ - │ └── unescaped: "foo\rbar\r\r\nbaz\r\n" - └── closing_loc: (22...27) = "EOS\r\n" + ├── content_loc: (7...22) = "foo\rbar\r\r\nbaz\r\n" + ├── closing_loc: (22...27) = "EOS\r\n" + └── unescaped: "foo\rbar\r\r\nbaz\r\n" diff --git a/test/yarp/snapshots/seattlerb/heredoc_with_not_global_interpolation.txt b/test/yarp/snapshots/seattlerb/heredoc_with_not_global_interpolation.txt index 4f51527b28..50a92cc081 100644 --- a/test/yarp/snapshots/seattlerb/heredoc_with_not_global_interpolation.txt +++ b/test/yarp/snapshots/seattlerb/heredoc_with_not_global_interpolation.txt @@ -3,12 +3,8 @@ └── statements: @ StatementsNode (location: (0...10)) └── body: (length: 1) - └── @ InterpolatedStringNode (location: (0...10)) + └── @ StringNode (location: (0...10)) ├── opening_loc: (0...10) = "<<-HEREDOC" - ├── parts: (length: 1) - │ └── @ StringNode (location: (11...15)) - │ ├── opening_loc: ∅ - │ ├── content_loc: (11...15) = "\#${\n" - │ ├── closing_loc: ∅ - │ └── unescaped: "\#${\n" - └── closing_loc: (15...23) = "HEREDOC\n" + ├── content_loc: (11...15) = "\#${\n" + ├── closing_loc: (15...23) = "HEREDOC\n" + └── unescaped: "\#${\n" diff --git a/test/yarp/snapshots/seattlerb/heredoc_with_only_carriage_returns.txt b/test/yarp/snapshots/seattlerb/heredoc_with_only_carriage_returns.txt index ea9bc76b2f..8a5a0e4c86 100644 --- a/test/yarp/snapshots/seattlerb/heredoc_with_only_carriage_returns.txt +++ b/test/yarp/snapshots/seattlerb/heredoc_with_only_carriage_returns.txt @@ -3,12 +3,8 @@ └── statements: @ StatementsNode (location: (0...5)) └── body: (length: 1) - └── @ InterpolatedStringNode (location: (0...5)) + └── @ StringNode (location: (0...5)) ├── opening_loc: (0...5) = "<<EOS" - ├── parts: (length: 1) - │ └── @ StringNode (location: (6...14)) - │ ├── opening_loc: ∅ - │ ├── content_loc: (6...14) = "\r\n\r\r\n\\r\n" - │ ├── closing_loc: ∅ - │ └── unescaped: "\r\n\r\r\n\r\n" - └── closing_loc: (14...18) = "EOS\n" + ├── content_loc: (6...14) = "\r\n\r\r\n\\r\n" + ├── closing_loc: (14...18) = "EOS\n" + └── unescaped: "\r\n\r\r\n\r\n" diff --git a/test/yarp/snapshots/seattlerb/heredoc_with_only_carriage_returns_windows.txt b/test/yarp/snapshots/seattlerb/heredoc_with_only_carriage_returns_windows.txt index 8a57f8cff8..9892951655 100644 --- a/test/yarp/snapshots/seattlerb/heredoc_with_only_carriage_returns_windows.txt +++ b/test/yarp/snapshots/seattlerb/heredoc_with_only_carriage_returns_windows.txt @@ -3,12 +3,8 @@ └── statements: @ StatementsNode (location: (0...5)) └── body: (length: 1) - └── @ InterpolatedStringNode (location: (0...5)) + └── @ StringNode (location: (0...5)) ├── opening_loc: (0...5) = "<<EOS" - ├── parts: (length: 1) - │ └── @ StringNode (location: (7...18)) - │ ├── opening_loc: ∅ - │ ├── content_loc: (7...18) = "\r\r\n\r\r\r\n\\r\r\n" - │ ├── closing_loc: ∅ - │ └── unescaped: "\r\r\n\r\r\r\n\r\r\n" - └── closing_loc: (18...23) = "EOS\r\n" + ├── content_loc: (7...18) = "\r\r\n\r\r\r\n\\r\r\n" + ├── closing_loc: (18...23) = "EOS\r\n" + └── unescaped: "\r\r\n\r\r\r\n\r\r\n" diff --git a/test/yarp/snapshots/seattlerb/parse_line_heredoc.txt b/test/yarp/snapshots/seattlerb/parse_line_heredoc.txt index 4e0d5e2fe6..4b2a57e38d 100644 --- a/test/yarp/snapshots/seattlerb/parse_line_heredoc.txt +++ b/test/yarp/snapshots/seattlerb/parse_line_heredoc.txt @@ -10,15 +10,11 @@ │ ├── value: │ │ @ CallNode (location: (15...31)) │ │ ├── receiver: - │ │ │ @ InterpolatedStringNode (location: (15...25)) + │ │ │ @ StringNode (location: (15...25)) │ │ │ ├── opening_loc: (15...25) = "<<-HEREDOC" - │ │ │ ├── parts: (length: 1) - │ │ │ │ └── @ StringNode (location: (32...57)) - │ │ │ │ ├── opening_loc: ∅ - │ │ │ │ ├── content_loc: (32...57) = " very long string\n" - │ │ │ │ ├── closing_loc: ∅ - │ │ │ │ └── unescaped: " very long string\n" - │ │ │ └── closing_loc: (57...71) = " HEREDOC\n" + │ │ │ ├── content_loc: (32...57) = " very long string\n" + │ │ │ ├── closing_loc: (57...71) = " HEREDOC\n" + │ │ │ └── unescaped: " very long string\n" │ │ ├── call_operator_loc: (25...26) = "." │ │ ├── message_loc: (26...31) = "strip" │ │ ├── opening_loc: ∅ diff --git a/test/yarp/snapshots/seattlerb/parse_line_heredoc_hardnewline.txt b/test/yarp/snapshots/seattlerb/parse_line_heredoc_hardnewline.txt index c264873f90..29d8c9c6ee 100644 --- a/test/yarp/snapshots/seattlerb/parse_line_heredoc_hardnewline.txt +++ b/test/yarp/snapshots/seattlerb/parse_line_heredoc_hardnewline.txt @@ -3,15 +3,11 @@ └── statements: @ StatementsNode (location: (0...48)) └── body: (length: 2) - ├── @ InterpolatedStringNode (location: (0...8)) + ├── @ StringNode (location: (0...8)) │ ├── opening_loc: (0...8) = "<<-EOFOO" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (9...28)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (9...28) = "\\n\\n\\n\\n\\n\\n\\n\\n\\n\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "\n\n\n\n\n\n\n\n\n\n" - │ └── closing_loc: (28...34) = "EOFOO\n" + │ ├── content_loc: (9...28) = "\\n\\n\\n\\n\\n\\n\\n\\n\\n\n" + │ ├── closing_loc: (28...34) = "EOFOO\n" + │ └── unescaped: "\n\n\n\n\n\n\n\n\n\n" └── @ ClassNode (location: (35...48)) ├── locals: [] ├── class_keyword_loc: (35...40) = "class" diff --git a/test/yarp/snapshots/seattlerb/parse_line_heredoc_regexp_chars.txt b/test/yarp/snapshots/seattlerb/parse_line_heredoc_regexp_chars.txt index 8a9824181f..44c178e098 100644 --- a/test/yarp/snapshots/seattlerb/parse_line_heredoc_regexp_chars.txt +++ b/test/yarp/snapshots/seattlerb/parse_line_heredoc_regexp_chars.txt @@ -8,15 +8,11 @@ │ ├── depth: 0 │ ├── name_loc: (6...12) = "string" │ ├── value: - │ │ @ InterpolatedStringNode (location: (15...22)) + │ │ @ StringNode (location: (15...22)) │ │ ├── opening_loc: (15...22) = "<<-\"^D\"" - │ │ ├── parts: (length: 1) - │ │ │ └── @ StringNode (location: (23...48)) - │ │ │ ├── opening_loc: ∅ - │ │ │ ├── content_loc: (23...48) = " very long string\n" - │ │ │ ├── closing_loc: ∅ - │ │ │ └── unescaped: " very long string\n" - │ │ └── closing_loc: (48...57) = " ^D\n" + │ │ ├── content_loc: (23...48) = " very long string\n" + │ │ ├── closing_loc: (48...57) = " ^D\n" + │ │ └── unescaped: " very long string\n" │ └── operator_loc: (13...14) = "=" └── @ CallNode (location: (63...74)) ├── receiver: ∅ diff --git a/test/yarp/snapshots/seattlerb/pct_w_heredoc_interp_nested.txt b/test/yarp/snapshots/seattlerb/pct_w_heredoc_interp_nested.txt index 0706a449f3..8d0cf0a225 100644 --- a/test/yarp/snapshots/seattlerb/pct_w_heredoc_interp_nested.txt +++ b/test/yarp/snapshots/seattlerb/pct_w_heredoc_interp_nested.txt @@ -18,15 +18,11 @@ │ │ │ ├── statements: │ │ │ │ @ StatementsNode (location: (8...11)) │ │ │ │ └── body: (length: 1) - │ │ │ │ └── @ InterpolatedStringNode (location: (8...11)) + │ │ │ │ └── @ StringNode (location: (8...11)) │ │ │ │ ├── opening_loc: (8...11) = "<<A" - │ │ │ │ ├── parts: (length: 1) - │ │ │ │ │ └── @ StringNode (location: (15...17)) - │ │ │ │ │ ├── opening_loc: ∅ - │ │ │ │ │ ├── content_loc: (15...17) = "2\n" - │ │ │ │ │ ├── closing_loc: ∅ - │ │ │ │ │ └── unescaped: "2\n" - │ │ │ │ └── closing_loc: (17...19) = "A\n" + │ │ │ │ ├── content_loc: (15...17) = "2\n" + │ │ │ │ ├── closing_loc: (17...19) = "A\n" + │ │ │ │ └── unescaped: "2\n" │ │ │ └── closing_loc: (11...12) = "}" │ │ └── closing_loc: ∅ │ ├── @ StringNode (location: (13...14)) diff --git a/test/yarp/snapshots/single_quote_heredocs.txt b/test/yarp/snapshots/single_quote_heredocs.txt index c69bdf39fc..d5f5e6f484 100644 --- a/test/yarp/snapshots/single_quote_heredocs.txt +++ b/test/yarp/snapshots/single_quote_heredocs.txt @@ -3,12 +3,8 @@ └── statements: @ StatementsNode (location: (0...8)) └── body: (length: 1) - └── @ InterpolatedStringNode (location: (0...8)) + └── @ StringNode (location: (0...8)) ├── opening_loc: (0...8) = "<<-'EOS'" - ├── parts: (length: 1) - │ └── @ StringNode (location: (9...44)) - │ ├── opening_loc: ∅ - │ ├── content_loc: (9...44) = " cd L:\\Work\\MG3710IQPro\\Develop\n" - │ ├── closing_loc: ∅ - │ └── unescaped: " cd L:\\Work\\MG3710IQPro\\Develop\n" - └── closing_loc: (44...48) = "EOS\n" + ├── content_loc: (9...44) = " cd L:\\Work\\MG3710IQPro\\Develop\n" + ├── closing_loc: (44...48) = "EOS\n" + └── unescaped: " cd L:\\Work\\MG3710IQPro\\Develop\n" diff --git a/test/yarp/snapshots/spanning_heredoc.txt b/test/yarp/snapshots/spanning_heredoc.txt index 9d35b06eac..edea4efb51 100644 --- a/test/yarp/snapshots/spanning_heredoc.txt +++ b/test/yarp/snapshots/spanning_heredoc.txt @@ -13,15 +13,11 @@ │ │ └── arguments: (length: 1) │ │ └── @ CallNode (location: (167...192)) │ │ ├── receiver: - │ │ │ @ InterpolatedStringNode (location: (167...171)) + │ │ │ @ StringNode (location: (167...171)) │ │ │ ├── opening_loc: (167...171) = "<<-A" - │ │ │ ├── parts: (length: 1) - │ │ │ │ └── @ StringNode (location: (181...183)) - │ │ │ │ ├── opening_loc: ∅ - │ │ │ │ ├── content_loc: (181...183) = "a\n" - │ │ │ │ ├── closing_loc: ∅ - │ │ │ │ └── unescaped: "a\n" - │ │ │ └── closing_loc: (183...185) = "A\n" + │ │ │ ├── content_loc: (181...183) = "a\n" + │ │ │ ├── closing_loc: (183...185) = "A\n" + │ │ │ └── unescaped: "a\n" │ │ ├── call_operator_loc: (171...172) = "." │ │ ├── message_loc: (172...176) = "gsub" │ │ ├── opening_loc: (176...177) = "(" @@ -64,15 +60,11 @@ │ ├── arguments: │ │ @ ArgumentsNode (location: (279...295)) │ │ └── arguments: (length: 2) - │ │ ├── @ InterpolatedStringNode (location: (279...283)) + │ │ ├── @ StringNode (location: (279...283)) │ │ │ ├── opening_loc: (279...283) = "<<-A" - │ │ │ ├── parts: (length: 1) - │ │ │ │ └── @ StringNode (location: (289...291)) - │ │ │ │ ├── opening_loc: ∅ - │ │ │ │ ├── content_loc: (289...291) = "c\n" - │ │ │ │ ├── closing_loc: ∅ - │ │ │ │ └── unescaped: "c\n" - │ │ │ └── closing_loc: (291...293) = "A\n" + │ │ │ ├── content_loc: (289...291) = "c\n" + │ │ │ ├── closing_loc: (291...293) = "A\n" + │ │ │ └── unescaped: "c\n" │ │ └── @ InterpolatedStringNode (location: (285...295)) │ │ ├── opening_loc: (285...286) = "\"" │ │ ├── parts: (length: 2) @@ -99,15 +91,11 @@ │ ├── arguments: │ │ @ ArgumentsNode (location: (325...343)) │ │ └── arguments: (length: 2) - │ │ ├── @ InterpolatedStringNode (location: (325...329)) + │ │ ├── @ StringNode (location: (325...329)) │ │ │ ├── opening_loc: (325...329) = "<<-A" - │ │ │ ├── parts: (length: 1) - │ │ │ │ └── @ StringNode (location: (337...339)) - │ │ │ │ ├── opening_loc: ∅ - │ │ │ │ ├── content_loc: (337...339) = "e\n" - │ │ │ │ ├── closing_loc: ∅ - │ │ │ │ └── unescaped: "e\n" - │ │ │ └── closing_loc: (339...341) = "A\n" + │ │ │ ├── content_loc: (337...339) = "e\n" + │ │ │ ├── closing_loc: (339...341) = "A\n" + │ │ │ └── unescaped: "e\n" │ │ └── @ InterpolatedStringNode (location: (331...343)) │ │ ├── opening_loc: (331...334) = "%q[" │ │ ├── parts: (length: 2) @@ -134,15 +122,11 @@ │ ├── arguments: │ │ @ ArgumentsNode (location: (430...448)) │ │ └── arguments: (length: 2) - │ │ ├── @ InterpolatedStringNode (location: (430...434)) + │ │ ├── @ StringNode (location: (430...434)) │ │ │ ├── opening_loc: (430...434) = "<<-A" - │ │ │ ├── parts: (length: 1) - │ │ │ │ └── @ StringNode (location: (442...444)) - │ │ │ │ ├── opening_loc: ∅ - │ │ │ │ ├── content_loc: (442...444) = "g\n" - │ │ │ │ ├── closing_loc: ∅ - │ │ │ │ └── unescaped: "g\n" - │ │ │ └── closing_loc: (444...446) = "A\n" + │ │ │ ├── content_loc: (442...444) = "g\n" + │ │ │ ├── closing_loc: (444...446) = "A\n" + │ │ │ └── unescaped: "g\n" │ │ └── @ InterpolatedStringNode (location: (436...448)) │ │ ├── opening_loc: (436...439) = "%Q[" │ │ ├── parts: (length: 2) @@ -169,15 +153,11 @@ │ ├── arguments: │ │ @ ArgumentsNode (location: (523...541)) │ │ └── arguments: (length: 2) - │ │ ├── @ InterpolatedStringNode (location: (523...527)) + │ │ ├── @ StringNode (location: (523...527)) │ │ │ ├── opening_loc: (523...527) = "<<-A" - │ │ │ ├── parts: (length: 1) - │ │ │ │ └── @ StringNode (location: (535...537)) - │ │ │ │ ├── opening_loc: ∅ - │ │ │ │ ├── content_loc: (535...537) = "i\n" - │ │ │ │ ├── closing_loc: ∅ - │ │ │ │ └── unescaped: "i\n" - │ │ │ └── closing_loc: (537...539) = "A\n" + │ │ │ ├── content_loc: (535...537) = "i\n" + │ │ │ ├── closing_loc: (537...539) = "A\n" + │ │ │ └── unescaped: "i\n" │ │ └── @ ArrayNode (location: (529...541)) │ │ ├── elements: (length: 2) │ │ │ ├── @ StringNode (location: (532...535)) @@ -204,15 +184,11 @@ │ ├── arguments: │ │ @ ArgumentsNode (location: (691...709)) │ │ └── arguments: (length: 2) - │ │ ├── @ InterpolatedStringNode (location: (691...695)) + │ │ ├── @ StringNode (location: (691...695)) │ │ │ ├── opening_loc: (691...695) = "<<-A" - │ │ │ ├── parts: (length: 1) - │ │ │ │ └── @ StringNode (location: (703...705)) - │ │ │ │ ├── opening_loc: ∅ - │ │ │ │ ├── content_loc: (703...705) = "k\n" - │ │ │ │ ├── closing_loc: ∅ - │ │ │ │ └── unescaped: "k\n" - │ │ │ └── closing_loc: (705...707) = "A\n" + │ │ │ ├── content_loc: (703...705) = "k\n" + │ │ │ ├── closing_loc: (705...707) = "A\n" + │ │ │ └── unescaped: "k\n" │ │ └── @ ArrayNode (location: (697...709)) │ │ ├── elements: (length: 1) │ │ │ └── @ InterpolatedStringNode (location: (700...708)) @@ -243,15 +219,11 @@ │ ├── arguments: │ │ @ ArgumentsNode (location: (784...802)) │ │ └── arguments: (length: 2) - │ │ ├── @ InterpolatedStringNode (location: (784...788)) + │ │ ├── @ StringNode (location: (784...788)) │ │ │ ├── opening_loc: (784...788) = "<<-A" - │ │ │ ├── parts: (length: 1) - │ │ │ │ └── @ StringNode (location: (796...798)) - │ │ │ │ ├── opening_loc: ∅ - │ │ │ │ ├── content_loc: (796...798) = "m\n" - │ │ │ │ ├── closing_loc: ∅ - │ │ │ │ └── unescaped: "m\n" - │ │ │ └── closing_loc: (798...800) = "A\n" + │ │ │ ├── content_loc: (796...798) = "m\n" + │ │ │ ├── closing_loc: (798...800) = "A\n" + │ │ │ └── unescaped: "m\n" │ │ └── @ ArrayNode (location: (790...802)) │ │ ├── elements: (length: 2) │ │ │ ├── @ SymbolNode (location: (793...796)) @@ -278,15 +250,11 @@ ├── arguments: │ @ ArgumentsNode (location: (946...964)) │ └── arguments: (length: 2) - │ ├── @ InterpolatedStringNode (location: (946...950)) + │ ├── @ StringNode (location: (946...950)) │ │ ├── opening_loc: (946...950) = "<<-A" - │ │ ├── parts: (length: 1) - │ │ │ └── @ StringNode (location: (958...960)) - │ │ │ ├── opening_loc: ∅ - │ │ │ ├── content_loc: (958...960) = "o\n" - │ │ │ ├── closing_loc: ∅ - │ │ │ └── unescaped: "o\n" - │ │ └── closing_loc: (960...962) = "A\n" + │ │ ├── content_loc: (958...960) = "o\n" + │ │ ├── closing_loc: (960...962) = "A\n" + │ │ └── unescaped: "o\n" │ └── @ ArrayNode (location: (952...964)) │ ├── elements: (length: 1) │ │ └── @ InterpolatedSymbolNode (location: (955...963)) diff --git a/test/yarp/snapshots/tilde_heredocs.txt b/test/yarp/snapshots/tilde_heredocs.txt index 417102ed38..3fdb456066 100644 --- a/test/yarp/snapshots/tilde_heredocs.txt +++ b/test/yarp/snapshots/tilde_heredocs.txt @@ -3,24 +3,16 @@ └── statements: @ StatementsNode (location: (0...372)) └── body: (length: 18) - ├── @ InterpolatedStringNode (location: (0...6)) + ├── @ StringNode (location: (0...6)) │ ├── opening_loc: (0...6) = "<<~EOF" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (7...11)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (7...11) = " a\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "a\n" - │ └── closing_loc: (11...15) = "EOF\n" - ├── @ InterpolatedStringNode (location: (16...22)) + │ ├── content_loc: (7...11) = " a\n" + │ ├── closing_loc: (11...15) = "EOF\n" + │ └── unescaped: "a\n" + ├── @ StringNode (location: (16...22)) │ ├── opening_loc: (16...22) = "<<~EOF" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (23...34)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (23...34) = "\ta\n b\n\t\tc\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "\ta\nb\n\t\tc\n" - │ └── closing_loc: (34...38) = "EOF\n" + │ ├── content_loc: (23...34) = "\ta\n b\n\t\tc\n" + │ ├── closing_loc: (34...38) = "EOF\n" + │ └── unescaped: "\ta\nb\n\t\tc\n" ├── @ InterpolatedStringNode (location: (39...45)) │ ├── opening_loc: (39...45) = "<<~EOF" │ ├── parts: (length: 2) @@ -104,96 +96,56 @@ │ │ ├── closing_loc: ∅ │ │ └── unescaped: "\n" │ └── closing_loc: (121...125) = "EOF\n" - ├── @ InterpolatedStringNode (location: (126...132)) + ├── @ StringNode (location: (126...132)) │ ├── opening_loc: (126...132) = "<<~EOF" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (133...141)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (133...141) = " a\n b\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "a\nb\n" - │ └── closing_loc: (141...145) = "EOF\n" - ├── @ InterpolatedStringNode (location: (146...152)) + │ ├── content_loc: (133...141) = " a\n b\n" + │ ├── closing_loc: (141...145) = "EOF\n" + │ └── unescaped: "a\nb\n" + ├── @ StringNode (location: (146...152)) │ ├── opening_loc: (146...152) = "<<~EOF" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (153...162)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (153...162) = " a\n b\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "a\n b\n" - │ └── closing_loc: (162...166) = "EOF\n" - ├── @ InterpolatedStringNode (location: (167...173)) + │ ├── content_loc: (153...162) = " a\n b\n" + │ ├── closing_loc: (162...166) = "EOF\n" + │ └── unescaped: "a\n b\n" + ├── @ StringNode (location: (167...173)) │ ├── opening_loc: (167...173) = "<<~EOF" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (174...183)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (174...183) = "\t\t\ta\n\t\tb\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "\ta\nb\n" - │ └── closing_loc: (183...187) = "EOF\n" - ├── @ InterpolatedStringNode (location: (188...196)) + │ ├── content_loc: (174...183) = "\t\t\ta\n\t\tb\n" + │ ├── closing_loc: (183...187) = "EOF\n" + │ └── unescaped: "\ta\nb\n" + ├── @ StringNode (location: (188...196)) │ ├── opening_loc: (188...196) = "<<~'EOF'" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (197...206)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (197...206) = " a \#{1}\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "a \#{1}\n" - │ └── closing_loc: (206...210) = "EOF\n" - ├── @ InterpolatedStringNode (location: (211...217)) + │ ├── content_loc: (197...206) = " a \#{1}\n" + │ ├── closing_loc: (206...210) = "EOF\n" + │ └── unescaped: "a \#{1}\n" + ├── @ StringNode (location: (211...217)) │ ├── opening_loc: (211...217) = "<<~EOF" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (218...225)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (218...225) = "\ta\n\t b\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "a\n b\n" - │ └── closing_loc: (225...229) = "EOF\n" - ├── @ InterpolatedStringNode (location: (230...236)) + │ ├── content_loc: (218...225) = "\ta\n\t b\n" + │ ├── closing_loc: (225...229) = "EOF\n" + │ └── unescaped: "a\n b\n" + ├── @ StringNode (location: (230...236)) │ ├── opening_loc: (230...236) = "<<~EOF" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (237...244)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (237...244) = "\t a\n\tb\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: " a\nb\n" - │ └── closing_loc: (244...248) = "EOF\n" - ├── @ InterpolatedStringNode (location: (249...255)) + │ ├── content_loc: (237...244) = "\t a\n\tb\n" + │ ├── closing_loc: (244...248) = "EOF\n" + │ └── unescaped: " a\nb\n" + ├── @ StringNode (location: (249...255)) │ ├── opening_loc: (249...255) = "<<~EOF" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (256...271)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (256...271) = " \ta\n b\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "a\nb\n" - │ └── closing_loc: (271...275) = "EOF\n" - ├── @ InterpolatedStringNode (location: (276...282)) + │ ├── content_loc: (256...271) = " \ta\n b\n" + │ ├── closing_loc: (271...275) = "EOF\n" + │ └── unescaped: "a\nb\n" + ├── @ StringNode (location: (276...282)) │ ├── opening_loc: (276...282) = "<<~EOF" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (283...292)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (283...292) = " a\n\n b\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "a\n\nb\n" - │ └── closing_loc: (292...296) = "EOF\n" - ├── @ InterpolatedStringNode (location: (297...303)) + │ ├── content_loc: (283...292) = " a\n\n b\n" + │ ├── closing_loc: (292...296) = "EOF\n" + │ └── unescaped: "a\n\nb\n" + ├── @ StringNode (location: (297...303)) │ ├── opening_loc: (297...303) = "<<~EOF" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (304...313)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (304...313) = " a\n\n b\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "a\n\nb\n" - │ └── closing_loc: (313...317) = "EOF\n" - ├── @ InterpolatedStringNode (location: (318...324)) + │ ├── content_loc: (304...313) = " a\n\n b\n" + │ ├── closing_loc: (313...317) = "EOF\n" + │ └── unescaped: "a\n\nb\n" + ├── @ StringNode (location: (318...324)) │ ├── opening_loc: (318...324) = "<<~EOF" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (325...336)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (325...336) = " a\n\n\n\n b\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "a\n\n\n\nb\n" - │ └── closing_loc: (336...340) = "EOF\n" + │ ├── content_loc: (325...336) = " a\n\n\n\n b\n" + │ ├── closing_loc: (336...340) = "EOF\n" + │ └── unescaped: "a\n\n\n\nb\n" ├── @ InterpolatedStringNode (location: (341...347)) │ ├── opening_loc: (341...347) = "<<~EOF" │ ├── parts: (length: 3) diff --git a/test/yarp/snapshots/unescaping.txt b/test/yarp/snapshots/unescaping.txt index d0208ca2a5..90c835d86f 100644 --- a/test/yarp/snapshots/unescaping.txt +++ b/test/yarp/snapshots/unescaping.txt @@ -23,12 +23,8 @@ │ ├── content_loc: (23...29) = "\\c\#{1}" │ ├── closing_loc: (29...30) = "\"" │ └── unescaped: "\u0003{1}" - └── @ InterpolatedStringNode (location: (32...39)) + └── @ StringNode (location: (32...39)) ├── opening_loc: (32...39) = "<<~HERE" - ├── parts: (length: 1) - │ └── @ StringNode (location: (40...50)) - │ ├── opening_loc: ∅ - │ ├── content_loc: (40...50) = " \\c\#{1}\n" - │ ├── closing_loc: ∅ - │ └── unescaped: "\u0003{1}\n" - └── closing_loc: (50...55) = "HERE\n" + ├── content_loc: (40...50) = " \\c\#{1}\n" + ├── closing_loc: (50...55) = "HERE\n" + └── unescaped: "\u0003{1}\n" diff --git a/test/yarp/snapshots/unparser/corpus/semantic/block.txt b/test/yarp/snapshots/unparser/corpus/semantic/block.txt index 4a16c23979..1f8675f1c6 100644 --- a/test/yarp/snapshots/unparser/corpus/semantic/block.txt +++ b/test/yarp/snapshots/unparser/corpus/semantic/block.txt @@ -113,15 +113,11 @@ │ ├── arguments: │ │ @ ArgumentsNode (location: (86...92)) │ │ └── arguments: (length: 1) - │ │ └── @ InterpolatedStringNode (location: (86...92)) + │ │ └── @ StringNode (location: (86...92)) │ │ ├── opening_loc: (86...92) = "<<-DOC" - │ │ ├── parts: (length: 1) - │ │ │ └── @ StringNode (location: (101...105)) - │ │ │ ├── opening_loc: ∅ - │ │ │ ├── content_loc: (101...105) = " b\n" - │ │ │ ├── closing_loc: ∅ - │ │ │ └── unescaped: " b\n" - │ │ └── closing_loc: (105...109) = "DOC\n" + │ │ ├── content_loc: (101...105) = " b\n" + │ │ ├── closing_loc: (105...109) = "DOC\n" + │ │ └── unescaped: " b\n" │ ├── closing_loc: (92...93) = ")" │ ├── block: │ │ @ BlockNode (location: (94...116)) @@ -160,15 +156,11 @@ ├── arguments: │ @ ArgumentsNode (location: (122...128)) │ └── arguments: (length: 1) - │ └── @ InterpolatedStringNode (location: (122...128)) + │ └── @ StringNode (location: (122...128)) │ ├── opening_loc: (122...128) = "<<-DOC" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (133...137)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (133...137) = " b\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: " b\n" - │ └── closing_loc: (137...141) = "DOC\n" + │ ├── content_loc: (133...137) = " b\n" + │ ├── closing_loc: (137...141) = "DOC\n" + │ └── unescaped: " b\n" ├── closing_loc: (128...129) = ")" ├── block: │ @ BlockNode (location: (130...148)) diff --git a/test/yarp/snapshots/unparser/corpus/semantic/dstr.txt b/test/yarp/snapshots/unparser/corpus/semantic/dstr.txt index 080b3ab847..5534951350 100644 --- a/test/yarp/snapshots/unparser/corpus/semantic/dstr.txt +++ b/test/yarp/snapshots/unparser/corpus/semantic/dstr.txt @@ -3,40 +3,36 @@ └── statements: @ StatementsNode (location: (0...608)) └── body: (length: 33) - ├── @ InterpolatedStringNode (location: (0...5)) + ├── @ StringNode (location: (0...5)) │ ├── opening_loc: (0...5) = "<<DOC" - │ ├── parts: (length: 0) - │ └── closing_loc: (6...10) = "DOC\n" - ├── @ InterpolatedStringNode (location: (11...18)) + │ ├── content_loc: (5...6) = "\n" + │ ├── closing_loc: (6...10) = "DOC\n" + │ └── unescaped: "" + ├── @ StringNode (location: (11...18)) │ ├── opening_loc: (11...18) = "<<'DOC'" - │ ├── parts: (length: 0) - │ └── closing_loc: (19...23) = "DOC\n" - ├── @ InterpolatedStringNode (location: (24...30)) + │ ├── content_loc: (18...19) = "\n" + │ ├── closing_loc: (19...23) = "DOC\n" + │ └── unescaped: "" + ├── @ StringNode (location: (24...30)) │ ├── opening_loc: (24...30) = "<<~DOC" - │ ├── parts: (length: 0) - │ └── closing_loc: (31...35) = "DOC\n" - ├── @ InterpolatedStringNode (location: (36...44)) + │ ├── content_loc: (30...31) = "\n" + │ ├── closing_loc: (31...35) = "DOC\n" + │ └── unescaped: "" + ├── @ StringNode (location: (36...44)) │ ├── opening_loc: (36...44) = "<<~'DOC'" - │ ├── parts: (length: 0) - │ └── closing_loc: (45...49) = "DOC\n" - ├── @ InterpolatedStringNode (location: (50...55)) + │ ├── content_loc: (44...45) = "\n" + │ ├── closing_loc: (45...49) = "DOC\n" + │ └── unescaped: "" + ├── @ StringNode (location: (50...55)) │ ├── opening_loc: (50...55) = "<<DOC" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (56...60)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (56...60) = " a\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: " a\n" - │ └── closing_loc: (60...64) = "DOC\n" - ├── @ InterpolatedStringNode (location: (65...72)) + │ ├── content_loc: (56...60) = " a\n" + │ ├── closing_loc: (60...64) = "DOC\n" + │ └── unescaped: " a\n" + ├── @ StringNode (location: (65...72)) │ ├── opening_loc: (65...72) = "<<'DOC'" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (73...77)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (73...77) = " a\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: " a\n" - │ └── closing_loc: (77...81) = "DOC\n" + │ ├── content_loc: (73...77) = " a\n" + │ ├── closing_loc: (77...81) = "DOC\n" + │ └── unescaped: " a\n" ├── @ InterpolatedStringNode (location: (82...87)) │ ├── opening_loc: (82...87) = "<<DOC" │ ├── parts: (length: 3) @@ -91,42 +87,26 @@ │ │ ├── closing_loc: ∅ │ │ └── unescaped: "\nb\n" │ └── closing_loc: (146...150) = "DOC\n" - ├── @ InterpolatedStringNode (location: (151...157)) + ├── @ StringNode (location: (151...157)) │ ├── opening_loc: (151...157) = "<<~DOC" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (158...168)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (158...168) = " a\n b\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "a\n b\n" - │ └── closing_loc: (168...172) = "DOC\n" - ├── @ InterpolatedStringNode (location: (173...180)) + │ ├── content_loc: (158...168) = " a\n b\n" + │ ├── closing_loc: (168...172) = "DOC\n" + │ └── unescaped: "a\n b\n" + ├── @ StringNode (location: (173...180)) │ ├── opening_loc: (173...180) = "<<'DOC'" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (181...186)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (181...186) = "a\n\nb\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "a\n\nb\n" - │ └── closing_loc: (186...190) = "DOC\n" - ├── @ InterpolatedStringNode (location: (191...198)) + │ ├── content_loc: (181...186) = "a\n\nb\n" + │ ├── closing_loc: (186...190) = "DOC\n" + │ └── unescaped: "a\n\nb\n" + ├── @ StringNode (location: (191...198)) │ ├── opening_loc: (191...198) = "<<'DOC'" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (199...206)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (199...206) = " a\n\n b\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: " a\n\n b\n" - │ └── closing_loc: (206...210) = "DOC\n" - ├── @ InterpolatedStringNode (location: (211...218)) + │ ├── content_loc: (199...206) = " a\n\n b\n" + │ ├── closing_loc: (206...210) = "DOC\n" + │ └── unescaped: " a\n\n b\n" + ├── @ StringNode (location: (211...218)) │ ├── opening_loc: (211...218) = "<<'DOC'" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (219...225)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (219...225) = " a\\nb\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: " a\\nb\n" - │ └── closing_loc: (225...229) = "DOC\n" + │ ├── content_loc: (219...225) = " a\\nb\n" + │ ├── closing_loc: (225...229) = "DOC\n" + │ └── unescaped: " a\\nb\n" ├── @ InterpolatedStringNode (location: (230...235)) │ ├── opening_loc: (230...235) = "<<DOC" │ ├── parts: (length: 4) @@ -276,15 +256,11 @@ │ ├── statements: │ │ @ StatementsNode (location: (435...443)) │ │ └── body: (length: 1) - │ │ └── @ InterpolatedStringNode (location: (435...443)) + │ │ └── @ StringNode (location: (435...443)) │ │ ├── opening_loc: (435...443) = "<<-'DOC'" - │ │ ├── parts: (length: 1) - │ │ │ └── @ StringNode (location: (444...455)) - │ │ │ ├── opening_loc: ∅ - │ │ │ ├── content_loc: (444...455) = " a\n\n b\n" - │ │ │ ├── closing_loc: ∅ - │ │ │ └── unescaped: " a\n\n b\n" - │ │ └── closing_loc: (455...461) = " DOC\n" + │ │ ├── content_loc: (444...455) = " a\n\n b\n" + │ │ ├── closing_loc: (455...461) = " DOC\n" + │ │ └── unescaped: " a\n\n b\n" │ ├── consequent: ∅ │ └── end_keyword_loc: (461...464) = "end" ├── @ InterpolatedStringNode (location: (466...472)) diff --git a/test/yarp/snapshots/unparser/corpus/semantic/while.txt b/test/yarp/snapshots/unparser/corpus/semantic/while.txt index 323528a0e6..b702e7fce5 100644 --- a/test/yarp/snapshots/unparser/corpus/semantic/while.txt +++ b/test/yarp/snapshots/unparser/corpus/semantic/while.txt @@ -185,10 +185,11 @@ │ │ ├── arguments: │ │ │ @ ArgumentsNode (location: (108...114)) │ │ │ └── arguments: (length: 1) - │ │ │ └── @ InterpolatedStringNode (location: (108...114)) + │ │ │ └── @ StringNode (location: (108...114)) │ │ │ ├── opening_loc: (108...114) = "<<-FOO" - │ │ │ ├── parts: (length: 0) - │ │ │ └── closing_loc: (119...123) = "FOO\n" + │ │ │ ├── content_loc: (114...119) = ") do\n" + │ │ │ ├── closing_loc: (119...123) = "FOO\n" + │ │ │ └── unescaped: "" │ │ ├── closing_loc: (114...115) = ")" │ │ ├── block: │ │ │ @ BlockNode (location: (116...130)) diff --git a/test/yarp/snapshots/whitequark/bug_heredoc_do.txt b/test/yarp/snapshots/whitequark/bug_heredoc_do.txt index 6707aa214c..34cb4b2b80 100644 --- a/test/yarp/snapshots/whitequark/bug_heredoc_do.txt +++ b/test/yarp/snapshots/whitequark/bug_heredoc_do.txt @@ -11,10 +11,11 @@ ├── arguments: │ @ ArgumentsNode (location: (2...10)) │ └── arguments: (length: 1) - │ └── @ InterpolatedStringNode (location: (2...10)) + │ └── @ StringNode (location: (2...10)) │ ├── opening_loc: (2...10) = "<<-TABLE" - │ ├── parts: (length: 0) - │ └── closing_loc: (14...20) = "TABLE\n" + │ ├── content_loc: (10...14) = " do\n" + │ ├── closing_loc: (14...20) = "TABLE\n" + │ └── unescaped: "" ├── closing_loc: ∅ ├── block: │ @ BlockNode (location: (11...23)) diff --git a/test/yarp/snapshots/whitequark/dedenting_heredoc.txt b/test/yarp/snapshots/whitequark/dedenting_heredoc.txt index a0a900f693..564a8fa956 100644 --- a/test/yarp/snapshots/whitequark/dedenting_heredoc.txt +++ b/test/yarp/snapshots/whitequark/dedenting_heredoc.txt @@ -90,15 +90,11 @@ │ ├── arguments: │ │ @ ArgumentsNode (location: (58...62)) │ │ └── arguments: (length: 1) - │ │ └── @ InterpolatedStringNode (location: (58...62)) + │ │ └── @ StringNode (location: (58...62)) │ │ ├── opening_loc: (58...62) = "<<~E" - │ │ ├── parts: (length: 1) - │ │ │ └── @ StringNode (location: (63...76)) - │ │ │ ├── opening_loc: ∅ - │ │ │ ├── content_loc: (63...76) = "\tx\n y\n" - │ │ │ ├── closing_loc: ∅ - │ │ │ └── unescaped: "x\ny\n" - │ │ └── closing_loc: (76...78) = "E\n" + │ │ ├── content_loc: (63...76) = "\tx\n y\n" + │ │ ├── closing_loc: (76...78) = "E\n" + │ │ └── unescaped: "x\ny\n" │ ├── closing_loc: ∅ │ ├── block: ∅ │ ├── flags: @@ -111,15 +107,11 @@ │ ├── arguments: │ │ @ ArgumentsNode (location: (81...85)) │ │ └── arguments: (length: 1) - │ │ └── @ InterpolatedStringNode (location: (81...85)) + │ │ └── @ StringNode (location: (81...85)) │ │ ├── opening_loc: (81...85) = "<<~E" - │ │ ├── parts: (length: 1) - │ │ │ └── @ StringNode (location: (86...95)) - │ │ │ ├── opening_loc: ∅ - │ │ │ ├── content_loc: (86...95) = "\tx\n y\n" - │ │ │ ├── closing_loc: ∅ - │ │ │ └── unescaped: "\tx\ny\n" - │ │ └── closing_loc: (95...97) = "E\n" + │ │ ├── content_loc: (86...95) = "\tx\n y\n" + │ │ ├── closing_loc: (95...97) = "E\n" + │ │ └── unescaped: "\tx\ny\n" │ ├── closing_loc: ∅ │ ├── block: ∅ │ ├── flags: @@ -132,15 +124,11 @@ │ ├── arguments: │ │ @ ArgumentsNode (location: (100...104)) │ │ └── arguments: (length: 1) - │ │ └── @ InterpolatedStringNode (location: (100...104)) + │ │ └── @ StringNode (location: (100...104)) │ │ ├── opening_loc: (100...104) = "<<~E" - │ │ ├── parts: (length: 1) - │ │ │ └── @ StringNode (location: (105...122)) - │ │ │ ├── opening_loc: ∅ - │ │ │ ├── content_loc: (105...122) = " \tx\n y\n" - │ │ │ ├── closing_loc: ∅ - │ │ │ └── unescaped: "x\ny\n" - │ │ └── closing_loc: (122...124) = "E\n" + │ │ ├── content_loc: (105...122) = " \tx\n y\n" + │ │ ├── closing_loc: (122...124) = "E\n" + │ │ └── unescaped: "x\ny\n" │ ├── closing_loc: ∅ │ ├── block: ∅ │ ├── flags: @@ -153,15 +141,11 @@ │ ├── arguments: │ │ @ ArgumentsNode (location: (127...131)) │ │ └── arguments: (length: 1) - │ │ └── @ InterpolatedStringNode (location: (127...131)) + │ │ └── @ StringNode (location: (127...131)) │ │ ├── opening_loc: (127...131) = "<<~E" - │ │ ├── parts: (length: 1) - │ │ │ └── @ StringNode (location: (132...146)) - │ │ │ ├── opening_loc: ∅ - │ │ │ ├── content_loc: (132...146) = " \tx\n\ty\n" - │ │ │ ├── closing_loc: ∅ - │ │ │ └── unescaped: "\tx\ny\n" - │ │ └── closing_loc: (146...148) = "E\n" + │ │ ├── content_loc: (132...146) = " \tx\n\ty\n" + │ │ ├── closing_loc: (146...148) = "E\n" + │ │ └── unescaped: "\tx\ny\n" │ ├── closing_loc: ∅ │ ├── block: ∅ │ ├── flags: @@ -174,15 +158,11 @@ │ ├── arguments: │ │ @ ArgumentsNode (location: (151...155)) │ │ └── arguments: (length: 1) - │ │ └── @ InterpolatedStringNode (location: (151...155)) + │ │ └── @ StringNode (location: (151...155)) │ │ ├── opening_loc: (151...155) = "<<~E" - │ │ ├── parts: (length: 1) - │ │ │ └── @ StringNode (location: (156...168)) - │ │ │ ├── opening_loc: ∅ - │ │ │ ├── content_loc: (156...168) = " x\n \\\ty\n" - │ │ │ ├── closing_loc: ∅ - │ │ │ └── unescaped: " x\n\ty\n" - │ │ └── closing_loc: (168...170) = "E\n" + │ │ ├── content_loc: (156...168) = " x\n \\\ty\n" + │ │ ├── closing_loc: (168...170) = "E\n" + │ │ └── unescaped: " x\n\ty\n" │ ├── closing_loc: ∅ │ ├── block: ∅ │ ├── flags: @@ -195,15 +175,11 @@ │ ├── arguments: │ │ @ ArgumentsNode (location: (173...177)) │ │ └── arguments: (length: 1) - │ │ └── @ InterpolatedStringNode (location: (173...177)) + │ │ └── @ StringNode (location: (173...177)) │ │ ├── opening_loc: (173...177) = "<<~E" - │ │ ├── parts: (length: 1) - │ │ │ └── @ StringNode (location: (178...191)) - │ │ │ ├── opening_loc: ∅ - │ │ │ ├── content_loc: (178...191) = " x\n \\ y\n" - │ │ │ ├── closing_loc: ∅ - │ │ │ └── unescaped: " x\n y\n" - │ │ └── closing_loc: (191...193) = "E\n" + │ │ ├── content_loc: (178...191) = " x\n \\ y\n" + │ │ ├── closing_loc: (191...193) = "E\n" + │ │ └── unescaped: " x\n y\n" │ ├── closing_loc: ∅ │ ├── block: ∅ │ ├── flags: @@ -216,10 +192,11 @@ │ ├── arguments: │ │ @ ArgumentsNode (location: (196...200)) │ │ └── arguments: (length: 1) - │ │ └── @ InterpolatedStringNode (location: (196...200)) + │ │ └── @ StringNode (location: (196...200)) │ │ ├── opening_loc: (196...200) = "<<~E" - │ │ ├── parts: (length: 0) - │ │ └── closing_loc: (201...205) = " E\n" + │ │ ├── content_loc: (200...201) = "\n" + │ │ ├── closing_loc: (201...205) = " E\n" + │ │ └── unescaped: "" │ ├── closing_loc: ∅ │ ├── block: ∅ │ ├── flags: @@ -232,15 +209,11 @@ │ ├── arguments: │ │ @ ArgumentsNode (location: (208...212)) │ │ └── arguments: (length: 1) - │ │ └── @ InterpolatedStringNode (location: (208...212)) + │ │ └── @ StringNode (location: (208...212)) │ │ ├── opening_loc: (208...212) = "<<~E" - │ │ ├── parts: (length: 1) - │ │ │ └── @ StringNode (location: (213...220)) - │ │ │ ├── opening_loc: ∅ - │ │ │ ├── content_loc: (213...220) = " x\n\ny\n" - │ │ │ ├── closing_loc: ∅ - │ │ │ └── unescaped: " x\n\ny\n" - │ │ └── closing_loc: (220...222) = "E\n" + │ │ ├── content_loc: (213...220) = " x\n\ny\n" + │ │ ├── closing_loc: (220...222) = "E\n" + │ │ └── unescaped: " x\n\ny\n" │ ├── closing_loc: ∅ │ ├── block: ∅ │ ├── flags: @@ -253,15 +226,11 @@ │ ├── arguments: │ │ @ ArgumentsNode (location: (225...229)) │ │ └── arguments: (length: 1) - │ │ └── @ InterpolatedStringNode (location: (225...229)) + │ │ └── @ StringNode (location: (225...229)) │ │ ├── opening_loc: (225...229) = "<<~E" - │ │ ├── parts: (length: 1) - │ │ │ └── @ StringNode (location: (230...243)) - │ │ │ ├── opening_loc: ∅ - │ │ │ ├── content_loc: (230...243) = " x\n \n y\n" - │ │ │ ├── closing_loc: ∅ - │ │ │ └── unescaped: "x\n \ny\n" - │ │ └── closing_loc: (243...245) = "E\n" + │ │ ├── content_loc: (230...243) = " x\n \n y\n" + │ │ ├── closing_loc: (243...245) = "E\n" + │ │ └── unescaped: "x\n \ny\n" │ ├── closing_loc: ∅ │ ├── block: ∅ │ ├── flags: @@ -274,15 +243,11 @@ │ ├── arguments: │ │ @ ArgumentsNode (location: (248...252)) │ │ └── arguments: (length: 1) - │ │ └── @ InterpolatedStringNode (location: (248...252)) + │ │ └── @ StringNode (location: (248...252)) │ │ ├── opening_loc: (248...252) = "<<~E" - │ │ ├── parts: (length: 1) - │ │ │ └── @ StringNode (location: (253...263)) - │ │ │ ├── opening_loc: ∅ - │ │ │ ├── content_loc: (253...263) = " x\n y\n" - │ │ │ ├── closing_loc: ∅ - │ │ │ └── unescaped: "x\n y\n" - │ │ └── closing_loc: (263...265) = "E\n" + │ │ ├── content_loc: (253...263) = " x\n y\n" + │ │ ├── closing_loc: (263...265) = "E\n" + │ │ └── unescaped: "x\n y\n" │ ├── closing_loc: ∅ │ ├── block: ∅ │ ├── flags: @@ -295,15 +260,11 @@ │ ├── arguments: │ │ @ ArgumentsNode (location: (268...272)) │ │ └── arguments: (length: 1) - │ │ └── @ InterpolatedStringNode (location: (268...272)) + │ │ └── @ StringNode (location: (268...272)) │ │ ├── opening_loc: (268...272) = "<<~E" - │ │ ├── parts: (length: 1) - │ │ │ └── @ StringNode (location: (273...277)) - │ │ │ ├── opening_loc: ∅ - │ │ │ ├── content_loc: (273...277) = " x\n" - │ │ │ ├── closing_loc: ∅ - │ │ │ └── unescaped: "x\n" - │ │ └── closing_loc: (277...279) = "E\n" + │ │ ├── content_loc: (273...277) = " x\n" + │ │ ├── closing_loc: (277...279) = "E\n" + │ │ └── unescaped: "x\n" │ ├── closing_loc: ∅ │ ├── block: ∅ │ ├── flags: @@ -316,15 +277,11 @@ │ ├── arguments: │ │ @ ArgumentsNode (location: (282...286)) │ │ └── arguments: (length: 1) - │ │ └── @ InterpolatedStringNode (location: (282...286)) + │ │ └── @ StringNode (location: (282...286)) │ │ ├── opening_loc: (282...286) = "<<~E" - │ │ ├── parts: (length: 1) - │ │ │ └── @ StringNode (location: (287...292)) - │ │ │ ├── opening_loc: ∅ - │ │ │ ├── content_loc: (287...292) = " ð\n" - │ │ │ ├── closing_loc: ∅ - │ │ │ └── unescaped: "ð\n" - │ │ └── closing_loc: (292...294) = "E\n" + │ │ ├── content_loc: (287...292) = " ð\n" + │ │ ├── closing_loc: (292...294) = "E\n" + │ │ └── unescaped: "ð\n" │ ├── closing_loc: ∅ │ ├── block: ∅ │ ├── flags: @@ -337,10 +294,11 @@ │ ├── arguments: │ │ @ ArgumentsNode (location: (297...301)) │ │ └── arguments: (length: 1) - │ │ └── @ InterpolatedStringNode (location: (297...301)) + │ │ └── @ StringNode (location: (297...301)) │ │ ├── opening_loc: (297...301) = "<<~E" - │ │ ├── parts: (length: 0) - │ │ └── closing_loc: (302...304) = "E\n" + │ │ ├── content_loc: (301...302) = "\n" + │ │ ├── closing_loc: (302...304) = "E\n" + │ │ └── unescaped: "" │ ├── closing_loc: ∅ │ ├── block: ∅ │ ├── flags: diff --git a/test/yarp/snapshots/whitequark/dedenting_interpolating_heredoc_fake_line_continuation.txt b/test/yarp/snapshots/whitequark/dedenting_interpolating_heredoc_fake_line_continuation.txt index fb23aed909..6ee986bdfe 100644 --- a/test/yarp/snapshots/whitequark/dedenting_interpolating_heredoc_fake_line_continuation.txt +++ b/test/yarp/snapshots/whitequark/dedenting_interpolating_heredoc_fake_line_continuation.txt @@ -3,12 +3,8 @@ └── statements: @ StatementsNode (location: (0...8)) └── body: (length: 1) - └── @ InterpolatedStringNode (location: (0...8)) + └── @ StringNode (location: (0...8)) ├── opening_loc: (0...8) = "<<~'FOO'" - ├── parts: (length: 1) - │ └── @ StringNode (location: (9...23)) - │ ├── opening_loc: ∅ - │ ├── content_loc: (9...23) = " baz\\\\\n qux\n" - │ ├── closing_loc: ∅ - │ └── unescaped: "baz\\\nqux\n" - └── closing_loc: (23...27) = "FOO\n" + ├── content_loc: (9...23) = " baz\\\\\n qux\n" + ├── closing_loc: (23...27) = "FOO\n" + └── unescaped: "baz\\\nqux\n" diff --git a/test/yarp/snapshots/whitequark/dedenting_non_interpolating_heredoc_line_continuation.txt b/test/yarp/snapshots/whitequark/dedenting_non_interpolating_heredoc_line_continuation.txt index 4f349a265d..b84db0a06c 100644 --- a/test/yarp/snapshots/whitequark/dedenting_non_interpolating_heredoc_line_continuation.txt +++ b/test/yarp/snapshots/whitequark/dedenting_non_interpolating_heredoc_line_continuation.txt @@ -3,12 +3,8 @@ └── statements: @ StatementsNode (location: (0...8)) └── body: (length: 1) - └── @ InterpolatedStringNode (location: (0...8)) + └── @ StringNode (location: (0...8)) ├── opening_loc: (0...8) = "<<~'FOO'" - ├── parts: (length: 1) - │ └── @ StringNode (location: (9...22)) - │ ├── opening_loc: ∅ - │ ├── content_loc: (9...22) = " baz\\\n qux\n" - │ ├── closing_loc: ∅ - │ └── unescaped: "baz\\\nqux\n" - └── closing_loc: (22...26) = "FOO\n" + ├── content_loc: (9...22) = " baz\\\n qux\n" + ├── closing_loc: (22...26) = "FOO\n" + └── unescaped: "baz\\\nqux\n" diff --git a/test/yarp/snapshots/whitequark/heredoc.txt b/test/yarp/snapshots/whitequark/heredoc.txt index 082e23926e..1d62a96c25 100644 --- a/test/yarp/snapshots/whitequark/heredoc.txt +++ b/test/yarp/snapshots/whitequark/heredoc.txt @@ -3,30 +3,18 @@ └── statements: @ StatementsNode (location: (0...52)) └── body: (length: 3) - ├── @ InterpolatedStringNode (location: (0...8)) + ├── @ StringNode (location: (0...8)) │ ├── opening_loc: (0...8) = "<<'HERE'" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (9...17)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (9...17) = "foo\nbar\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "foo\nbar\n" - │ └── closing_loc: (17...22) = "HERE\n" - ├── @ InterpolatedStringNode (location: (23...29)) + │ ├── content_loc: (9...17) = "foo\nbar\n" + │ ├── closing_loc: (17...22) = "HERE\n" + │ └── unescaped: "foo\nbar\n" + ├── @ StringNode (location: (23...29)) │ ├── opening_loc: (23...29) = "<<HERE" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (30...38)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (30...38) = "foo\nbar\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "foo\nbar\n" - │ └── closing_loc: (38...43) = "HERE\n" - └── @ InterpolatedXStringNode (location: (44...52)) + │ ├── content_loc: (30...38) = "foo\nbar\n" + │ ├── closing_loc: (38...43) = "HERE\n" + │ └── unescaped: "foo\nbar\n" + └── @ XStringNode (location: (44...52)) ├── opening_loc: (44...52) = "<<`HERE`" - ├── parts: (length: 1) - │ └── @ StringNode (location: (53...61)) - │ ├── opening_loc: ∅ - │ ├── content_loc: (53...61) = "foo\nbar\n" - │ ├── closing_loc: ∅ - │ └── unescaped: "foo\nbar\n" - └── closing_loc: (61...66) = "HERE\n" + ├── content_loc: (53...61) = "foo\nbar\n" + ├── closing_loc: (61...66) = "HERE\n" + └── unescaped: "foo\nbar\n" diff --git a/test/yarp/snapshots/whitequark/interp_digit_var.txt b/test/yarp/snapshots/whitequark/interp_digit_var.txt index 91c3664bfb..4a29381c8b 100644 --- a/test/yarp/snapshots/whitequark/interp_digit_var.txt +++ b/test/yarp/snapshots/whitequark/interp_digit_var.txt @@ -199,57 +199,33 @@ │ ├── content_loc: (346...350) = "\#@@1" │ ├── closing_loc: (350...351) = "`" │ └── unescaped: "\#@@1" - ├── @ InterpolatedStringNode (location: (354...363)) + ├── @ StringNode (location: (354...363)) │ ├── opening_loc: (354...363) = "<<-\"HERE\"" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (364...368)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (364...368) = "\#@1\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "\#@1\n" - │ └── closing_loc: (368...373) = "HERE\n" - ├── @ InterpolatedStringNode (location: (374...383)) + │ ├── content_loc: (364...368) = "\#@1\n" + │ ├── closing_loc: (368...373) = "HERE\n" + │ └── unescaped: "\#@1\n" + ├── @ StringNode (location: (374...383)) │ ├── opening_loc: (374...383) = "<<-\"HERE\"" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (384...389)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (384...389) = "\#@@1\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "\#@@1\n" - │ └── closing_loc: (389...394) = "HERE\n" - ├── @ InterpolatedStringNode (location: (395...404)) + │ ├── content_loc: (384...389) = "\#@@1\n" + │ ├── closing_loc: (389...394) = "HERE\n" + │ └── unescaped: "\#@@1\n" + ├── @ StringNode (location: (395...404)) │ ├── opening_loc: (395...404) = "<<-'HERE'" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (405...409)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (405...409) = "\#@1\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "\#@1\n" - │ └── closing_loc: (409...414) = "HERE\n" - ├── @ InterpolatedStringNode (location: (415...424)) + │ ├── content_loc: (405...409) = "\#@1\n" + │ ├── closing_loc: (409...414) = "HERE\n" + │ └── unescaped: "\#@1\n" + ├── @ StringNode (location: (415...424)) │ ├── opening_loc: (415...424) = "<<-'HERE'" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (425...430)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (425...430) = "\#@@1\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "\#@@1\n" - │ └── closing_loc: (430...435) = "HERE\n" - ├── @ InterpolatedXStringNode (location: (436...445)) + │ ├── content_loc: (425...430) = "\#@@1\n" + │ ├── closing_loc: (430...435) = "HERE\n" + │ └── unescaped: "\#@@1\n" + ├── @ XStringNode (location: (436...445)) │ ├── opening_loc: (436...445) = "<<-`HERE`" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (446...450)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (446...450) = "\#@1\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "\#@1\n" - │ └── closing_loc: (450...455) = "HERE\n" - └── @ InterpolatedXStringNode (location: (456...465)) + │ ├── content_loc: (446...450) = "\#@1\n" + │ ├── closing_loc: (450...455) = "HERE\n" + │ └── unescaped: "\#@1\n" + └── @ XStringNode (location: (456...465)) ├── opening_loc: (456...465) = "<<-`HERE`" - ├── parts: (length: 1) - │ └── @ StringNode (location: (466...471)) - │ ├── opening_loc: ∅ - │ ├── content_loc: (466...471) = "\#@@1\n" - │ ├── closing_loc: ∅ - │ └── unescaped: "\#@@1\n" - └── closing_loc: (471...476) = "HERE\n" + ├── content_loc: (466...471) = "\#@@1\n" + ├── closing_loc: (471...476) = "HERE\n" + └── unescaped: "\#@@1\n" diff --git a/test/yarp/snapshots/whitequark/parser_bug_640.txt b/test/yarp/snapshots/whitequark/parser_bug_640.txt index 773d288079..907ada3c47 100644 --- a/test/yarp/snapshots/whitequark/parser_bug_640.txt +++ b/test/yarp/snapshots/whitequark/parser_bug_640.txt @@ -3,12 +3,8 @@ └── statements: @ StatementsNode (location: (0...6)) └── body: (length: 1) - └── @ InterpolatedStringNode (location: (0...6)) + └── @ StringNode (location: (0...6)) ├── opening_loc: (0...6) = "<<~FOO" - ├── parts: (length: 1) - │ └── @ StringNode (location: (7...20)) - │ ├── opening_loc: ∅ - │ ├── content_loc: (7...20) = " baz\\\n qux\n" - │ ├── closing_loc: ∅ - │ └── unescaped: "bazqux\n" - └── closing_loc: (20...24) = "FOO\n" + ├── content_loc: (7...20) = " baz\\\n qux\n" + ├── closing_loc: (20...24) = "FOO\n" + └── unescaped: "bazqux\n" diff --git a/test/yarp/snapshots/whitequark/parser_slash_slash_n_escaping_in_literals.txt b/test/yarp/snapshots/whitequark/parser_slash_slash_n_escaping_in_literals.txt index c76b8f98bb..22f43ce752 100644 --- a/test/yarp/snapshots/whitequark/parser_slash_slash_n_escaping_in_literals.txt +++ b/test/yarp/snapshots/whitequark/parser_slash_slash_n_escaping_in_literals.txt @@ -96,33 +96,21 @@ │ ├── value_loc: (134...138) = "a\\\nb" │ ├── closing_loc: (138...139) = "'" │ └── unescaped: "ab" - ├── @ InterpolatedStringNode (location: (141...150)) + ├── @ StringNode (location: (141...150)) │ ├── opening_loc: (141...150) = "<<-\"HERE\"" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (151...156)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (151...156) = "a\\\nb\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "ab\n" - │ └── closing_loc: (156...161) = "HERE\n" - ├── @ InterpolatedStringNode (location: (162...171)) + │ ├── content_loc: (151...156) = "a\\\nb\n" + │ ├── closing_loc: (156...161) = "HERE\n" + │ └── unescaped: "ab\n" + ├── @ StringNode (location: (162...171)) │ ├── opening_loc: (162...171) = "<<-'HERE'" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (172...177)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (172...177) = "a\\\nb\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "a\\\nb\n" - │ └── closing_loc: (177...182) = "HERE\n" - ├── @ InterpolatedXStringNode (location: (183...192)) + │ ├── content_loc: (172...177) = "a\\\nb\n" + │ ├── closing_loc: (177...182) = "HERE\n" + │ └── unescaped: "a\\\nb\n" + ├── @ XStringNode (location: (183...192)) │ ├── opening_loc: (183...192) = "<<-`HERE`" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (193...198)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (193...198) = "a\\\nb\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "ab\n" - │ └── closing_loc: (198...203) = "HERE\n" + │ ├── content_loc: (193...198) = "a\\\nb\n" + │ ├── closing_loc: (198...203) = "HERE\n" + │ └── unescaped: "ab\n" └── @ XStringNode (location: (204...210)) ├── opening_loc: (204...205) = "`" ├── content_loc: (205...209) = "a\\\nb" diff --git a/test/yarp/snapshots/whitequark/ruby_bug_11989.txt b/test/yarp/snapshots/whitequark/ruby_bug_11989.txt index 4ef8466777..a15435f272 100644 --- a/test/yarp/snapshots/whitequark/ruby_bug_11989.txt +++ b/test/yarp/snapshots/whitequark/ruby_bug_11989.txt @@ -11,15 +11,11 @@ ├── arguments: │ @ ArgumentsNode (location: (2...8)) │ └── arguments: (length: 1) - │ └── @ InterpolatedStringNode (location: (2...8)) + │ └── @ StringNode (location: (2...8)) │ ├── opening_loc: (2...8) = "<<~\"E\"" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (9...19)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (9...19) = " x\\n y\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: "x\n y\n" - │ └── closing_loc: (19...21) = "E\n" + │ ├── content_loc: (9...19) = " x\\n y\n" + │ ├── closing_loc: (19...21) = "E\n" + │ └── unescaped: "x\n y\n" ├── closing_loc: ∅ ├── block: ∅ ├── flags: diff --git a/test/yarp/snapshots/whitequark/ruby_bug_11990.txt b/test/yarp/snapshots/whitequark/ruby_bug_11990.txt index 13e89f8caa..5bdb43c096 100644 --- a/test/yarp/snapshots/whitequark/ruby_bug_11990.txt +++ b/test/yarp/snapshots/whitequark/ruby_bug_11990.txt @@ -13,15 +13,11 @@ │ └── arguments: (length: 1) │ └── @ StringConcatNode (location: (2...12)) │ ├── left: - │ │ @ InterpolatedStringNode (location: (2...6)) + │ │ @ StringNode (location: (2...6)) │ │ ├── opening_loc: (2...6) = "<<~E" - │ │ ├── parts: (length: 1) - │ │ │ └── @ StringNode (location: (13...17)) - │ │ │ ├── opening_loc: ∅ - │ │ │ ├── content_loc: (13...17) = " x\n" - │ │ │ ├── closing_loc: ∅ - │ │ │ └── unescaped: "x\n" - │ │ └── closing_loc: (17...19) = "E\n" + │ │ ├── content_loc: (13...17) = " x\n" + │ │ ├── closing_loc: (17...19) = "E\n" + │ │ └── unescaped: "x\n" │ └── right: │ @ StringNode (location: (7...12)) │ ├── opening_loc: (7...8) = "\"" diff --git a/test/yarp/snapshots/whitequark/slash_newline_in_heredocs.txt b/test/yarp/snapshots/whitequark/slash_newline_in_heredocs.txt index 150325e628..124672b54a 100644 --- a/test/yarp/snapshots/whitequark/slash_newline_in_heredocs.txt +++ b/test/yarp/snapshots/whitequark/slash_newline_in_heredocs.txt @@ -3,21 +3,13 @@ └── statements: @ StatementsNode (location: (0...33)) └── body: (length: 2) - ├── @ InterpolatedStringNode (location: (0...4)) + ├── @ StringNode (location: (0...4)) │ ├── opening_loc: (0...4) = "<<-E" - │ ├── parts: (length: 1) - │ │ └── @ StringNode (location: (5...25)) - │ │ ├── opening_loc: ∅ - │ │ ├── content_loc: (5...25) = " 1 \\\n 2\n 3\n" - │ │ ├── closing_loc: ∅ - │ │ └── unescaped: " 1 2\n 3\n" - │ └── closing_loc: (25...27) = "E\n" - └── @ InterpolatedStringNode (location: (29...33)) + │ ├── content_loc: (5...25) = " 1 \\\n 2\n 3\n" + │ ├── closing_loc: (25...27) = "E\n" + │ └── unescaped: " 1 2\n 3\n" + └── @ StringNode (location: (29...33)) ├── opening_loc: (29...33) = "<<~E" - ├── parts: (length: 1) - │ └── @ StringNode (location: (34...54)) - │ ├── opening_loc: ∅ - │ ├── content_loc: (34...54) = " 1 \\\n 2\n 3\n" - │ ├── closing_loc: ∅ - │ └── unescaped: "1 2\n3\n" - └── closing_loc: (54...56) = "E\n" + ├── content_loc: (34...54) = " 1 \\\n 2\n 3\n" + ├── closing_loc: (54...56) = "E\n" + └── unescaped: "1 2\n3\n" |