summaryrefslogtreecommitdiff
path: root/test/pending/pos
diff options
context:
space:
mode:
authorBurak Emir <emir@epfl.ch>2006-10-27 13:51:37 +0000
committerBurak Emir <emir@epfl.ch>2006-10-27 13:51:37 +0000
commit31e93255cbbc4dc99d4227aade3d2d1956830d1a (patch)
treede393512a3c3bb015d051faa87a7e57ccc28b306 /test/pending/pos
parent3554798475156367b3bd21fad657a158e77b3e9e (diff)
downloadscala-31e93255cbbc4dc99d4227aade3d2d1956830d1a.tar.gz
scala-31e93255cbbc4dc99d4227aade3d2d1956830d1a.tar.bz2
scala-31e93255cbbc4dc99d4227aade3d2d1956830d1a.zip
testcase 4 unapply
Diffstat (limited to 'test/pending/pos')
-rw-r--r--test/pending/pos/unapply.scala28
1 files changed, 28 insertions, 0 deletions
diff --git a/test/pending/pos/unapply.scala b/test/pending/pos/unapply.scala
new file mode 100644
index 0000000000..ee33845d81
--- /dev/null
+++ b/test/pending/pos/unapply.scala
@@ -0,0 +1,28 @@
+case class MyTuple2[A,B](val _1:A, val _2:B)
+
+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]) = {
+ val b = new Bar
+ b match {
+ 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)
+ }
+ }
+}
+
+class Bar {
+ var size: Int = 50
+ var name: String = "medium"
+}
+