Makefile: use `--no-stacktrace` on c_src/nitg to deal with the -lunwind issue on...
[nit.git] / lib / poset.nit
index fc6090f..ac0765e 100644 (file)
@@ -24,7 +24,7 @@ module poset
 #  * transitivity: `(self.has_edge(e,f) and self.has_edge(f,g)) implies self.has_edge(e,g)`
 class POSet[E: Object]
        super Collection[E]
-       super AbstractSorter[E]
+       super Comparator[E]
 
        redef fun iterator do return elements.keys.iterator
 
@@ -163,6 +163,13 @@ class POSet[E: Object]
                if res != 0 then return res
                return elements[a].count <=> elements[b].count
        end
+
+       # Sort a sorted array of poset elements using linearization order
+       fun linearize(elements: Collection[E]): Array[E] do
+               var lin = elements.to_a
+               sort(lin)
+               return lin
+       end
 end
 
 # View of an objet in a poset