summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2009-09-21 23:08:14 +0000
committerPaul Phillips <paulp@improving.org>2009-09-21 23:08:14 +0000
commit16eced4644c5708f866421f38ea1b12368f03235 (patch)
treee8985cc270fb26f593cdd66d0adff952d18b3272
parent4b116e95dacf749238a72427c31aa8a25db6405b (diff)
downloadscala-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.
-rw-r--r--src/compiler/scala/tools/nsc/util/SourceFile.scala8
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] = {