わたなべです。 1.8でArray#indexesを使うと warning: Array#indexes is deprecated; use Array#select と言われますが、Array#selectはRangeを受け付けません。 in `select': cannot convert Range into Integer (TypeError) 後述のパッチのようにすれば受け付けるようになりますが、そもそも Array#indexesのようにrb_ary_aref()を使わなかったのはなぜでしょうか?
Index: array.c =================================================================== RCS file: /src/ruby/array.c,v retrieving revision 1.116 diff -u -1 -r1.116 array.c --- array.c 10 Apr 2003 09:48:15 -0000 1.116 +++ array.c 20 Apr 2003 17:02:39 -0000 @@ -1191,3 +1191,3 @@ for (i=0; i<argc; i++) { - rb_ary_push(result, rb_ary_entry(ary, NUM2LONG(argv[i]))); + rb_ary_push(result, rb_ary_aref(1, argv+i, ary)); }