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

@ -446,6 +446,10 @@ typedef enum moo_gcfin_t moo_gcfin_t;
(((moo_oow_t)(r)) << MOO_OBJ_FLAGS_TRAILER_SHIFT) \
)
#define MOO_OBJ_FLAGS_KERNEL_USER 0
#define MOO_OBJ_FLAGS_KERNEL_IMMATURE 1
#define MOO_OBJ_FLAGS_KERNEL_MATURE 2
#define MOO_OBJ_HEADER \
moo_oow_t _flags; \
moo_oow_t _size; \
@ -1684,6 +1688,7 @@ enum moo_synerrnum_t
MOO_SYNERR_NAMEDUPL, /* duplicate name */
MOO_SYNERR_NAMEUNDEF, /* undefined name */
MOO_SYNERR_CLASSCONTRA, /* contradictory class */
MOO_SYNERR_CLASSNCIFCE, /* class not conforming to interface */
MOO_SYNERR_NPINSTSIZEINVAL, /* invalid non-pointer instance size */
MOO_SYNERR_INHERITBANNED, /* prohibited inheritance */
MOO_SYNERR_VARDCLBANNED, /* variable declaration not allowed */