summaryrefslogtreecommitdiff
path: root/test/files/pos/t5886.scala
blob: 066187322de866c66cd7cf6aef75ebf64299a64d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
object A {
  def f0[T](x: T): T = x
  def f1[T](x: => T): T = x
  def f2[T](x: () => T): T = x()

  f0(this.getClass)  // ok
  f1(this.getClass)
  f2(this.getClass)  // ok

  // a.scala:7: error: type mismatch;
  //  found   : Class[_ <: A.type]
  //  required: Class[?0(in value x1)] where type ?0(in value x1) <: A.type
  // Note: A.type >: ?0, but Java-defined class Class is invariant in type T.
  // You may wish to investigate a wildcard type such as `_ >: ?0`. (SLS 3.2.10)
  //   val x1 = f1(this.getClass)
  //                    ^
  // one error found
}