summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/compiler/scala/tools/nsc/ast/parser/Scanners.scala3
-rw-r--r--src/compiler/scala/tools/nsc/util/CharArrayReader.scala6
-rw-r--r--test/files/run/triple-quoted-expr.check5
-rw-r--r--test/files/run/triple-quoted-expr.scala26
4 files changed, 35 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 27e7de59a7..e73af5ea86 100644
--- a/src/compiler/scala/tools/nsc/ast/parser/Scanners.scala
+++ b/src/compiler/scala/tools/nsc/ast/parser/Scanners.scala
@@ -344,10 +344,7 @@ trait Scanners extends ScannersCommon {
nextChar()
if (ch == '\"') {
nextRawChar()
- val saved = lineStartOffset
getMultiLineStringLit()
- if (lineStartOffset != saved) // ignore linestarts within a multi-line string
- lastLineStartOffset = saved
} else {
token = STRINGLIT
strVal = ""
diff --git a/src/compiler/scala/tools/nsc/util/CharArrayReader.scala b/src/compiler/scala/tools/nsc/util/CharArrayReader.scala
index aee87d8ad9..153334b5e1 100644
--- a/src/compiler/scala/tools/nsc/util/CharArrayReader.scala
+++ b/src/compiler/scala/tools/nsc/util/CharArrayReader.scala
@@ -47,7 +47,10 @@ abstract class CharArrayReader { self =>
}
}
- /** Advance one character, leaving CR;LF pairs intact */
+ /** Advance one character, leaving CR;LF pairs intact.
+ * This is for use in multi-line strings, so there are no
+ * "potential line ends" here.
+ */
final def nextRawChar() {
if (charOffset >= buf.length) {
ch = SU
@@ -56,7 +59,6 @@ abstract class CharArrayReader { self =>
ch = c
charOffset += 1
if (c == '\\') potentialUnicode()
- else if (c < ' ') potentialLineEnd()
}
}
diff --git a/test/files/run/triple-quoted-expr.check b/test/files/run/triple-quoted-expr.check
new file mode 100644
index 0000000000..4e59695f36
--- /dev/null
+++ b/test/files/run/triple-quoted-expr.check
@@ -0,0 +1,5 @@
+
+hi
+hi
+
+hi
diff --git a/test/files/run/triple-quoted-expr.scala b/test/files/run/triple-quoted-expr.scala
new file mode 100644
index 0000000000..6d91ac5888
--- /dev/null
+++ b/test/files/run/triple-quoted-expr.scala
@@ -0,0 +1,26 @@
+class A {
+ def f1 = {
+ val x = 5
+
+"""
+hi"""
+ }
+ def f2 = {
+ val x = 5
+
+ """hi"""
+ }
+ def f3 = {
+ val x = 5
+
+ "\nhi"
+ }
+}
+
+object Test {
+ def main(args: Array[String]): Unit = {
+ val x = new A
+ import x._
+ List(f1, f2, f3) foreach println
+ }
+}