summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/scala/tools/nsc/ast/parser/Parsers.scala')
-rw-r--r--src/compiler/scala/tools/nsc/ast/parser/Parsers.scala10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
index 51b53dff76..d81b31904c 100644
--- a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
+++ b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
@@ -92,6 +92,9 @@ trait Parsers {
private def stringVal = inName.toString
private def inNextTokenCode = in.next.token
+ /** whether a non-continuable error has been seen */
+ private var nonContinuableError = false
+
/** the markup parser */
def xmlp = {
if (xmlp0 == null)
@@ -178,6 +181,7 @@ trait Parsers {
skip()
in.skipping = false
}
+ nonContinuableError = true
}
def syntaxErrorMigrate(msg: String) =
@@ -190,7 +194,11 @@ trait Parsers {
}
def incompleteInputError(pos: ScanPosition, msg: String) {
- if (pos != in.errpos) {
+ if (pos == in.errpos) return
+
+ if (nonContinuableError)
+ syntaxError(pos, msg, false)
+ else {
in.incompleteInputError(pos, msg)
in.errpos = pos
}