summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorBlaž Hrastnik <[email protected]>2015-07-10 22:01:07 +0200
committerBlaž Hrastnik <[email protected]>2015-07-13 14:04:42 +0200
commit97529c2a9a7b75a838234a420bbe2c6dc59c56ba (patch)
tree363849b9c60edcff65c39c33afab7cf1f789047e /src
parent2e617e37e134b428ce7a979446cc2d768d1cf2fe (diff)
downloadmruby-97529c2a9a7b75a838234a420bbe2c6dc59c56ba.tar.gz
mruby-97529c2a9a7b75a838234a420bbe2c6dc59c56ba.zip
Comment in a refactor to match MRI, but that fails 320 tests.
Diffstat (limited to 'src')
-rw-r--r--src/class.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/class.c b/src/class.c
index 9f21ae395..ca4582041 100644
--- a/src/class.c
+++ b/src/class.c
@@ -776,11 +776,25 @@ include_module_at(mrb_state *mrb, struct RClass *c, struct RClass *ins_pos, stru
while (m) {
struct RClass *p = c, *ic;
int superclass_seen = 0;
-
+
+ //if (m->origin != m)
+ // goto skip;
if (c->mt && c->mt == m->mt) {
mrb_raise(mrb, E_ARGUMENT_ERROR, "cyclic include detected");
}
while (p) {
+ /*if (p->tt == MRB_TT_ICLASS) {
+ if (!superclass_seen) {
+ ins_pos = p; // move insert point
+ }
+ goto skip;
+ } else if (p->tt == MRB_TT_CLASS) {
+ if (p->mt == m->mt) {
+ if (!search_super) break;
+ superclass_seen = 1;
+ }
+ }*/
+ //
if (c != p && p->tt == MRB_TT_CLASS) {
if (!search_super) break;
superclass_seen = 1;