diff --git a/moo/kernel/X11.moo b/moo/kernel/X11.moo index 8f4c59f..22638b7 100644 --- a/moo/kernel/X11.moo +++ b/moo/kernel/X11.moo @@ -16,6 +16,16 @@ interface X11able3 method(#dual) class. } +class QQQ(Object) +{ +} + +extend QQQ [X11able] +{ + +method(#dual) abc { ^nil } +method(#dual,#liberal) def(x, z) { ^nil } +} class X11(Object) [X11able,selfns.X11able3] from 'x11' { @@ -32,6 +42,7 @@ class X11(Object) [X11able,selfns.X11able3] from 'x11' var event_loop_sem, event_loop_proc. var llevent_blocks. + method(#dual) abc { ^nil } method(#dual,#liberal) def(x, z) { ^nil } ###method(#dual) abc3 { ^nil } diff --git a/moo/lib/comp.c b/moo/lib/comp.c index 0e67caa..8e0465a 100644 --- a/moo/lib/comp.c +++ b/moo/lib/comp.c @@ -8021,6 +8021,11 @@ static int __compile_class_definition (moo_t* moo, int class_type) cc->super_oop = cc->self_oop->superclass; MOO_ASSERT (moo, cc->super_oop == moo->_nil || MOO_CLASSOF(moo, cc->super_oop) == moo->_class); + + if (TOKEN_TYPE(moo) == MOO_IOTOK_LBRACK) + { + if (process_class_interfaces(moo) <= -1) return -1; + } } else {