modelbuilder: always create a main fictive module
[nit.git] / src / modelbuilder.nit
index 00e41b5..a924c63 100644 (file)
@@ -38,16 +38,13 @@ redef class ToolContext
        do
                assert not mmodules.is_empty
                var mainmodule
-               if mmodules.length == 1 then
-                       mainmodule = mmodules.first
-               else
-                       # We need a main module, so we build it by importing all modules
-                       mainmodule = new MModule(modelbuilder.model, null, mmodules.first.name + "-m", new Location(mmodules.first.location.file, 0, 0, 0, 0))
-                       mainmodule.is_fictive = true
-                       mainmodule.set_imported_mmodules(mmodules)
-                       modelbuilder.apply_conditional_importations(mainmodule)
-                       modelbuilder.run_phases
-               end
+               # We need a main module, so we build it by importing all modules
+               mainmodule = new MModule(modelbuilder.model, null, mmodules.first.name + "-m", new Location(mmodules.first.location.file, 0, 0, 0, 0))
+               mainmodule.is_fictive = true
+               mainmodule.first_real_mmodule = mmodules.first.first_real_mmodule
+               mainmodule.set_imported_mmodules(mmodules)
+               modelbuilder.apply_conditional_importations(mainmodule)
+               modelbuilder.run_phases
                return mainmodule
        end
 
@@ -100,7 +97,7 @@ redef class ModelBuilder
 
                if toolcontext.opt_only_metamodel.value then
                        self.toolcontext.info("*** ONLY METAMODEL", 1)
-                       exit(0)
+                       toolcontext.quit
                end
        end