From: Jean Privat Date: Fri, 3 Apr 2015 02:36:57 +0000 (+0700) Subject: modelbuilder: promote `get_mclass_by_name` from typing X-Git-Tag: v0.7.4~40^2~9 X-Git-Url: http://nitlanguage.org modelbuilder: promote `get_mclass_by_name` from typing Signed-off-by: Jean Privat --- diff --git a/src/modelbuilder_base.nit b/src/modelbuilder_base.nit index f01fbd8..93423df 100644 --- a/src/modelbuilder_base.nit +++ b/src/modelbuilder_base.nit @@ -81,6 +81,16 @@ class ModelBuilder return res end + # Like `try_get_mclass_by_name` but display an error message when the class is not found + fun get_mclass_by_name(node: ANode, mmodule: MModule, name: String): nullable MClass + do + var mclass = try_get_mclass_by_name(node, mmodule, name) + if mclass == null then + error(node, "Type Error: missing primitive class `{name}'.") + end + return mclass + end + # Return a property named `name` on the type `mtype` visible in the module `mmodule`. # Visibility in modules is correctly handled. # Protected properties are returned (it is up to the caller to check and reject protected properties). diff --git a/src/semantize/typing.nit b/src/semantize/typing.nit index 6a6d943..43e8ccb 100644 --- a/src/semantize/typing.nit +++ b/src/semantize/typing.nit @@ -246,10 +246,7 @@ private class TypeVisitor fun get_mclass(node: ANode, name: String): nullable MClass do - var mclass = modelbuilder.try_get_mclass_by_name(node, mmodule, name) - if mclass == null then - self.modelbuilder.error(node, "Type Error: missing primitive class `{name}'.") - end + var mclass = modelbuilder.get_mclass_by_name(node, mmodule, name) return mclass end