From 8c307b90f968c08a19375637ccce5d65e1bdfc94 Mon Sep 17 00:00:00 2001 From: Jean Privat Date: Fri, 3 Apr 2015 09:36:57 +0700 Subject: [PATCH] modelbuilder: promote `get_mclass_by_name` from typing Signed-off-by: Jean Privat --- src/modelbuilder_base.nit | 10 ++++++++++ src/semantize/typing.nit | 5 +---- 2 files changed, 11 insertions(+), 4 deletions(-) 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 -- 1.7.9.5