diff options
author | Kato Kazuyoshi <kato.kazuyoshi@gmail.com> | 2013-03-20 02:44:05 +0900 |
---|---|---|
committer | Kato Kazuyoshi <kato.kazuyoshi@gmail.com> | 2013-03-20 02:44:05 +0900 |
commit | df292901c3dd9688d1dabf4ebaa9d73a23ebfe80 (patch) | |
tree | 6cdd01872c50f6bc322b63a0abf953d8e3e2bd6c | |
parent | 144671eb943dc689e555ddc50d0d4c045182b6c8 (diff) | |
download | scala-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.
-rw-r--r-- | src/compiler/scala/tools/nsc/doc/html/SyntaxHigh.scala | 6 |
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) |