yarv-dev:168
From: SASADA Koichi <ko1 atdot.net>
Date: Wed, 1 Sep 2004 12:09:06 +0900
Subject: [yarv-dev:168] eval in rescue clause
ささだです。 現在 rescue 節の引数(?)は、 begin raise rescue A, B, C ... end のとき、 1. A, B, C を評価 2. A===$!, ... で、ひっかかったら body部実行に移る となっていますが、これを 1. A を評価 2. C言語レベルで rb_obj_is_kind_of($!, A) が真なら bodyへ 3. 繰り返し(1へ戻る) にしてもいいでしょうか。ポイントは、 1. A でひっかかると B, C は評価されない 2. === が再定義されていても無視 1 はたぶん実装の都合でこうなってると思うので問題ないんじゃ ないかと思います。case/when の仕様とも違いますし。 2 は、どうでしょうね。そもそも、A,B,C はそれぞれ Module じゃないといけない、という制限が付いています。それを考えると、 いちいち === を呼ぶメリットはあまりないんじゃないかと思います。 -- ML: yarv-dev quickml.atdot.net 使い方: http://www.atdot.net/~ko1/quickml
-> 168 2004-09-01 12:09 [ko1 atdot.net ] eval in rescue clause 171 2004-09-06 00:25 ┗[matz ruby-lang.org ] 172 2004-09-08 17:23 ┗[ko1 atdot.net ] 175 2004-09-08 18:00 ┗[matz ruby-lang.org ] 177 2004-09-08 18:03 ┗[ko1 atdot.net ]