- for mclassdef in mclassdefs do
- for parent in mclassdef.collect_parents(view) do
- var mclass = parent.mclass
- if mclass == self or not view.accept_mentity(parent) then continue
- res.add mclass
- end
- end
- return res
- end
-
- # Collect all ancestors of `self`
- redef fun collect_ancestors(view) do
- var res = new HashSet[MENTITY]
- for mclassdef in mclassdefs do
- for parent in mclassdef.collect_parents(view) do
- if not view.accept_mentity(parent) then continue
- res.add parent.mclass
- end
+ for mclass in in_hierarchy(view.mainmodule).direct_greaters do
+ if mclass == self or not view.accept_mentity(mclass) then continue
+ res.add mclass