summaryrefslogblamecommitdiff
path: root/test/files/pos/t6624.scala
blob: 44554c59c724b43d9ba623f7106dc189343d9d10 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12











                                                                             
                                                                                                 














                                                                   
sealed trait KList[+M[_]]

case class KCons[M[_], +T <: KList[M]](
  tail: T
) extends KList[M]

case class KNil[M[_]]() extends KList[M]

object Test {
  val klist: KCons[Option, KCons[Option, KCons[Option, KNil[Nothing]]]] = ???

  // crashes with
  // "Exception in thread "main" scala.reflect.internal.Types$TypeError: value _1 is not a member
  // of KCons[Option,KCons[Option,KNil[Nothing]]]"
  klist match {
   case KCons(KCons(KCons(_))) =>
  }

  // fails with a similar message as an error, rather than a crash.
  klist match {
    case KCons(KCons(_)) =>
  }

  // succeeds
  klist match {
    case KCons(_) =>
  }
}