summaryrefslogtreecommitdiff
path: root/test/pending/pos/unapplyNeedsMemberType.scala
diff options
context:
space:
mode:
authorBurak Emir <emir@epfl.ch>2006-11-21 15:11:08 +0000
committerBurak Emir <emir@epfl.ch>2006-11-21 15:11:08 +0000
commit87d1a060ea818fde4be4b102860ccaddd05f504f (patch)
tree32b40e88a1fe2cd1ee964c5a8191451da02e5f89 /test/pending/pos/unapplyNeedsMemberType.scala
parent4a2b662fa8140e65a0217c7c3b93bbebcfc918ca (diff)
downloadscala-87d1a060ea818fde4be4b102860ccaddd05f504f.tar.gz
scala-87d1a060ea818fde4be4b102860ccaddd05f504f.tar.bz2
scala-87d1a060ea818fde4be4b102860ccaddd05f504f.zip
unapply code in typer needs call to memberType?
Diffstat (limited to 'test/pending/pos/unapplyNeedsMemberType.scala')
-rw-r--r--test/pending/pos/unapplyNeedsMemberType.scala25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/pending/pos/unapplyNeedsMemberType.scala b/test/pending/pos/unapplyNeedsMemberType.scala
new file mode 100644
index 0000000000..b423257e04
--- /dev/null
+++ b/test/pending/pos/unapplyNeedsMemberType.scala
@@ -0,0 +1,25 @@
+// error with -Xunapply, (because of missing call to memberType?)
+
+trait Gunk[a] {
+
+ type Seq
+
+ object Cons {
+ def unapply(s: Seq) = unapply_Cons(s)
+ }
+ def unapply_Cons(s: Any): Option[Tuple2[a, Seq]]
+}
+
+class Join[a] extends Gunk[a] {
+ type Seq = JoinSeq
+
+ abstract class JoinSeq
+ case class App(xs: Seq, ys: Seq) extends JoinSeq
+
+ def append(s1: Seq, s2: Seq): Seq = s1 // mock implementation
+
+ def unapply_Cons(s: Any) = s match {
+ case App(Cons(x, xs), ys) => Some(Pair(x, append(xs, ys)))
+ case _ => null
+ }
+}