diff options
author | Martin Odersky <odersky@gmail.com> | 2015-06-25 12:01:32 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2015-06-25 12:02:32 +0200 |
commit | d00572d159a3a15664afbf09d1ff914df4d2c512 (patch) | |
tree | b707a4f0cc70f68819101ae7e428cc6a79d3ba8e /src/dotty/tools/dotc/util/SourceFile.scala | |
parent | 0fba8757b444d96c748df1e034d39f7626a39d1e (diff) | |
download | dotty-d00572d159a3a15664afbf09d1ff914df4d2c512.tar.gz dotty-d00572d159a3a15664afbf09d1ff914df4d2c512.tar.bz2 dotty-d00572d159a3a15664afbf09d1ff914df4d2c512.zip |
Avoid crasher when first token of a program is in error
This used to give a crash in SourcePositiom, promoted by feeding
its calculations with a negative offset.
Diffstat (limited to 'src/dotty/tools/dotc/util/SourceFile.scala')
-rw-r--r-- | src/dotty/tools/dotc/util/SourceFile.scala | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/util/SourceFile.scala b/src/dotty/tools/dotc/util/SourceFile.scala index 45119a881..6e2ac7d79 100644 --- a/src/dotty/tools/dotc/util/SourceFile.scala +++ b/src/dotty/tools/dotc/util/SourceFile.scala @@ -103,7 +103,10 @@ case class SourceFile(file: AbstractFile, content: Array[Char]) { lastLine } - def startOfLine(offset: Int): Int = lineToOffset(offsetToLine(offset)) + def startOfLine(offset: Int): Int = { + require(offset >= 0) + lineToOffset(offsetToLine(offset)) + } def nextLine(offset: Int): Int = lineToOffset(offsetToLine(offset) + 1 min lineIndices.length - 1) |