summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/vm.c7
-rw-r--r--test/t/module.rb22
2 files changed, 23 insertions, 6 deletions
diff --git a/src/vm.c b/src/vm.c
index 08c04e7b1..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;
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