Rubyで遊んだ日々の記録。あくまで著者視点の私的な記録なので、正確さを求めないように。
Rubyと関係ない話題にはその旨注記しているはず。なので、一見関係無いように見える話題もどこかで関係あるのかもしれません。または、注記の書き忘れかもしれません...
_ zsuperというのは引数リストのないsuper
のこと。
リファレンスマニュアルによると、zsuperの場合は現在のメソッドの引数がそのまま引き渡されます
ということになっている。
_ 昨日1.8で直したのはこの部分で、自メソッドがオプション引数とレスト引数(という名前でいいだろうか)の両方を持つ場合にzsuperを実行すると引数が正しく渡されないというものだった。
_ 直してcommitの許可が出るまでの間に少し悩んでいたのだが、今回のバグ修正の結果も、1.8.4と互換性がない部分がある。
# test1.rb class Foo def foo(*a) p a end end class Bar < Foo def foo(a = 0, *b) super(a, *b) super end end Bar.new.foo
% ruby-1.8.4 test1.rb [0] [] % ruby-1.8.5 test1.rb [0] [] % ruby-1.8 test1.rb [0] [0]
となるのである。
これを入れちゃったのはまずかったかなあ。
# test2.rb class Foo def foo(*a) p a end end class Bar < Foo def foo(a = 0) super(a) super end end Bar.new.foo
% ruby-1.8.4 test2.rb [0] [0] % ruby-1.8.5 test2.rb [0] [0] % ruby-1.8 test2.rb [0] [0]
_ eval.cだけにしとくつもりがparse.yにまで手を出してしまった。
もちろん、もう飽きた。
被捕捉アンテナ類
[\ay antenna (testing)]
[Ant]
[Antenna-Julia]
[LayserあんてなV2]
[nAntenna]
[nuance de Antenna]
[Rabbit's Antenna]
[Read List]
[Ruby hotlinks 五月雨版 (るるりん。)]
[してたま (私的アンテナ with たまてばこ)]
[ただのあんてな]
[ちゃらんぽらん]
[でこぽんリンク]
[なよろアンテナ]
[にっきトレーサー]
[偽善者あんてな - 2nd season -]
[湘南日記放送局(SDB)]
[はてなの各アンテナ]