From 3bd2c56dae7dd8e319f563038f8ab8fa08db86cf Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Tue, 13 Dec 2022 10:49:14 +0900 Subject: [PATCH] vm.c (check_target_class): raise error if target_class is NULL It fixes a bug that instance_eval for immediate objects defines methods in Object, instead of raising error. ```ruby 1.instance_eval do def foo p :foo end end ``` --- src/vm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vm.c b/src/vm.c index 6f6b9b001..b9ff95e5d 100644 --- a/src/vm.c +++ b/src/vm.c @@ -1290,7 +1290,7 @@ check_target_class(mrb_state *mrb) { struct RClass *target = CI_TARGET_CLASS(mrb->c->ci); if (!target) { - return mrb->object_class; + mrb_raise(mrb, E_TYPE_ERROR, "no class/module to add method"); } return target; }