tools: remove the method import_supers_modules
authorJean Privat <jean@pryen.org>
Thu, 24 Jun 2010 08:18:06 +0000 (04:18 -0400)
committerJean Privat <jean@pryen.org>
Sat, 2 Apr 2011 07:44:02 +0000 (03:44 -0400)
It is simplier to call tc.get_module and tc.add_module by hand.

Signed-off-by: Jean Privat <jean@pryen.org>

src/mmloader.nit
src/syntax/mmbuilder.nit

index 5133747..8f7c2ac 100644 (file)
@@ -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
index 1fd92f3..b592d4b 100644 (file)
@@ -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