summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/vm.c10
-rw-r--r--test/t/module.rb22
2 files changed, 23 insertions, 9 deletions
diff --git a/src/vm.c b/src/vm.c
index 3a149258f..bd99e9013 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -897,12 +897,7 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self)
else {
ci->argc = n;
}
- if (c->tt == MRB_TT_ICLASS) {
- ci->target_class = c->c;
- }
- else {
- ci->target_class = c;
- }
+ ci->target_class = c;
ci->pc = pc + 1;
ci->acc = a;
@@ -1034,9 +1029,6 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self)
if (!m) {
mid = mrb_intern2(mrb, "method_missing", 14);
m = mrb_method_search_vm(mrb, &c, mid);
- if (!m) {
- printf("c=%p mid=%s\n", c, mrb_sym2name(mrb, ci->mid));
- }
if (n == CALL_MAXARGS) {
mrb_ary_unshift(mrb, regs[a+1], mrb_symbol_value(ci->mid));
}
diff --git a/test/t/module.rb b/test/t/module.rb
index b192361ca..8655db391 100644
--- a/test/t/module.rb
+++ b/test/t/module.rb
@@ -481,3 +481,25 @@ assert('Module#inspect') do
assert_equal 'Test4to_sModules', Test4to_sModules.inspect
end
+
+assert('Issue 1467') do
+ module M1
+ def initialize()
+ super()
+ end
+ end
+
+ class C1
+ include M1
+ def initialize()
+ super()
+ end
+ end
+
+ class C2
+ include M1
+ end
+
+ C1.new
+ C2.new
+end