diff options
Diffstat (limited to 'test/pending/pos/unapply.scala')
-rw-r--r-- | test/pending/pos/unapply.scala | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/test/pending/pos/unapply.scala b/test/pending/pos/unapply.scala index 70e4a1d913..4ddc93120b 100644 --- a/test/pending/pos/unapply.scala +++ b/test/pending/pos/unapply.scala @@ -1,3 +1,9 @@ +object Test { + def main(args:Array[String]) = { + Foo.run + Mas.run + } +} object Foo { def unapply(x: Any): Option[Product2[Int, String]] = x match { case y: Bar => Some(Tuple(y.size, y.name)) @@ -8,7 +14,7 @@ object Foo { case y: Bar => Some(Tuple(y.name)) case _ => None }*/ - def main(args:Array[String]): Unit = { + def run: Unit = { val b = new Bar b match { case Foo(s:Int, n:String) => Console.println("size "+s+" name "+n) @@ -28,3 +34,22 @@ class Bar { var size: Int = 50 var name: String = "medium" } + +object Mas { + object Gaz { + def unapply(x: Any): Option[Product2[Int, String]] = x match { + case y: Baz => Some(Tuple(y.size, y.name)) + case _ => None + } + } + class Baz { + var size: Int = 60 + var name: String = "too large" + } + def run: Unit = { + val b = new Baz + b match { + case Gaz(s:Int, n:String) => Console.println("size "+s+" name "+n) + } + } +} |