summaryrefslogtreecommitdiff
path: root/test/files/run/t7715.scala
diff options
context:
space:
mode:
authorSom Snytt <som.snytt@gmail.com>2013-07-27 14:49:57 -0700
committerSom Snytt <som.snytt@gmail.com>2013-08-12 11:59:20 -0700
commit67d94f681fe17b18bb9ba1a3cec0a15a48bc3251 (patch)
tree7a2bdc5afbb48a6b5de130467337e56ddae7250d /test/files/run/t7715.scala
parente7876d5c41bbea0ee4679815edb5dc1ecef4c6a9 (diff)
downloadscala-67d94f681fe17b18bb9ba1a3cec0a15a48bc3251.tar.gz
scala-67d94f681fe17b18bb9ba1a3cec0a15a48bc3251.tar.bz2
scala-67d94f681fe17b18bb9ba1a3cec0a15a48bc3251.zip
SI-7715 String inpatternation s"$_" for s"${_}"
In a pattern, ``` scala> implicit class RX(val sc: StringContext) { | def rx = sc.parts.mkString("(.+)").r } defined class RX scala> "2 by 4" match { case rx"$a by $_" => a } res0: String = 2 scala> val rx"$_ by $b" = "2 by 4" b: String = 4 ```
Diffstat (limited to 'test/files/run/t7715.scala')
-rw-r--r--test/files/run/t7715.scala24
1 files changed, 24 insertions, 0 deletions
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
+ })
+}