# File lib/unified_ruby.rb, line 40
  def rewrite_block_pass exp
    case exp.size
    when 2 then
      _, block = exp
      case block.first
      when :lasgn then
        block[-1] = "&#{block[-1]}""&#{block[-1]}"
        exp = block
      else
        raise "huh?: #{block.inspect}"
      end
    when 3 then
      _, block, recv = exp
      case recv.first
      when :super then
        recv << s(:block_pass, block)
        exp = recv
      when :call then
        recv.last << s(:block_pass, block)
        exp = recv
      when :masgn then
        block[-1] = "&#{block[-1]}""&#{block[-1]}"
        recv.last << block
        exp = recv
      else
        raise "huh?: #{recv.inspect}"
      end
    end

    exp
  end