From 090356ec3b237e75cd4e6213685675fd092e6816 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Thu, 17 Jun 2021 16:35:39 +0900 Subject: variable.c: skip prepended module for constant lookup. ```ruby module M FOO = 'm' end class A FOO = 'a' prepend M end class B < A def foo p FOO end end B.new.foo # should print `m` not `a` ``` --- src/variable.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/variable.c b/src/variable.c index 646353bfd..e1200bc3d 100644 --- a/src/variable.c +++ b/src/variable.c @@ -775,7 +775,7 @@ const_get(mrb_state *mrb, struct RClass *base, mrb_sym sym) L_RETRY: while (c) { - if (c->iv) { + if (!MRB_FLAG_TEST(c, MRB_FL_CLASS_IS_PREPENDED) && c->iv) { if (iv_get(mrb, c->iv, sym, &v)) return v; } -- cgit v1.2.3