Merge: autosuperinit: do not crash on broken model
[nit.git] / src / loader.nit
index ac9f91d..b3485ed 100644 (file)
@@ -104,7 +104,7 @@ redef class ModelBuilder
 
                if toolcontext.opt_only_parse.value then
                        self.toolcontext.info("*** ONLY PARSE...", 1)
-                       exit(0)
+                       self.toolcontext.quit
                end
 
                return mmodules.to_a
@@ -199,7 +199,7 @@ redef class ModelBuilder
 
                if toolcontext.opt_only_parse.value then
                        self.toolcontext.info("*** ONLY PARSE...", 1)
-                       exit(0)
+                       self.toolcontext.quit
                end
 
                return mmodules.to_a
@@ -243,7 +243,9 @@ redef class ModelBuilder
                        end
                end
 
-               var candidate = search_module_in_paths(anode.hot_location, name, lookpaths)
+               var loc = null
+               if anode != null then loc = anode.hot_location
+               var candidate = search_module_in_paths(loc, name, lookpaths)
 
                if candidate == null then
                        if mgroup != null then
@@ -655,6 +657,7 @@ redef class ModelBuilder
                var mmodule = new MModule(model, mgroup, mod_name, nmodule.location)
                nmodule.mmodule = mmodule
                nmodules.add(nmodule)
+               parsed_modules.add mmodule
                self.mmodule2nmodule[mmodule] = nmodule
 
                if parent!= null then