diff options
author | Kevin Newton <kddnewton@gmail.com> | 2024-03-05 16:46:50 -0500 |
---|---|---|
committer | git <svn-admin@ruby-lang.org> | 2024-03-06 16:42:46 +0000 |
commit | cb116420816163bd7b271313b7b4a18d3d5b0638 (patch) | |
tree | 27a8c94f1a0d662e1a8cb216e993e9abd5a658a5 /lib/prism/translation/ripper.rb | |
parent | 47daf71ac0c321072083b2bfd64b851cbe0d1d71 (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.rb | 14 |
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 |