diff options
-rw-r--r-- | src/compiler/scala/tools/nsc/ast/parser/Scanners.scala | 3 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/util/CharArrayReader.scala | 6 | ||||
-rw-r--r-- | test/files/run/triple-quoted-expr.check | 5 | ||||
-rw-r--r-- | test/files/run/triple-quoted-expr.scala | 26 |
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 + } +} |