allowed interface specification in extending a class. e.g. extend ClassName [Interface1,Interface2,etc] { ... }
This commit is contained in:
parent
a21cee67e0
commit
852349b26c
@ -16,6 +16,16 @@ interface X11able3
|
|||||||
method(#dual) class.
|
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'
|
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 event_loop_sem, event_loop_proc.
|
||||||
var llevent_blocks.
|
var llevent_blocks.
|
||||||
|
|
||||||
|
|
||||||
method(#dual) abc { ^nil }
|
method(#dual) abc { ^nil }
|
||||||
method(#dual,#liberal) def(x, z) { ^nil }
|
method(#dual,#liberal) def(x, z) { ^nil }
|
||||||
###method(#dual) abc3 { ^nil }
|
###method(#dual) abc3 { ^nil }
|
||||||
|
@ -8021,6 +8021,11 @@ static int __compile_class_definition (moo_t* moo, int class_type)
|
|||||||
|
|
||||||
cc->super_oop = cc->self_oop->superclass;
|
cc->super_oop = cc->self_oop->superclass;
|
||||||
MOO_ASSERT (moo, cc->super_oop == moo->_nil || MOO_CLASSOF(moo, cc->super_oop) == moo->_class);
|
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
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user