summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2014-01-29 13:54:31 -0800
committerJason Zaugg <jzaugg@gmail.com>2014-01-29 13:54:31 -0800
commit0e578e693196f93b1ba4f972a2c96d468bef464a (patch)
tree0799014dfad40585af53663f2d0b09fe9949c5de /src
parentf0809f41149174634abc1034e4b17e944c491dcc (diff)
parentf584f5b4b86be552bcba47309b8e63363a9904d9 (diff)
downloadscala-0e578e693196f93b1ba4f972a2c96d468bef464a.tar.gz
scala-0e578e693196f93b1ba4f972a2c96d468bef464a.tar.bz2
scala-0e578e693196f93b1ba4f972a2c96d468bef464a.zip
Merge pull request #3429 from som-snytt/issue/8205
SI-8205 Don't include CR in line
Diffstat (limited to 'src')
-rw-r--r--src/reflect/scala/reflect/internal/util/SourceFile.scala10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/reflect/scala/reflect/internal/util/SourceFile.scala b/src/reflect/scala/reflect/internal/util/SourceFile.scala
index add072aa71..8791d8eb23 100644
--- a/src/reflect/scala/reflect/internal/util/SourceFile.scala
+++ b/src/reflect/scala/reflect/internal/util/SourceFile.scala
@@ -143,7 +143,13 @@ class BatchSourceFile(val file : AbstractFile, val content0: Array[Char]) extend
def isLineBreak(idx: Int) = charAtIsEOL(idx)(isLineBreakChar)
- def isEndOfLine(idx: Int) = charAtIsEOL(idx) {
+ /** True if the index is included by an EOL sequence. */
+ def isEndOfLine(idx: Int) = (content isDefinedAt idx) && PartialFunction.cond(content(idx)) {
+ case CR | LF => true
+ }
+
+ /** True if the index is end of an EOL sequence. */
+ def isAtEndOfLine(idx: Int) = charAtIsEOL(idx) {
case CR | LF => true
case _ => false
}
@@ -151,7 +157,7 @@ class BatchSourceFile(val file : AbstractFile, val content0: Array[Char]) extend
def calculateLineIndices(cs: Array[Char]) = {
val buf = new ArrayBuffer[Int]
buf += 0
- for (i <- 0 until cs.length) if (isEndOfLine(i)) buf += i + 1
+ for (i <- 0 until cs.length) if (isAtEndOfLine(i)) buf += i + 1
buf += cs.length // sentinel, so that findLine below works smoother
buf.toArray
}