From: Alexandre Terrasa Date: Sat, 3 May 2014 03:32:37 +0000 (-0400) Subject: model_utils: add direct access to intro and refined in mmodule X-Git-Tag: v0.6.6~85^2~4 X-Git-Url: http://nitlanguage.org model_utils: add direct access to intro and refined in mmodule Signed-off-by: Alexandre Terrasa --- diff --git a/src/model_utils.nit b/src/model_utils.nit index 12b8907..1c375ba 100644 --- a/src/model_utils.nit +++ b/src/model_utils.nit @@ -20,6 +20,31 @@ module model_utils import modelbuilder redef class MModule + + # The list of intro mclassdef in the module. + # with visibility >= to min_visibility + fun intro_mclassdefs(min_visibility: MVisibility): Set[MClassDef] do + var res = new HashSet[MClassDef] + for mclassdef in mclassdefs do + if not mclassdef.is_intro then continue + if mclassdef.mclass.visibility < min_visibility then continue + res.add mclassdef + end + return res + end + + # The list of redef mclassdef in the module. + # with visibility >= to min_visibility + fun redef_mclassdefs(min_visibility: MVisibility): Set[MClassDef] do + var res = new HashSet[MClassDef] + for mclassdef in mclassdefs do + if mclassdef.is_intro then continue + if mclassdef.mclass.visibility < min_visibility then continue + res.add mclassdef + end + return res + end + # Get the list of mclasses refined in 'self'. fun redef_mclasses: Set[MClass] do var mclasses = new HashSet[MClass]