summaryrefslogtreecommitdiff
path: root/test/pending/pos/unapply.scala
diff options
context:
space:
mode:
Diffstat (limited to 'test/pending/pos/unapply.scala')
-rw-r--r--test/pending/pos/unapply.scala27
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)
+ }
+ }
+}