nitcc: detect S/R even if R/R conflict as a solution is to shift in case of S/R/R
[nit.git] / src / model / mmodule.nit
index b11a594..659660b 100644 (file)
@@ -171,11 +171,9 @@ class MModule
        end
 
        # Register the imported modules (ie "import some_module")
-       # This function can only invoked once by mmodule.
        # The visibility must be set with `set_visibility_for`.
        fun set_imported_mmodules(imported_mmodules: Array[MModule])
        do
-               assert unique_invocation: self.in_importation.direct_greaters.is_empty
                for m in imported_mmodules do
                        self.model.mmodule_importation_hierarchy.add_edge(self, m)
                end
@@ -240,5 +238,18 @@ class MModule
        # exposed to the final user.
        var is_fictive: Bool = false is writable
 
+       # Is `self` a unit test module used by `nitunit`?
+       var is_test_suite: Bool = false is writable
+
+       # Get the first non `is_fictive` module greater than self
+       fun first_real_mmodule: MModule
+       do
+               var mmodule = self
+               while mmodule.is_fictive do
+                       mmodule = mmodule.in_importation.direct_greaters.first
+               end
+               return mmodule
+       end
+
        redef fun parent_concern do return mgroup
 end