diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-08-16 11:40:49 -0700 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-08-16 11:40:49 -0700 |
commit | 01f2c2ac45a15312bd45193fd6302b7b01de9db7 (patch) | |
tree | 0764a30564ee83f05c7358643fed4bfbded64d16 /test | |
parent | 1b9c8d042cdd83dc48d24300c347302bd27def8f (diff) | |
parent | 67d94f681fe17b18bb9ba1a3cec0a15a48bc3251 (diff) | |
download | scala-01f2c2ac45a15312bd45193fd6302b7b01de9db7.tar.gz scala-01f2c2ac45a15312bd45193fd6302b7b01de9db7.tar.bz2 scala-01f2c2ac45a15312bd45193fd6302b7b01de9db7.zip |
Merge pull request #2823 from som-snytt/issue/7715
SI-7715 String inpatternation s"$_" for s"${_}"
Diffstat (limited to 'test')
-rw-r--r-- | test/files/neg/t7715.check | 13 | ||||
-rw-r--r-- | test/files/neg/t7715.scala | 18 | ||||
-rw-r--r-- | test/files/run/t7715.check | 3 | ||||
-rw-r--r-- | test/files/run/t7715.scala | 24 |
4 files changed, 58 insertions, 0 deletions
diff --git a/test/files/neg/t7715.check b/test/files/neg/t7715.check new file mode 100644 index 0000000000..4ee6b6c95d --- /dev/null +++ b/test/files/neg/t7715.check @@ -0,0 +1,13 @@ +t7715.scala:8: error: error in interpolated string: identifier or block expected + days map s"On the $_th day of Christmas" foreach println + ^ +t7715.scala:10: error: error in interpolated string: identifier or block expected + val rf = (n: Int) => s"\\*{$_}"(n).r + ^ +t7715.scala:17: error: unbound placeholder parameter + days zip days map s"${_: Int} by ${_: Int}".tupled foreach println + ^ +t7715.scala:17: error: unbound placeholder parameter + days zip days map s"${_: Int} by ${_: Int}".tupled foreach println + ^ +four errors found diff --git a/test/files/neg/t7715.scala b/test/files/neg/t7715.scala new file mode 100644 index 0000000000..637ab8df6d --- /dev/null +++ b/test/files/neg/t7715.scala @@ -0,0 +1,18 @@ + +import PartialFunction.cond +import util._ + +object Test extends App { + val days = (1 to 12).toList + + days map s"On the $_th day of Christmas" foreach println + + val rf = (n: Int) => s"\\*{$_}"(n).r + def stars(n: Int)(s: String) = { + val r = rf(n) + cond(s) { case r(_*) => true } + } + Console println stars(5)("*****") + + days zip days map s"${_: Int} by ${_: Int}".tupled foreach println +} diff --git a/test/files/run/t7715.check b/test/files/run/t7715.check new file mode 100644 index 0000000000..592d7fe2ea --- /dev/null +++ b/test/files/run/t7715.check @@ -0,0 +1,3 @@ +6 +4 +4 diff --git a/test/files/run/t7715.scala b/test/files/run/t7715.scala new file mode 100644 index 0000000000..0ad3913016 --- /dev/null +++ b/test/files/run/t7715.scala @@ -0,0 +1,24 @@ + +import PartialFunction.cond +import util._ + +object Test extends App { + + object I { def unapply(x: String): Option[Int] = Try(x.toInt).toOption } + implicit class RX(val sc: StringContext) { + def rx = sc.parts.mkString("(.+)").r + } + + Console println ("2 by 4" match { + case rx"${I(a)} by ${I(b)}" => a+b + case _ => -1 + }) + Console println ("2 by 4" match { + case rx"${_} by ${I(b)}" => b // pattern placeholder + case _ => -1 + }) + Console println ("2 by 4" match { + case rx"$_ by ${I(b)}" => b // is permitted this way, too + case _ => -1 + }) +} |