tuned;
authorwenzelm
Fri, 07 Mar 2014 16:50:42 +0100
changeset 55980 36fd4981c119
parent 55979 06cb126f30ba
child 55981 66739f41d5b2
tuned;
src/Pure/General/scan.scala
--- a/src/Pure/General/scan.scala	Fri Mar 07 16:00:45 2014 +0100
+++ b/src/Pure/General/scan.scala	Fri Mar 07 16:50:42 2014 +0100
@@ -7,6 +7,7 @@
 package isabelle
 
 
+import scala.annotation.tailrec
 import scala.collection.{IndexedSeq, TraversableOnce}
 import scala.collection.immutable.PagedSeq
 import scala.util.parsing.input.{OffsetPosition, Position => InputPosition, Reader}
@@ -323,14 +324,15 @@
     private def lookup(str: CharSequence): Option[(Boolean, Lexicon.Tree)] =
     {
       val len = str.length
-      def look(tree: Lexicon.Tree, tip: Boolean, i: Int): Option[(Boolean, Lexicon.Tree)] =
+      @tailrec def look(tree: Lexicon.Tree, tip: Boolean, i: Int): Option[(Boolean, Lexicon.Tree)] =
       {
         if (i < len) {
           tree.branches.get(str.charAt(i)) match {
             case Some((s, tr)) => look(tr, !s.isEmpty, i + 1)
             case None => None
           }
-        } else Some(tip, tree)
+        }
+        else Some(tip, tree)
       }
       look(rep, false, 0)
     }