summaryrefslogtreecommitdiff
path: root/lib/prism/translation/ripper.rb
diff options
context:
space:
mode:
authorKevin Newton <kddnewton@gmail.com>2024-03-05 16:46:50 -0500
committergit <svn-admin@ruby-lang.org>2024-03-06 16:42:46 +0000
commitcb116420816163bd7b271313b7b4a18d3d5b0638 (patch)
tree27a8c94f1a0d662e1a8cb216e993e9abd5a658a5 /lib/prism/translation/ripper.rb
parent47daf71ac0c321072083b2bfd64b851cbe0d1d71 (diff)
[ruby/prism] Refactor symbol ripper translation
https://github.com/ruby/prism/commit/356c97c736
Diffstat (limited to 'lib/prism/translation/ripper.rb')
-rw-r--r--lib/prism/translation/ripper.rb14
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/prism/translation/ripper.rb b/lib/prism/translation/ripper.rb
index 6b824255a0..339b42c003 100644
--- a/lib/prism/translation/ripper.rb
+++ b/lib/prism/translation/ripper.rb
@@ -2165,7 +2165,19 @@ module Prism
# :foo
# ^^^^
def visit_symbol_node(node)
- visit_symbol_literal_node(node)
+ if (opening = node.opening) && opening.match?(/^%s|['"]$/)
+ bounds(node.value_loc)
+ content = on_string_content
+
+ if !(value = node.value).empty?
+ content = on_string_add(content, on_tstring_content(value))
+ end
+
+ on_dyna_symbol(content)
+ else
+ bounds(node.value_loc)
+ on_symbol_literal(on_symbol(visit_token(node.value)))
+ end
end
# true