aboutsummaryrefslogtreecommitdiff
path: root/tests/invalid/pos/t3577.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2015-12-20 22:00:29 +0100
committerMartin Odersky <odersky@gmail.com>2015-12-20 22:00:45 +0100
commite51b8845fb20fe3a4e1c655d4b72e2833906bbc2 (patch)
tree91bc16867d7a709566d8be80902b3256294cf338 /tests/invalid/pos/t3577.scala
parent581fee04f808d6f7759f98358e7475e6a58138e3 (diff)
downloaddotty-e51b8845fb20fe3a4e1c655d4b72e2833906bbc2.tar.gz
dotty-e51b8845fb20fe3a4e1c655d4b72e2833906bbc2.tar.bz2
dotty-e51b8845fb20fe3a4e1c655d4b72e2833906bbc2.zip
The big pending/pos test triage
Diffstat (limited to 'tests/invalid/pos/t3577.scala')
-rw-r--r--tests/invalid/pos/t3577.scala32
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/invalid/pos/t3577.scala b/tests/invalid/pos/t3577.scala
new file mode 100644
index 000000000..e94b69b4b
--- /dev/null
+++ b/tests/invalid/pos/t3577.scala
@@ -0,0 +1,32 @@
+case class Check[A](val value: A)
+
+case class C2(checks: Check[_]*);
+
+object C {
+ def m(x : C2): Any = (null: Any) match {
+ case C2(_, rest : _*) => {
+ // Invalid: Vararg pattern cannot be split between normal and :_* patterns.
+ // This split also does not work for vararg arguments, so there's no
+ // good argument it should work for patterns
+ rest.map(_.value)
+ }
+ }
+}
+
+///////////////////
+
+object Container {
+ trait Exp[+T]
+ abstract class FuncExp[-S, +T]
+
+ sealed abstract class FoundNode[T, Repr] {
+ def optimize[TupleT, U, That](parentNode: FlatMap[T, Repr, U, That]): Any
+ def optimize2[TupleT, U, That](parentNode: Any): Any
+ }
+
+ class FlatMap[T, Repr, U, That]
+
+ val Seq(fn: FoundNode[t, repr]) = Seq[FoundNode[_, _]]()
+ fn.optimize(null) // was: scala.MatchError: ? (of class BoundedWildcardType) @ Variances#varianceInType
+ fn.optimize2(null) // was: fatal error: bad type: ?(class scala.reflect.internal.Types$BoundedWildcardType) @ Pickle.putType
+}