Actions
Bug #608
closedduplicated when clause
Description
=begin
遠藤です。
when 節に同じ値があるときの挙動が 1.8 と 1.9 で異なるようです。
$ ruby18 -e '
case 1
when 1 then p :foo
when 1 then p :bar
end
'
:foo
$ ruby19 -e '
case 1
when 1 then p :foo
when 1 then p :bar
end
'
:bar
1.9 のバグではないかと思います。
以下のパッチをコミットしてもいいでしょうか。
Index: compile.c¶
--- compile.c (revision 19604)
+++ compile.c (working copy)
@@ -1349,7 +1349,9 @@
rb_compile_error(RSTRING_PTR(iseq->filename), iobj->line_no,
"unknown label");
}
-
rb_hash_aset(map, obj, INT2FIX(lobj->position - (pos+len)));
-
if (!st_lookup(rb_hash_tbl(map), obj, 0)) {
-
rb_hash_aset(map, obj, INT2FIX(lobj->position - (pos+len)));
-
} } generated_iseq[pos + 1 + j] = map; iseq_add_mark_object(iseq, map);
--
Yusuke ENDOH mame@tsg.ne.jp
=end
Actions
Like0
Like0Like0