From: nobu.nakada@... Date: 2002-08-02T12:53:17+09:00 Subject: [ruby-dev:17884] Re: cbase in module_eval {...} なかだです。 At Fri, 2 Aug 2002 11:02:39 +0900, K.Kosako wrote: > > |あたりの変更が原因なのではないかと思うのですが。仕様変更なら > > |マニュアルに反映させます。ML で関連の話題は見つけられません > > |でした。 > > > > 仕様変更です。理由はなんだったかな。定数のスコープを静的にし > > たかったとかだったような。ただ、これが最高と思ってるわけでも > > ないので、もっと良いアイディアがあれば聞きたいです。 > > 暑さのせいでアイディアは浮かばないのですが、 > 警告が出るのは変な気がします。 というより、同じスコープで代入されてるのに見付からないのは変と いうことでしょうか。 こうかな。 Index: eval.c =================================================================== RCS file: /cvs/ruby/src/ruby/eval.c,v retrieving revision 1.308 diff -u -2 -p -r1.308 eval.c --- eval.c 31 Jul 2002 05:18:43 -0000 1.308 +++ eval.c 2 Aug 2002 03:21:51 -0000 @@ -2933,5 +2933,5 @@ rb_eval(self, n) } result = rb_eval(self, node->nd_value); - rb_const_set(ruby_class, node->nd_vid, result); + rb_const_set(ruby_cbase, node->nd_vid, result); break; @@ -3304,5 +3304,5 @@ rb_eval(self, n) rb_set_class_path(klass,ruby_class,rb_id2name(node->nd_cname)); rb_class_inherited(super, klass); - rb_const_set(ruby_class, node->nd_cname, klass); + rb_const_set(ruby_cbase, node->nd_cname, klass); } if (ruby_wrapper) { @@ -3340,5 +3340,5 @@ rb_eval(self, n) else { module = rb_define_module_id(node->nd_cname); - rb_const_set(ruby_class, node->nd_cname, module); + rb_const_set(ruby_cbase, node->nd_cname, module); rb_set_class_path(module,ruby_class,rb_id2name(node->nd_cname)); } @@ -3984,5 +3984,5 @@ assign(self, lhs, val, pcall) case NODE_CDECL: - rb_const_set(ruby_class, lhs->nd_vid, val); + rb_const_set(ruby_cbase, lhs->nd_vid, val); break; -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦