diff options
| author | Blaž Hrastnik <[email protected]> | 2015-07-10 22:01:07 +0200 |
|---|---|---|
| committer | Blaž Hrastnik <[email protected]> | 2015-07-13 14:04:42 +0200 |
| commit | 97529c2a9a7b75a838234a420bbe2c6dc59c56ba (patch) | |
| tree | 363849b9c60edcff65c39c33afab7cf1f789047e /src/class.c | |
| parent | 2e617e37e134b428ce7a979446cc2d768d1cf2fe (diff) | |
| download | mruby-97529c2a9a7b75a838234a420bbe2c6dc59c56ba.tar.gz mruby-97529c2a9a7b75a838234a420bbe2c6dc59c56ba.zip | |
Comment in a refactor to match MRI, but that fails 320 tests.
Diffstat (limited to 'src/class.c')
| -rw-r--r-- | src/class.c | 16 |
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; |
