summaryrefslogtreecommitdiff
path: root/src/compiler
diff options
context:
space:
mode:
authorKato Kazuyoshi <kato.kazuyoshi@gmail.com>2013-03-20 02:44:05 +0900
committerKato Kazuyoshi <kato.kazuyoshi@gmail.com>2013-03-20 02:44:05 +0900
commitdf292901c3dd9688d1dabf4ebaa9d73a23ebfe80 (patch)
tree6cdd01872c50f6bc322b63a0abf953d8e3e2bd6c /src/compiler
parent144671eb943dc689e555ddc50d0d4c045182b6c8 (diff)
downloadscala-df292901c3dd9688d1dabf4ebaa9d73a23ebfe80.tar.gz
scala-df292901c3dd9688d1dabf4ebaa9d73a23ebfe80.tar.bz2
scala-df292901c3dd9688d1dabf4ebaa9d73a23ebfe80.zip
SI-7013 Scaladoc: Fix StackOverflowError
No one see the result value of parse and if so, it's tail-recursive.
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/scala/tools/nsc/doc/html/SyntaxHigh.scala6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/doc/html/SyntaxHigh.scala b/src/compiler/scala/tools/nsc/doc/html/SyntaxHigh.scala
index ee78f4ea7a..6fdaaed75f 100644
--- a/src/compiler/scala/tools/nsc/doc/html/SyntaxHigh.scala
+++ b/src/compiler/scala/tools/nsc/doc/html/SyntaxHigh.scala
@@ -6,6 +6,7 @@
package scala.tools.nsc.doc.html
import scala.xml.NodeSeq
+import scala.annotation.tailrec
/** Highlight the syntax of Scala code appearing in a `{{{` wiki block
* (see method `HtmlPage.blockToHtml`).
@@ -209,9 +210,9 @@ private[html] object SyntaxHigh {
out.toString
}
- def parse(pre: String, i: Int): Int = {
+ @tailrec def parse(pre: String, i: Int): Unit = {
out append pre
- if (i == buf.length) return i
+ if (i == buf.length) return
buf(i) match {
case '\n' =>
parse("\n", i+1)
@@ -277,7 +278,6 @@ private[html] object SyntaxHigh {
} else
parse(buf(i).toChar.toString, i+1)
}
- i
}
parse("", 0)