summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEugene Burmako <xeno.by@gmail.com>2012-02-29 12:51:18 +0100
committerEugene Burmako <xeno.by@gmail.com>2012-02-29 23:38:52 +0100
commit8cc36cdfa17c26a55ab1d164105363f3492f72af (patch)
treeefc14d6c0b1eb5f6b3638c4762ed0615bb530ec0 /src
parent105dc63121c84a45711b02f77f8e4a04074f7425 (diff)
downloadscala-8cc36cdfa17c26a55ab1d164105363f3492f72af.tar.gz
scala-8cc36cdfa17c26a55ab1d164105363f3492f72af.tar.bz2
scala-8cc36cdfa17c26a55ab1d164105363f3492f72af.zip
Fixes SI-5530
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/ast/parser/Scanners.scala13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/parser/Scanners.scala b/src/compiler/scala/tools/nsc/ast/parser/Scanners.scala
index 2626ca26a6..20360b547e 100644
--- a/src/compiler/scala/tools/nsc/ast/parser/Scanners.scala
+++ b/src/compiler/scala/tools/nsc/ast/parser/Scanners.scala
@@ -698,12 +698,15 @@ trait Scanners extends ScannersCommon {
} else {
syntaxError("invalid string interpolation")
}
- } else if ((ch == CR || ch == LF || ch == SU) && !isUnicodeEscape) {
- syntaxError("unclosed string literal")
} else {
- putChar(ch)
- nextRawChar()
- getStringPart(multiLine)
+ val isUnclosedLiteral = !isUnicodeEscape && (ch == SU || (!multiLine && (ch == CR || ch == LF)))
+ if (isUnclosedLiteral) {
+ syntaxError(if (!multiLine) "unclosed string literal" else "unclosed multi-line string literal")
+ } else {
+ putChar(ch)
+ nextRawChar()
+ getStringPart(multiLine)
+ }
}
}