nitc :: Model :: concerns_tree
concerns
# Build an ordered tree with from `concerns`
fun concerns_tree(mconcerns: Collection[MConcern]): ConcernsTree do
var seen = new HashSet[MConcern]
var res = new ConcernsTree
var todo = new Array[MConcern]
todo.add_all mconcerns
while not todo.is_empty do
var c = todo.pop
if seen.has(c) then continue
var pc = c.parent_concern
if pc == null then
res.add(null, c)
else
res.add(pc, c)
todo.add(pc)
end
seen.add(c)
end
return res
end
src/model/model.nit:122,2--144,4