summaryrefslogtreecommitdiff
path: root/test/files/run/t6549.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2012-12-03 21:58:36 +0100
committerJason Zaugg <jzaugg@gmail.com>2012-12-03 23:42:42 +0100
commit90c87fc266ec45e8970f6ea0f00d375b63afd35d (patch)
treeb575b8839594186277a53cf75d7fd4fa79faa765 /test/files/run/t6549.scala
parentfd57069a3a49de1757a518b573a0cd8cb98bbbd5 (diff)
downloadscala-90c87fc266ec45e8970f6ea0f00d375b63afd35d.tar.gz
scala-90c87fc266ec45e8970f6ea0f00d375b63afd35d.tar.bz2
scala-90c87fc266ec45e8970f6ea0f00d375b63afd35d.zip
SI-6549 Improve escaping in REPL codegen.
- Escape the LHS of an assign when printing results - e.g. X("").foo = bar - Escape val names - e.g. val `"` = 0`
Diffstat (limited to 'test/files/run/t6549.scala')
-rw-r--r--test/files/run/t6549.scala22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/files/run/t6549.scala b/test/files/run/t6549.scala
new file mode 100644
index 0000000000..7335661dc7
--- /dev/null
+++ b/test/files/run/t6549.scala
@@ -0,0 +1,22 @@
+import scala.tools.partest.ReplTest
+
+// Check that the fragments of code generated in
+// in the REPL correctly escape values added to
+// literal strings.
+//
+// Before, we saw:
+// scala> m("").x = 77
+// <console>:10: error: ')' expected but string literal found.
+// + "m("").x: Int = " + `$ires8` + "\n"
+object Test extends ReplTest {
+ def code = """
+ |case class `X"`(var xxx: Any)
+ |val m = Map(("": Any) -> `X"`("\""), ('s: Any) -> `X"`("\""))
+ |m("")
+ |m("").xxx
+ |m("").xxx = 0
+ |m("").xxx = "\""
+ |m('s).xxx = 's
+ |val `"` = 0
+ """.stripMargin
+}