model_collect: add services for module importation
authorAlexandre Terrasa <alexandre@moz-code.org>
Fri, 18 Dec 2015 05:20:41 +0000 (00:20 -0500)
committerAlexandre Terrasa <alexandre@moz-code.org>
Wed, 25 May 2016 23:45:03 +0000 (19:45 -0400)
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>

src/model/model_collect.nit

index 2590b0d..8585092 100644 (file)
@@ -220,6 +220,15 @@ redef class MClass
                return res
        end
 
+       # Build a class hierarchy poset for `self` based on its ancestors and descendants.
+       fun hierarchy_poset(mainmodule: MModule, view: ModelView): POSet[MClass] do
+               var mclasses = new HashSet[MClass]
+               mclasses.add self
+               mclasses.add_all collect_ancestors(view)
+               mclasses.add_all collect_descendants(view)
+               return view.mclasses_poset(mainmodule, mclasses)
+       end
+
        # Collect all mproperties introduced in 'self' with `visibility >= min_visibility`.
        fun collect_intro_mproperties(view: ModelView): Set[MProperty] do
                var set = new HashSet[MProperty]