added moo_findmethodinclasschain()

added MOO_SYNERR_CLASSNCIFCE
finished implementing interface conformance check primitively
This commit is contained in:
hyunghwan.chung
2018-10-12 09:09:45 +00:00
parent a6a2cb2d16
commit 18b270529c
10 changed files with 210 additions and 125 deletions

View File

@ -1,8 +1,14 @@
interface ClassInterface
{
method name.
method superclass.
}
##
## the Class object should be a variable-pointer object because
## it needs to accomodate class instance variables.
##
class(#pointer,#limited) Class(Apex)
class(#pointer,#limited) Class(Apex) [ClassInterface]
{
var spec, selfspec, superclass, subclasses, name, modname.
var instvars, classinstvars, classvars, pooldics.

View File

@ -3,7 +3,7 @@
interface X11able
{
method(#dual) abc.
method(#dual) def.
method(#dual,#liberal) def(x, y).
}
interface X11able2
{
@ -13,7 +13,7 @@ interface X11able2
interface X11able3
{
method(#dual) abc3.
method(#dual) class.
}
@ -33,8 +33,8 @@ class X11(Object) [X11able,selfns.X11able3] from 'x11'
var llevent_blocks.
method(#dual) abc { ^nil }
method(#dual) def { ^nil }
method(#dual) abc3 { ^nil }
method(#dual,#liberal) def(x, z) { ^nil }
###method(#dual) abc3 { ^nil }
interface X11able3
{

View File

@ -80,6 +80,7 @@ class MyObject(Object)
'duplicate name'
'undefined name'
'contradictory class definition'
'class not conforming to interface'
'invalid non-pointer instance size'
'prohibited inheritance'
'variable declaration not allowed'