src/Pure/General/graph.scala
changeset 70651 d1d4a1b1ff1f
parent 70636 a56eab490f4e
child 70692 41b5e515c238
equal deleted inserted replaced
70650:fa04b549f652 70651:d1d4a1b1ff1f
    12 
    12 
    13 
    13 
    14 object Graph
    14 object Graph
    15 {
    15 {
    16   class Duplicate[Key](val key: Key) extends Exception
    16   class Duplicate[Key](val key: Key) extends Exception
       
    17   {
       
    18     override def toString: String = "Graph.Duplicate(" + key.toString + ")"
       
    19   }
    17   class Undefined[Key](val key: Key) extends Exception
    20   class Undefined[Key](val key: Key) extends Exception
       
    21   {
       
    22     override def toString: String = "Graph.Undefined(" + key.toString + ")"
       
    23   }
    18   class Cycles[Key](val cycles: List[List[Key]]) extends Exception
    24   class Cycles[Key](val cycles: List[List[Key]]) extends Exception
       
    25   {
       
    26     override def toString: String = cycles.mkString("Graph.Cycles(", ",\n", ")")
       
    27   }
    19 
    28 
    20   def empty[Key, A](implicit ord: Ordering[Key]): Graph[Key, A] =
    29   def empty[Key, A](implicit ord: Ordering[Key]): Graph[Key, A] =
    21     new Graph[Key, A](SortedMap.empty(ord))
    30     new Graph[Key, A](SortedMap.empty(ord))
    22 
    31 
    23   def make[Key, A](entries: List[((Key, A), List[Key])],
    32   def make[Key, A](entries: List[((Key, A), List[Key])],