From: "akira yamada / やまだあきら" Date: 2006-04-18T21:03:36+09:00 Subject: [ruby-dev:28583] Re: OP_ASGN1 and OP_ASGN2 allow calling of private operators and problem with splat 以下は[ruby-core:07366]にある再現コードです。 Dominik Bathon wrote: > OP_ASGN1: > > irb(main):001:0> class A; def method_missing(*a); p a; 1; end; end > => nil > irb(main):002:0> a=A.new > => # > irb(main):003:0> a[0,*[1,2,3]] > [:[], 0, 1, 2, 3] > => 1 > irb(main):004:0> a[0,*[1,2,3]]=3 > [:[]=, 0, 1, 2, 3, 3] > => 3 > irb(main):005:0> a[0,*[1,2,3]]+=3 > [:[], [0, 1, 2, 3]] > [:[]=, [0, 1, 2, 3], 4] > => 4 trunkとruby_1_8の最新で この中の最後の a[0,*[1,2,3]]+=3 がSEGVします。 -- やまだあきら