X-Git-Url: http://nitlanguage.org diff --git a/src/modelize/modelize_class.nit b/src/modelize/modelize_class.nit index e36a3ae..8164668 100644 --- a/src/modelize/modelize_class.nit +++ b/src/modelize/modelize_class.nit @@ -274,10 +274,19 @@ redef class ModelBuilder if mclassdef.is_intro and objectclass != null then if mclass.kind == extern_kind and mclass.name != "Pointer" then # it is an extern class, but not a Pointer + if pointerclass == null then + error(nclassdef, "Error: `Pointer` must be defined first.") + return + end if specpointer then supertypes.add pointerclass.mclass_type - else if specobject and mclass.name != "Object" then - # it is a standard class without super class (but is not Object) - supertypes.add objectclass.mclass_type + else if specobject then + if mclass.name != "Object" then + # it is a standard class without super class (but is not Object) + supertypes.add objectclass.mclass_type + else if mclass.kind != interface_kind then + error(nclassdef, "Error: `Object` must be an {interface_kind}.") + return + end end end