aboutsummaryrefslogtreecommitdiff
path: root/tests/pos/i1318.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pos/i1318.scala')
-rw-r--r--tests/pos/i1318.scala38
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/pos/i1318.scala b/tests/pos/i1318.scala
new file mode 100644
index 000000000..dfb882825
--- /dev/null
+++ b/tests/pos/i1318.scala
@@ -0,0 +1,38 @@
+object Foo {
+ class S(i: Int)
+ case class T(i: Int) extends S(i)
+
+ object T {
+ def unapply(s: S): Option[(Int, Int)] = Some(5, 6)
+ // def unapply(o: Object): Option[(Int, Int, Int)] = Some(5, 6, 7)
+ }
+
+ val s = new S(5)
+
+ s match {
+ // case T(x, y, z) => println(x + y + z)
+ case T(x, y) => println(x + y)
+ case T(x) => println(x)
+ case _ => println("not match")
+ }
+}
+
+object Bar {
+ case class T(i: Int)
+ class S(i: Int) extends T(i)
+
+ object T {
+ def unapply(s: S): Option[(Int, Int)] = Some(5, 6)
+ // def unapply(o: Object): Option[(Int, Int, Int)] = Some(5, 6, 7)
+ }
+
+ val s = new S(5)
+
+ s match {
+ // case T(x, y, z) => println(x + y + z)
+ case T(x, y) => println(x + y)
+ case T(x) => println(x)
+ case _ => println("not match")
+ }
+}
+