diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2012-11-21 14:01:04 +0100 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2012-11-26 22:47:22 +0100 |
commit | a0001fcfd06fc2eca9ee965aeb766c832797aa9e (patch) | |
tree | 5486401e5d72d08fbca350b96dd3762a0397f968 /test | |
parent | 6cb08a1aabd915bbf3562c03d1b89af617eed81d (diff) | |
download | scala-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')
-rw-r--r-- | test/files/run/sm-interpolator.scala | 41 |
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) +} |