diff options
| author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2000-11-20 07:31:55 +0000 |
|---|---|---|
| committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2000-11-20 07:31:55 +0000 |
| commit | 676e14b8437e49f54de307d55261474812ce4174 (patch) | |
| tree | 5844d64e2d5e0b5a7b9dfc259037778db84b12aa /eval.c | |
| parent | 9b82cee79ef2577f943c3fd43fd414449a0ddb82 (diff) | |
| download | ruby-676e14b8437e49f54de307d55261474812ce4174.tar.gz ruby-676e14b8437e49f54de307d55261474812ce4174.tar.xz ruby-676e14b8437e49f54de307d55261474812ce4174.zip | |
matz
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1049 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
| -rw-r--r-- | eval.c | 14 |
1 files changed, 8 insertions, 6 deletions
@@ -2594,17 +2594,19 @@ rb_eval(self, n) rb_const_set(ruby_class, node->nd_vid, result); break; - case NODE_CVASGN2: - result = rb_eval(self, node->nd_value); - rb_cvar_set_singleton(self, node->nd_vid, result); - break; - case NODE_CVDECL: if (NIL_P(ruby_cbase)) { rb_raise(rb_eTypeError, "no class/module to define class variable"); } + if (!FL_TEST(ruby_cbase, FL_SINGLETON)) { + result = rb_eval(self, node->nd_value); + rb_cvar_declare(ruby_cbase, node->nd_vid, result); + break; + } + /* fall through */ + case NODE_CVASGN2: result = rb_eval(self, node->nd_value); - rb_cvar_declare(ruby_cbase, node->nd_vid, result); + rb_cvar_set_singleton(self, node->nd_vid, result); break; case NODE_LVAR: |
