Skip to content

Commit

Permalink
Revert "Properly destructure procarg0 in parser translation"
Browse files Browse the repository at this point in the history
This reverts commit 823e931.
  • Loading branch information
kddnewton committed Jun 3, 2024
1 parent 823e931 commit d8ae19d
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 14 deletions.
27 changes: 13 additions & 14 deletions lib/prism/translation/parser/compiler.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1390,12 +1390,12 @@ def visit_parameters_node(node)

if node.requireds.any?
node.requireds.each do |required|
params <<
if required.is_a?(RequiredParameterNode)
visit(required)
else
required.accept(copy_compiler(in_destructure: true))
end
if required.is_a?(RequiredParameterNode)
params << visit(required)
else
compiler = copy_compiler(in_destructure: true)
params << required.accept(compiler)
end
end
end

Expand All @@ -1404,12 +1404,12 @@ def visit_parameters_node(node)

if node.posts.any?
node.posts.each do |post|
params <<
if post.is_a?(RequiredParameterNode)
visit(post)
else
post.accept(copy_compiler(in_destructure: true))
end
if post.is_a?(RequiredParameterNode)
params << visit(post)
else
compiler = copy_compiler(in_destructure: true)
params << post.accept(compiler)
end
end
end

Expand Down Expand Up @@ -2004,8 +2004,7 @@ def visit_block(call, block)
token(parameters.opening_loc),
if procarg0?(parameters.parameters)
parameter = parameters.parameters.requireds.first
visited = parameter.is_a?(RequiredParameterNode) ? visit(parameter) : parameter.accept(copy_compiler(in_destructure: true))
[builder.procarg0(visited)].concat(visit_all(parameters.locals))
[builder.procarg0(visit(parameter))].concat(visit_all(parameters.locals))
else
visit(parameters)
end,
Expand Down
6 changes: 6 additions & 0 deletions test/prism/ruby/parser_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,11 @@ class ParserTest < TestCase
"spanning_heredoc.txt",
"spanning_heredoc_newlines.txt",
"unescaping.txt",
"seattlerb/block_decomp_anon_splat_arg.txt",
"seattlerb/block_decomp_arg_splat_arg.txt",
"seattlerb/block_decomp_arg_splat.txt",
"seattlerb/block_decomp_splat.txt",
"seattlerb/block_paren_splat.txt",
"seattlerb/bug190.txt",
"seattlerb/heredoc_nested.txt",
"seattlerb/heredoc_with_carriage_return_escapes_windows.txt",
Expand All @@ -64,6 +69,7 @@ class ParserTest < TestCase
"seattlerb/pctW_lineno.txt",
"seattlerb/regexp_esc_C_slash.txt",
"seattlerb/TestRubyParserShared.txt",
"unparser/corpus/literal/block.txt",
"unparser/corpus/literal/literal.txt",
"unparser/corpus/literal/pattern.txt",
"unparser/corpus/semantic/dstr.txt",
Expand Down

0 comments on commit d8ae19d

Please sign in to comment.