Hi,

irb(main):001:0> class Fixnum;private :*;end
=> Fixnum
irb(main):002:0> 2*2
NoMethodError: private method `*' called for 2:Fixnum
         from (irb):2
         from :0
irb(main):003:0> a=[1,2,3]
=> [1, 2, 3]
irb(main):004:0> a[2]*=5
=> 15
irb(main):005:0> a
=> [1, 2, 15]
irb(main):006:0> class A;attr_accessor :a;end
=> nil
irb(main):007:0> a=A.new
=> #<A:0xb7f20b24>
irb(main):008:0> a.a=2
=> 2
irb(main):009:0> a.a*=3
=> 6
irb(main):010:0> a.a
=> 6

This is not really a problem, but I think it should be changed.

A more serious problem is that splatting doesn't work as expected with  
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
=> #<A:0xb7ed97dc>
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

For the last command I would expect:

irb(main):005:0> a[0,*[1,2,3]]+=3
[:[], 0, 1, 2, 3]
[:[]=, 0, 1, 2, 3, 4]
=> 4

(This is all in ruby 1.8.4)

Dominik