package sbt;
import scala.collection._;
trait trait Dag[Node <: sbt.Dag[Node]] extends java.lang.Object with ScalaObjectDag[>: Nothing <: sbt.Dag[Node]Node <: Dag[Node]]{
self : Node =>
def => Iterable[Node]dependencies : Iterable[Node]Iterable[Node]
def => List[Node]topologicalSort = {
val scala.collection.mutable.HashSet[Node]discovered = scala.collection.mutable.HashSet[Node]new mutable.scala.collection.mutable.HashSet[Node]HashSet[Node];
val scala.collection.jcl.LinkedHashSet[Node]finished = ()scala.collection.jcl.LinkedHashSet[Node]new jcl.scala.collection.jcl.LinkedHashSet[Node]LinkedHashSet[Node];
def (Node)Unitvisit(Nodedag : NodeNode){
Unitif (=> Boolean!(Node)Booleandiscovered(Nodedag)) {
scala.collection.mutable.HashSet[Node]discovered(Nodedag) = Boolean(true)true;
Nodedag.=> Iterable[Node]dependencies.((Node) => Unit)Unitforeach((Node)Unitvisit);
scala.collection.jcl.LinkedHashSet[Node]finished(Nodedag) = Boolean(true)true;
}
}
(Node)Unitvisit(Nodeself);
scala.collection.jcl.LinkedHashSet[Node]finished.=> List[Node]toList;
}
}