diff options
author | Paul Phillips <paulp@improving.org> | 2009-09-21 23:08:14 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2009-09-21 23:08:14 +0000 |
commit | 16eced4644c5708f866421f38ea1b12368f03235 (patch) | |
tree | e8985cc270fb26f593cdd66d0adff952d18b3272 /src/compiler | |
parent | 4b116e95dacf749238a72427c31aa8a25db6405b (diff) | |
download | scala-16eced4644c5708f866421f38ea1b12368f03235.tar.gz scala-16eced4644c5708f866421f38ea1b12368f03235.tar.bz2 scala-16eced4644c5708f866421f38ea1b12368f03235.zip |
Removed 150,000 unnecessary boxings. Interesting
things you find when you log all equality tests.
Diffstat (limited to 'src/compiler')
-rw-r--r-- | src/compiler/scala/tools/nsc/util/SourceFile.scala | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/compiler/scala/tools/nsc/util/SourceFile.scala b/src/compiler/scala/tools/nsc/util/SourceFile.scala index d11f9a3db1..92cb3b44ed 100644 --- a/src/compiler/scala/tools/nsc/util/SourceFile.scala +++ b/src/compiler/scala/tools/nsc/util/SourceFile.scala @@ -9,7 +9,7 @@ package scala.tools.nsc package util import scala.tools.nsc.io.{AbstractFile, VirtualFile} import scala.collection.mutable.ArrayBuffer -import annotation.tailrec +import annotation.{ tailrec, switch } object SourceFile { // Be very careful touching these. @@ -22,7 +22,7 @@ object SourceFile { final val CR = '\u000D' final val SU = '\u001A' - def isLineBreakChar(c: Int) = c match { + @inline def isLineBreakChar(c: Char) = (c: @switch) match { case LF|FF|CR|SU => true case _ => false } @@ -53,7 +53,7 @@ abstract class SourceFile { (content drop offset) startsWith text def lineToString(index: Int): String = - content drop lineToOffset(index) takeWhile (c => !isLineBreakChar(c)) mkString + content drop lineToOffset(index) takeWhile (c => !isLineBreakChar(c.toChar)) mkString @tailrec final def skipWhitespace(offset: Int): Int = @@ -97,7 +97,7 @@ class BatchSourceFile(val file : AbstractFile, val content: Array[Char]) extends if (idx >= length) false else content(idx) match { // don't identify the CR in CR LF as a line break, since LF will do. case CR => (idx + 1 == length) || (content(idx + 1) != LF) - case x => isLineBreakChar(x) + case x => isLineBreakChar(x.toChar) } private lazy val lineIndices: Array[Int] = { |