aboutsummaryrefslogtreecommitdiff
path: root/tests/pos/dependent-extractors.scala
blob: 4d0830155fd2145c4d138712cc2942cb62cfef2c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
object Test {

  abstract class C { type T; val x: T }

  val c = new C { type T = Int; val x = 1 }

  object X { def unapply(x: C): Some[x.T] = Some(x.x) }

  val y = c match { case X(y) => y }
  val y1: Int = y

  val z = (c: Any)  match { case X(y) => y }
  val z1: C#T = z
}