Yuguiです。

Fixnumのcoerceする演算は、エイリアス経由で使用すると例 
外を生じるようです。
次のコードは1.8では"successfully coerced"と出力し 
ますが、trunkではNoMethodErrorを投げます。

 >>
class CoerceExample
   def coerce(operand)
     return self, operand
   end
   def +(rhs)
     p 'successfully coerced'
   end
end

class Fixnum
   alias plus +
end

1.plus CoerceExample.new
<<

ruby 1.9.0 (2008-01-14 revision 0) [i686-darwin9.1.0]
coerce-bin.rb:14:in `plus': super: no superclass method `plus' for  
#<CoerceExample:0x1a6454> (NoMethodError)
         from coerce-bin.rb:14:in `<main>'



rb_num_coerce_binの実装において、
rb_frame_this_func()がエイリアスのほうの名前(この場 
合、:plus)を返すためのようです。

coerceの意味から言って呼び出し時の名前を使うというのはもっと 
もらしい気もする一方、
「aliasすると挙動が変わるメソッド」というのはちょっと異 
様です。

rb_frame_this_funcを直すべきなのか、rb_num_coerce_binを 
直すべきなのかわかりませんが、
これのために現在1.9では 1 ** Rational(1, 2) が動 
きません。

-- 
Yugui
yugui / yugui.sakura.ne.jp
http://idm.s9.xrea.com