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
}
|