diff options
author | Som Snytt <som.snytt@gmail.com> | 2014-07-14 07:32:03 -0700 |
---|---|---|
committer | Som Snytt <som.snytt@gmail.com> | 2014-07-14 07:32:03 -0700 |
commit | b0dd01ebb4b0cc41a6629357522217bfe14821fb (patch) | |
tree | 775eeaf9386ed24024f028fe9a8f30640964bf55 /test | |
parent | aea6519685561ee076e7fdaac48c2bf970389b83 (diff) | |
download | scala-b0dd01ebb4b0cc41a6629357522217bfe14821fb.tar.gz scala-b0dd01ebb4b0cc41a6629357522217bfe14821fb.tar.bz2 scala-b0dd01ebb4b0cc41a6629357522217bfe14821fb.zip |
SI-8608 f interpolator emits constant strings
When invoking `format` is obviated by a lack of
formatting fields, then just degenerate to an
unenhanced constant string.
This means it doesn't cost anything to use
f"$$ordinary" in place of "$ordinary", which
may cause warnings under -Xlint.
Note that certain format literals, in particular
for line separator %n, are not actually literals and
can't be replaced at compile time.
Diffstat (limited to 'test')
-rw-r--r-- | test/files/run/stringinterpolation_macro-run.check | 4 | ||||
-rw-r--r-- | test/files/run/stringinterpolation_macro-run.scala | 1 | ||||
-rw-r--r-- | test/files/run/t8608-no-format.scala | 15 |
3 files changed, 20 insertions, 0 deletions
diff --git a/test/files/run/stringinterpolation_macro-run.check b/test/files/run/stringinterpolation_macro-run.check index ead61e76ac..c7f46bac87 100644 --- a/test/files/run/stringinterpolation_macro-run.check +++ b/test/files/run/stringinterpolation_macro-run.check @@ -63,5 +63,9 @@ She is 4 feet tall. 05/26/12 05/26/12 % + mind +------ +matter + 7 7 9 7 9 9 diff --git a/test/files/run/stringinterpolation_macro-run.scala b/test/files/run/stringinterpolation_macro-run.scala index a6def98540..e18375d521 100644 --- a/test/files/run/stringinterpolation_macro-run.scala +++ b/test/files/run/stringinterpolation_macro-run.scala @@ -115,6 +115,7 @@ println(f"""${"1234"}%TD""") // literals and arg indexes println(f"%%") +println(f" mind%n------%nmatter%n") println(f"${7}%d %<d ${9}%d") println(f"${7}%d %2$$d ${9}%d") diff --git a/test/files/run/t8608-no-format.scala b/test/files/run/t8608-no-format.scala new file mode 100644 index 0000000000..71c369a7ea --- /dev/null +++ b/test/files/run/t8608-no-format.scala @@ -0,0 +1,15 @@ + +import scala.tools.partest.JavapTest + +object Test extends JavapTest { + def code = """ + |f"hello, world" + |:javap -prv - + """.stripMargin + + // no format + override def yah(res: Seq[String]) = { + // note: avoid the word "information" + res forall (!_.contains("StringOps.format")) + } +} |