なかだです。

At Wed, 18 Aug 2004 13:04:56 +0900,
Tanaka Akira wrote in [ruby-dev:24110]:
> > nilだけじゃなくてSPECIAL CONST全般ですね。単純に考えるとこれで
> > いいのではないかと思うのですが。
> 
> test-all で、次のエラーが出るようになったのですが、この副作用は予期さ
> れたものでしょうか?

特異クラスを持てないFixnumやSymbolでも、インスタンス変数は持て
ることを忘れてました。

[ruby-dev:24105]はなしにして、これでどうでしょうか。


Index: eval.c =================================================================== RCS file: /cvs/ruby/src/ruby/eval.c,v retrieving revision 1.686 diff -u -2 -p -r1.686 eval.c --- eval.c 2 Aug 2004 08:52:53 -0000 1.686 +++ eval.c 18 Aug 2004 13:08:08 -0000 @@ -6282,5 +6282,5 @@ eval_under(under, self, src, file, line) int line; { - VALUE args[4]; + VALUE args[4], cbase = under; if (ruby_safe_level >= 4) { @@ -6294,5 +6294,8 @@ eval_under(under, self, src, file, line) args[2] = (VALUE)file; args[3] = (VALUE)line; - return exec_under(eval_under_i, under, under, args); + if (NIL_P(cbase) && (self == Qtrue || !RTEST(self))) { + cbase = CLASS_OF(self); + } + return exec_under(eval_under_i, under, cbase, args); }
-- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦