* eval.c (rb_eval): set constant in cbase scope.

* eval.c (assign): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2684 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2002-08-03 12:27:33 +00:00
parent ebe2d10c43
commit dfa40855bd
2 changed files with 10 additions and 4 deletions

View File

@ -1,3 +1,9 @@
Sat Aug 3 21:23:56 2002 Nobuyoshi Nakada <nobu.nokada@softhome.net>
* eval.c (rb_eval): set constant in cbase scope.
* eval.c (assign): ditto.
Fri Aug 2 09:12:32 2002 Minero Aoki <aamine@loveruby.net>
* ext/strscan/strscan.c: follow allocation framework.

8
eval.c
View File

@ -2932,7 +2932,7 @@ rb_eval(self, n)
rb_raise(rb_eTypeError, "no class/module to define constant");
}
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;
case NODE_CVDECL:
@ -3303,7 +3303,7 @@ rb_eval(self, n)
klass = rb_define_class_id(node->nd_cname, super);
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) {
rb_extend_object(klass, ruby_wrapper);
@ -3339,7 +3339,7 @@ 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));
}
if (ruby_wrapper) {
@ -3983,7 +3983,7 @@ assign(self, lhs, val, pcall)
break;
case NODE_CDECL:
rb_const_set(ruby_class, lhs->nd_vid, val);
rb_const_set(ruby_cbase, lhs->nd_vid, val);
break;
case NODE_CVDECL: