Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4553,7 +4553,7 @@ nodes:
- name: opening_loc
type: location?
- name: value_loc
type: location?
type: location
- name: closing_loc
type: location?
- name: unescaped
Expand Down
12 changes: 6 additions & 6 deletions lib/prism/translation/parser/compiler.rb
Original file line number Diff line number Diff line change
Expand Up @@ -165,13 +165,13 @@ def visit_assoc_node(node)
else
parts =
if key.is_a?(SymbolNode)
value_loc = key.value_loc
if value_loc.nil?
value = key.value
if value == ""
[]
elsif value_loc.slice.include?("\n")
string_nodes_from_line_continuations(key.unescaped, value_loc.slice, value_loc.start_offset, key.opening)
elsif value.include?("\n")
string_nodes_from_line_continuations(key.unescaped, value, key.value_loc.start_offset, key.opening)
else
[builder.string_internal([key.unescaped, srange(value_loc)])]
[builder.string_internal([key.unescaped, srange(key.value_loc)])]
end
else
visit_all(key.parts)
Expand Down Expand Up @@ -1775,7 +1775,7 @@ def visit_symbol_node(node)
end
else
parts =
if node.value_loc.nil?
if node.value == ""
[]
elsif node.value.include?("\n")
string_nodes_from_line_continuations(node.unescaped, node.value, node.value_loc.start_offset, node.opening)
Expand Down
12 changes: 7 additions & 5 deletions lib/prism/translation/ripper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3840,12 +3840,14 @@ def visit_super_node(node)
# ^^^^
def visit_symbol_node(node)
with_string_bounds(node) do
if node.value_loc.nil?
bounds(node.location)
on_dyna_symbol(on_string_content)
elsif (opening = node.opening)&.match?(/^%s|['"]:?$/)
if (opening = node.opening)&.match?(/^%s|['"]:?$/)
bounds(node.value_loc)
content = on_string_add(on_string_content, on_tstring_content(node.value))
content = on_string_content

if !(value = node.value).empty?
content = on_string_add(content, on_tstring_content(value))
end

bounds(node.location)
on_dyna_symbol(content)
elsif (closing = node.closing) == ":"
Expand Down
2 changes: 1 addition & 1 deletion rbi/generated/prism/dsl.rbi

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 5 additions & 5 deletions rbi/generated/prism/node.rbi

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions sig/generated/prism/dsl.rbs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

26 changes: 13 additions & 13 deletions sig/generated/prism/node.rbs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion snapshots/hashes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -447,7 +447,7 @@
│ │ │ @ SymbolNode (location: (30,2)-(30,5))
│ │ │ ├── flags: static_literal
│ │ │ ├── opening_loc: (30,2)-(30,3) = "\""
│ │ │ ├── value_loc:
│ │ │ ├── value_loc: (1,0)-(1,0) = ""
│ │ │ ├── closing_loc: (30,3)-(30,5) = "\":"
│ │ │ └── unescaped: ""
│ │ ├── value:
Expand Down
2 changes: 1 addition & 1 deletion snapshots/seattlerb/symbol_empty.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@
└── @ SymbolNode (location: (1,0)-(1,3))
├── flags: newline, static_literal, forced_us_ascii_encoding
├── opening_loc: (1,0)-(1,2) = ":'"
├── value_loc:
├── value_loc: (1,2)-(1,2) = ""
├── closing_loc: (1,2)-(1,3) = "'"
└── unescaped: ""
2 changes: 1 addition & 1 deletion snapshots/spanning_heredoc_newlines.txt
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@
│ │ └── @ SymbolNode (location: (17,4)-(20,0))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (17,4)-(18,0) = "%s\n"
│ │ ├── value_loc:
│ │ ├── value_loc: (18,0)-(18,0) = ""
│ │ ├── closing_loc: (19,0)-(20,0) = "\n"
│ │ └── unescaped: ""
│ ├── closing_loc: ∅
Expand Down
2 changes: 1 addition & 1 deletion snapshots/unparser/corpus/literal/literal.txt
Original file line number Diff line number Diff line change
Expand Up @@ -620,7 +620,7 @@
├── @ SymbolNode (location: (48,0)-(48,3))
│ ├── flags: newline, static_literal
│ ├── opening_loc: (48,0)-(48,2) = ":\""
│ ├── value_loc:
│ ├── value_loc: (48,2)-(48,2) = ""
│ ├── closing_loc: (48,2)-(48,3) = "\""
│ └── unescaped: ""
├── @ RegularExpressionNode (location: (49,0)-(49,5))
Expand Down
Loading