loader: the AModule.mmodule can be null if the mmodule is invalid
authorJean Privat <jean@pryen.org>
Fri, 3 Apr 2015 02:32:04 +0000 (09:32 +0700)
committerJean Privat <jean@pryen.org>
Fri, 3 Apr 2015 06:09:20 +0000 (13:09 +0700)
Signed-off-by: Jean Privat <jean@pryen.org>

src/loader.nit

index 9d1297b..312d02b 100644 (file)
@@ -72,8 +72,9 @@ redef class ModelBuilder
                        if nmodule == null then continue # Skip error
                        # Load imported module
                        build_module_importation(nmodule)
                        if nmodule == null then continue # Skip error
                        # Load imported module
                        build_module_importation(nmodule)
-
-                       mmodules.add(nmodule.mmodule.as(not null))
+                       var mmodule = nmodule.mmodule
+                       if mmodule == null then continue # skip error
+                       mmodules.add mmodule
                end
                var time1 = get_time
                self.toolcontext.info("*** END PARSE: {time1-time0} ***", 2)
                end
                var time1 = get_time
                self.toolcontext.info("*** END PARSE: {time1-time0} ***", 2)
@@ -100,8 +101,9 @@ redef class ModelBuilder
                                if nmodule == null then continue # Skip error
                                # Load imported module
                                build_module_importation(nmodule)
                                if nmodule == null then continue # Skip error
                                # Load imported module
                                build_module_importation(nmodule)
-
-                               res.add(nmodule.mmodule.as(not null))
+                               var mmodule = nmodule.mmodule
+                               if mmodule == null then continue # Skip error
+                               res.add mmodule
                        end
                end
                return res
                        end
                end
                return res
@@ -154,7 +156,9 @@ redef class ModelBuilder
                                                var nmodule = self.load_module(af)
                                                if nmodule == null then continue # Skip error
                                                build_module_importation(nmodule)
                                                var nmodule = self.load_module(af)
                                                if nmodule == null then continue # Skip error
                                                build_module_importation(nmodule)
-                                               mmodules.add(nmodule.mmodule.as(not null))
+                                               var mmodule = nmodule.mmodule
+                                               if mmodule == null then continue # Skip error
+                                               mmodules.add mmodule
                                        else
                                                self.toolcontext.info("ignore file {af}", 2)
                                        end
                                        else
                                                self.toolcontext.info("ignore file {af}", 2)
                                        end
@@ -166,8 +170,9 @@ redef class ModelBuilder
                        if nmodule == null then continue # Skip error
                        # Load imported module
                        build_module_importation(nmodule)
                        if nmodule == null then continue # Skip error
                        # Load imported module
                        build_module_importation(nmodule)
-
-                       mmodules.add(nmodule.mmodule.as(not null))
+                       var mmodule = nmodule.mmodule
+                       if mmodule == null then continue # Skip error
+                       mmodules.add mmodule
                end
                var time1 = get_time
                self.toolcontext.info("*** END PARSE: {time1-time0} ***", 2)
                end
                var time1 = get_time
                self.toolcontext.info("*** END PARSE: {time1-time0} ***", 2)
@@ -261,7 +266,7 @@ redef class ModelBuilder
                if res == null then return null # Forward error
                # Load imported module
                build_module_importation(res)
                if res == null then return null # Forward error
                # Load imported module
                build_module_importation(res)
-               return res.mmodule.as(not null)
+               return res.mmodule
        end
 
        # Search a module `name` from path `lookpaths`.
        end
 
        # Search a module `name` from path `lookpaths`.