class Prism::Translation::Parser::Compiler

def visit_block(call, block)

Visit a block node on a call.
def visit_block(call, block)
  if block
    parameters = block.parameters
    builder.block(
      call,
      token(block.opening_loc),
      if parameters.nil?
        builder.args(nil, [], nil, false)
      elsif parameters.is_a?(NumberedParametersNode)
        visit(parameters)
      else
        builder.args(
          token(parameters.opening_loc),
          if procarg0?(parameters.parameters)
            parameter = parameters.parameters.requireds.first
            [builder.procarg0(visit(parameter))].concat(visit_all(parameters.locals))
          else
            visit(parameters)
          end,
          token(parameters.closing_loc),
          false
        )
      end,
      block.body&.accept(copy_compiler(forwarding: parameters.is_a?(NumberedParametersNode) ? [] : find_forwarding(parameters&.parameters))),
      token(block.closing_loc)
    )
  else
    call
  end
end