diff options
author | Kevin Newton <kddnewton@gmail.com> | 2024-03-05 08:15:51 -0500 |
---|---|---|
committer | git <svn-admin@ruby-lang.org> | 2024-03-06 16:42:43 +0000 |
commit | 1d5f05bd53e72e9fe8259407eabd125925bfe7fc (patch) | |
tree | 363139b2f65b9b1484389b86f4fcc3bf44890466 /lib/prism/translation/ripper.rb | |
parent | 17111084d4f01840db3d0c76c250ff4430be73bf (diff) |
[ruby/prism] Implement for loop for ripper translation
https://github.com/ruby/prism/commit/2d635ce46b
Diffstat (limited to 'lib/prism/translation/ripper.rb')
-rw-r--r-- | lib/prism/translation/ripper.rb | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/lib/prism/translation/ripper.rb b/lib/prism/translation/ripper.rb index e50aec1d15..5f199feeba 100644 --- a/lib/prism/translation/ripper.rb +++ b/lib/prism/translation/ripper.rb @@ -983,13 +983,24 @@ module Prism # for foo in bar do end # ^^^^^^^^^^^^^^^^^^^^^ def visit_for_node(node) - raise NoMethodError, __method__ + index = visit(node.index) + collection = visit(node.collection) + statements = + if node.statements.nil? + bounds(node.location) + on_stmts_add(on_stmts_new, on_void_stmt) + else + visit(node.statements) + end + + bounds(node.location) + on_for(index, collection, statements) end # def foo(...); bar(...); end # ^^^ def visit_forwarding_arguments_node(node) - + raise NoMethodError, __method__ end # def foo(...); end |