diff options
author | Lukas Rytz <lukas.rytz@typesafe.com> | 2016-07-13 13:06:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-07-13 13:06:05 +0200 |
commit | aeb01c8bed329c6285ba9a50628ab8ba3582e2ec (patch) | |
tree | f9e6ec17d49c5686f1b7c591dfc3b452f5e23e4a | |
parent | aaf7bc0b948ee073934885f8240193a4ba2b3bb8 (diff) | |
parent | a6ce8e3a423b7118eab48b2c94e159e637ace13a (diff) | |
download | scala-aeb01c8bed329c6285ba9a50628ab8ba3582e2ec.tar.gz scala-aeb01c8bed329c6285ba9a50628ab8ba3582e2ec.tar.bz2 scala-aeb01c8bed329c6285ba9a50628ab8ba3582e2ec.zip |
Merge pull request #5236 from som-snytt/issue/triple-backport
[nomerge] Avoid triple-quoting triple quotes
-rw-r--r-- | src/reflect/scala/reflect/internal/Printers.scala | 2 | ||||
-rw-r--r-- | test/junit/scala/reflect/internal/PrintersTest.scala | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/src/reflect/scala/reflect/internal/Printers.scala b/src/reflect/scala/reflect/internal/Printers.scala index b44c4022f6..9a5314192f 100644 --- a/src/reflect/scala/reflect/internal/Printers.scala +++ b/src/reflect/scala/reflect/internal/Printers.scala @@ -1050,7 +1050,7 @@ trait Printers extends api.Printers { self: SymbolTable => x match { case Constant(v: String) if { val strValue = x.stringValue - strValue.contains(LF) && strValue.contains("\"\"\"") && strValue.size > 1 + strValue.contains(LF) && !strValue.contains("\"\"\"") && strValue.size > 1 } => val splitValue = x.stringValue.split(s"$LF").toList val multilineStringValue = if (x.stringValue.endsWith(s"$LF")) splitValue :+ "" else splitValue diff --git a/test/junit/scala/reflect/internal/PrintersTest.scala b/test/junit/scala/reflect/internal/PrintersTest.scala index 9bfe6eecb8..cacff6a012 100644 --- a/test/junit/scala/reflect/internal/PrintersTest.scala +++ b/test/junit/scala/reflect/internal/PrintersTest.scala @@ -86,6 +86,14 @@ trait BasePrintTests { @Test def testConstantLong = assertTreeCode(Literal(Constant(42l)))("42L") + @Test def testConstantMultiline = assertTreeCode(Literal(Constant("hello\nworld")))("\"\"\"hello\nworld\"\"\"") + + val sq = "\"" + val teq = "\\\"" * 3 + val tq = "\"" * 3 + + @Test def testConstantEmbeddedTriple = assertTreeCode(Literal(Constant(s"${tq}hello${tq}\nworld")))(s"${sq}${teq}hello${teq}\\nworld${sq}") + @Test def testOpExpr = assertPrintedCode("(5).+(4)", checkTypedTree = false) @Test def testName1 = assertPrintedCode("class test") |