summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2012-11-16 14:17:53 -0800
committerAdriaan Moors <adriaan.moors@typesafe.com>2012-11-16 14:17:53 -0800
commit813fa70c71e55ab8eb3d5f909c12cb417f2b30e4 (patch)
tree7b2c093b289c672388a314aa29c8ce97d65ed1ff
parent83deccf4aa54257e04412a1ba96430dccd1483bb (diff)
parent88b4b91b0a9191c98dc3f80c1a2cbea1a5ff4e12 (diff)
downloadscala-813fa70c71e55ab8eb3d5f909c12cb417f2b30e4.tar.gz
scala-813fa70c71e55ab8eb3d5f909c12cb417f2b30e4.tar.bz2
scala-813fa70c71e55ab8eb3d5f909c12cb417f2b30e4.zip
Merge pull request #1616 from retronym/backport/6559
SI-6559 Fix raw string interpolator: string parts which were after the first argument were still escaped
-rw-r--r--src/library/scala/StringContext.scala2
-rw-r--r--test/files/run/rawstrings.check2
-rw-r--r--test/files/run/rawstrings.scala2
-rw-r--r--test/files/run/t6559.scala17
4 files changed, 20 insertions, 3 deletions
diff --git a/src/library/scala/StringContext.scala b/src/library/scala/StringContext.scala
index f72547724d..8be0cb1619 100644
--- a/src/library/scala/StringContext.scala
+++ b/src/library/scala/StringContext.scala
@@ -120,7 +120,7 @@ case class StringContext(parts: String*) {
val bldr = new java.lang.StringBuilder(process(pi.next()))
while (ai.hasNext) {
bldr append ai.next
- bldr append treatEscapes(pi.next())
+ bldr append process(pi.next())
}
bldr.toString
}
diff --git a/test/files/run/rawstrings.check b/test/files/run/rawstrings.check
index 36e63594df..2b6c40725a 100644
--- a/test/files/run/rawstrings.check
+++ b/test/files/run/rawstrings.check
@@ -1 +1 @@
-[\n\t'"$]
+[\n\t'"$\n]
diff --git a/test/files/run/rawstrings.scala b/test/files/run/rawstrings.scala
index 9df64f6625..b4d6e0c40a 100644
--- a/test/files/run/rawstrings.scala
+++ b/test/files/run/rawstrings.scala
@@ -1,3 +1,3 @@
object Test extends App {
- println(raw"[\n\t'${'"'}$$]")
+ println(raw"[\n\t'${'"'}$$\n]")
}
diff --git a/test/files/run/t6559.scala b/test/files/run/t6559.scala
new file mode 100644
index 0000000000..5c671f7275
--- /dev/null
+++ b/test/files/run/t6559.scala
@@ -0,0 +1,17 @@
+
+object Test {
+
+ def main(args: Array[String]) = {
+ val one = "1"
+ val two = "2"
+
+ val raw = raw"\n$one\n$two\n"
+ val escaped = s"\n$one\n$two\n"
+ val buggy = "\\n1\n2\n"
+ val correct = "\\n1\\n2\\n"
+
+ assert(raw != escaped, "Raw strings should not be escaped.")
+ assert(raw != buggy, "Raw strings after variables should not be escaped.")
+ assert(raw == correct, "Raw strings should stay raw.")
+ }
+}