summaryrefslogtreecommitdiff
path: root/test/pending/pos
diff options
context:
space:
mode:
Diffstat (limited to 'test/pending/pos')
-rw-r--r--test/pending/pos/unapply.scala30
1 files changed, 16 insertions, 14 deletions
diff --git a/test/pending/pos/unapply.scala b/test/pending/pos/unapply.scala
index e784299ad8..70e4a1d913 100644
--- a/test/pending/pos/unapply.scala
+++ b/test/pending/pos/unapply.scala
@@ -1,23 +1,26 @@
-case class MyTuple2[A,B](val _1:A, val snd:B)
-class Foo
object Foo {
- def unapply(x:Any): Option[Product2[Int,String]] = {
- if(x.isInstanceOf[Bar]) {
- val y = x.asInstanceOf[Bar]
- Some(MyTuple2(y.size, y.name))
- } else None
- }
-
- def main(args:Array[String]) = {
+ def unapply(x: Any): Option[Product2[Int, String]] = x match {
+ case y: Bar => Some(Tuple(y.size, y.name))
+ case _ => None
+ }/*
+ // ERROR: test/pending/pos/unapply.scala:6 error: method unapply is defined twice
+ def unapply(x: Any): Option[Product1[String]] = x match {
+ case y: Bar => Some(Tuple(y.name))
+ case _ => None
+ }*/
+ def main(args:Array[String]): Unit = {
val b = new Bar
b match {
- case Foo(s:Int,n:String) => Console.println("size "+s+" name "+n)
+ case Foo(s:Int, n:String) => Console.println("size "+s+" name "+n)
}
b.size = 54
b.name = "large"
b match {
- case Foo(s:Int,n:String) => Console.println("size "+s+" name "+n)
- }
+ case Foo(s:Int, n:String) => Console.println("size "+s+" name "+n)
+ }/*
+ b match {
+ case Foo(n) => Console.println("name " + n)
+ }*/
}
}
@@ -25,4 +28,3 @@ class Bar {
var size: Int = 50
var name: String = "medium"
}
-