tuned;
authorwenzelm
Sun, 10 Jan 2010 17:29:09 +0100
changeset 3430678c10aea025d
parent 34300 3f2e25dc99ab
child 34307 9bb71dfe7314
tuned;
src/Pure/General/linear_set.scala
src/Pure/General/scan.scala
     1.1 --- a/src/Pure/General/linear_set.scala	Sat Jan 09 23:22:56 2010 +0100
     1.2 +++ b/src/Pure/General/linear_set.scala	Sun Jan 10 17:29:09 2010 +0100
     1.3 @@ -118,14 +118,16 @@
     1.4    override def isEmpty: Boolean = !rep.first.isDefined
     1.5    def size: Int = if (isEmpty) 0 else rep.nexts.size + 1
     1.6  
     1.7 -  def elements = new Iterator[A] {
     1.8 +  def elements: Iterator[A] = new Iterator[A] {
     1.9      private var next_elem = rep.first
    1.10      def hasNext = next_elem.isDefined
    1.11 -    def next = {
    1.12 -      val elem = next_elem.get
    1.13 -      next_elem = rep.nexts.get(elem)
    1.14 -      elem
    1.15 -    }
    1.16 +    def next =
    1.17 +      next_elem match {
    1.18 +        case Some(elem) =>
    1.19 +          next_elem = rep.nexts.get(elem)
    1.20 +          elem
    1.21 +        case None => throw new NoSuchElementException("next on empty iterator")
    1.22 +      }
    1.23    }
    1.24  
    1.25    def contains(elem: A): Boolean =
     2.1 --- a/src/Pure/General/scan.scala	Sat Jan 09 23:22:56 2010 +0100
     2.2 +++ b/src/Pure/General/scan.scala	Sun Jan 10 17:29:09 2010 +0100
     2.3 @@ -108,6 +108,7 @@
     2.4      def ++ (elems: Iterator[String]): Lexicon = (this /: elems) ((s, elem) => s + elem)
     2.5  
     2.6  
     2.7 +
     2.8      /** RegexParsers methods **/
     2.9  
    2.10      override val whiteSpace = "".r