|
|
#hydra>cat adhoc/case_with_splat.rb
x = case 'z'
when *['a', 'b', 'c', 'd']
"foo"
when *['x', 'y', 'z']
"bar"
end
p x
#hydra>./shotgun/rubinius describe adhoc/case_with_splat.rb
#Path: adhoc/case_with_splat.rb
#Size: 117 bytes
#Sexp:
[:block,
[:newline, 1, "(eval)",
[:lasgn, :x, 0,
[:case, [:str, "z"],
[
[:when,
[:array,
[:many_if,
[
[
[:array, [:str, "a"], [:str, "b"],
[:str, "c"],
[:str, "d"]
], nil
]
], nil
]
],
[:newline, 3, "(eval)", [:str, "foo"]]
],
[:when,
[:array,
[:many_if,
[
[
[:array, [:str, "x"], [:str, "y"],
[:str, "z"]
], nil
]
], nil
]
],
[:newline, 5, "(eval)", [:str, "bar"]]
]
], nil
]
]
],
[:newline, 8, "(eval)",
[:fcall, :p, [:array, [:lvar, :x, 0]]]
]
]
#Normalized Sexp:
[:block,
[:newline, 1, "(eval)",
[:lasgn, :x, 2,
[:case, [:str, "z"],
[
[:when,
[:array,
[:if, [:str, "d"], [:block, nil], nil]
],
[:block,
[:newline, 3, "(eval)", [:str, "foo"]]
]
],
[:when,
[:array,
[:if, [:str, "z"], [:block, nil], nil]
],
[:block,
[:newline, 5, "(eval)", [:str, "bar"]]
]
]
], nil
]
]
],
[:newline, 8, "(eval)",
[:call, [:self], :p, [:array, [:lvar, :x, 2]], {:function=>true}]
]
]
|