diff --git a/src/variable.c b/src/variable.c index be27f0eda..3088783ec 100644 --- a/src/variable.c +++ b/src/variable.c @@ -785,7 +785,7 @@ L_RETRY: c = c->super; if (!skip && c == mrb->object_class) break; } - if (!retry && base->tt == MRB_TT_MODULE) { + if (!retry && base->tt == MRB_TT_MODULE && skip) { c = mrb->object_class; retry = TRUE; goto L_RETRY; diff --git a/test/t/syntax.rb b/test/t/syntax.rb index 7de861132..538c97418 100644 --- a/test/t/syntax.rb +++ b/test/t/syntax.rb @@ -211,6 +211,7 @@ assert('Nested const reference') do end assert_equal "hello world", Syntax4Const::CONST1 assert_equal "hello world", Syntax4Const::Const2.new.const1 + assert_raise(NameError) { Syntax4Const::Object } end assert('Abbreviated variable assignment as returns') do