From: Jean Privat Date: Thu, 24 Jun 2010 08:18:06 +0000 (-0400) Subject: tools: remove the method import_supers_modules X-Git-Tag: v0.5~38^2~2 X-Git-Url: http://nitlanguage.org tools: remove the method import_supers_modules It is simplier to call tc.get_module and tc.add_module by hand. Signed-off-by: Jean Privat --- diff --git a/src/mmloader.nit b/src/mmloader.nit index 5133747..8f7c2ac 100644 --- a/src/mmloader.nit +++ b/src/mmloader.nit @@ -371,18 +371,3 @@ class ModuleLoader # Process a parsed module protected fun process_metamodel(context: ToolContext, mod: MODULE) is abstract end - -redef class MMModule - # Recurcivelty process an import modules - fun import_supers_modules(names: Collection[Symbol]) - do - var c = context - assert c isa ToolContext - var supers = new Array[MMModule] - for n in names do - var m = c.get_module(n, self) - supers.add(m) - end - c.add_module(self,supers) - end -end diff --git a/src/syntax/mmbuilder.nit b/src/syntax/mmbuilder.nit index 1fd92f3..b592d4b 100644 --- a/src/syntax/mmbuilder.nit +++ b/src/syntax/mmbuilder.nit @@ -426,35 +426,30 @@ redef class AModule fun import_super_modules(tc: ToolContext, mod: MMSrcModule) do # Import super-modules - var module_names_to_import = new Array[Symbol] - var module_visibility = new HashMap[Symbol, Int] + var supers = new Array[MMModule] var no_import: nullable AImport = null for i in n_imports do var n = i.module_name if n != null then - module_names_to_import.add(n) - module_visibility[n] = i.visibility_level + var m = tc.get_module(n, mod) + supers.add(m) + mod.add_super_module(m, i.visibility_level) else no_import = i end end if no_import != null then - if not module_names_to_import.is_empty then + if not supers.is_empty then tc.error(no_import.location, "Error: Top modules cannot import other modules.") end - else if module_names_to_import.is_empty then + else if supers.is_empty then var stdname = once "standard".to_symbol - module_names_to_import.add(stdname) - module_visibility[stdname] = 1 + var m = tc.get_module(stdname, mod) + supers.add(m) + mod.add_super_module(m, 1) end - mod.import_supers_modules(module_names_to_import) - - for mname in module_names_to_import do - var level = module_visibility[mname] - var m = tc.get_module(mname, mod) - mod.add_super_module(m, level) - end + tc.add_module(mod, supers) end end