summaryrefslogtreecommitdiff
path: root/test/files/run/sm-interpolator.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2012-11-21 14:01:04 +0100
committerJason Zaugg <jzaugg@gmail.com>2012-11-26 22:47:22 +0100
commita0001fcfd06fc2eca9ee965aeb766c832797aa9e (patch)
tree5486401e5d72d08fbca350b96dd3762a0397f968 /test/files/run/sm-interpolator.scala
parent6cb08a1aabd915bbf3562c03d1b89af617eed81d (diff)
downloadscala-a0001fcfd06fc2eca9ee965aeb766c832797aa9e.tar.gz
scala-a0001fcfd06fc2eca9ee965aeb766c832797aa9e.tar.bz2
scala-a0001fcfd06fc2eca9ee965aeb766c832797aa9e.zip
Adds a margin stripping string interpolator.
Currently only for compiler internal use. Designed to avoid surprises if the interpolated values themselves contain the margin delimiter. Before: val bip = "\n |.." s"""fooo |bar $bip |baz""".stripMargin "fooo bar .. baz" After: sm"""fooo |bar $bip |baz""" "fooo bar |.. baz"
Diffstat (limited to 'test/files/run/sm-interpolator.scala')
-rw-r--r--test/files/run/sm-interpolator.scala41
1 files changed, 41 insertions, 0 deletions
diff --git a/test/files/run/sm-interpolator.scala b/test/files/run/sm-interpolator.scala
new file mode 100644
index 0000000000..7f7b9f061a
--- /dev/null
+++ b/test/files/run/sm-interpolator.scala
@@ -0,0 +1,41 @@
+object Test extends App {
+ import scala.reflect.internal.util.StringContextStripMarginOps
+ def check(actual: Any, expected: Any) = if (actual != expected) sys.error(s"expected: [$expected], actual: [$actual])")
+
+ val bar = "|\n ||"
+
+ check(
+ sm"""|ab
+ |de
+ |${bar} | ${1}""",
+ "ab \nde\n|\n || | 1")
+
+ check(
+ sm"|",
+ "")
+
+ check(
+ sm"${0}",
+ "0")
+
+ check(
+ sm"${0}",
+ "0")
+
+ check(
+ sm"""${0}|${1}
+ |""",
+ "0|1\n")
+
+ check(
+ sm""" ||""",
+ "|")
+
+ check(
+ sm""" ${" "} ||""",
+ " ||")
+
+ check(
+ sm"\n",
+ raw"\n".stripMargin)
+}