File: t5886.scala

package info (click to toggle)
scala 2.11.12-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 62,924 kB
  • sloc: javascript: 28,808; java: 13,415; xml: 3,135; sh: 1,620; python: 756; makefile: 38; awk: 36; ansic: 6
file content (18 lines) | stat: -rw-r--r-- 564 bytes parent folder | download | duplicates (4)
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
}