Merge: new module annotation `is generated`
[nit.git] / src / loader.nit
index ac07e71..37812f7 100644 (file)
@@ -813,6 +813,8 @@ redef class ModelBuilder
                        end
                        # Is the module a test suite?
                        mmodule.is_test_suite = not decl.get_annotations("test_suite").is_empty
+                       # Is the module generated?
+                       mmodule.is_generated = not decl.get_annotations("generated").is_empty
                end
        end
 
@@ -1045,7 +1047,7 @@ redef class ModelBuilder
        # (and `build_module_importation` that calls it).
        #
        # TODO (when the loader will be rewritten): use a better representation and move up rules in the model.
-       private var conditional_importations = new Array[SequenceRead[MModule]]
+       var conditional_importations = new Array[SequenceRead[MModule]]
 
        # Extends the current importations according to imported rules about conditional importation
        fun apply_conditional_importations(mmodule: MModule)
@@ -1061,7 +1063,7 @@ redef class ModelBuilder
                                for i in [1..ci.length[ do
                                        var m = ci[i]
                                        # Is imported?
-                                       if not mmodule.in_importation.greaters.has(m) then continue label
+                                       if mmodule == m or not mmodule.in_importation.greaters.has(m) then continue label
                                end
                                # Still here? It means that all conditions modules are loaded and imported