aboutsummaryrefslogtreecommitdiff
path: root/tests/neg/variances-constr.scala
blob: a5259c4da1f032dd233b6d5e530924a84f689efa (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class C[+A] {

  private[this] var y: A = _
  def getY: A = y

  class Inner(x: A) { // error A appears contravariantly
    y = x
  }
  class Inner2[B <: A](x: B) { // error A appears contravariantly
    y = x
  }
}

object Test {

  def main(args: Array[String]) = {
    val x = new C[String]
    val y: C[Any] = x
    val i = new y.Inner(1)
    val s: String = x.getY
    val i2 = new y.Inner2(1)
    val s2: String = x.getY
    println(s)
  }
}