summaryrefslogtreecommitdiff
path: root/test/files/pos/t5886.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2013-01-14 10:02:00 +0100
committerAdriaan Moors <adriaan.moors@typesafe.com>2013-05-15 09:44:09 -0700
commite9c3f87886ff4ffc25d5976abccbdabb0b2c48ee (patch)
tree0e54fe67b89a01d58717808f4973bcf43301bf70 /test/files/pos/t5886.scala
parent487584caa97d0905df06e32c292c00fcd82a2fa3 (diff)
downloadscala-e9c3f87886ff4ffc25d5976abccbdabb0b2c48ee.tar.gz
scala-e9c3f87886ff4ffc25d5976abccbdabb0b2c48ee.tar.bz2
scala-e9c3f87886ff4ffc25d5976abccbdabb0b2c48ee.zip
SI-5886 Remove check for packed type conformance.
Nothing breaks. Why did by-name arguments have this extra check? What's the difference to a () => T? The check was added originally in 8414eba.
Diffstat (limited to 'test/files/pos/t5886.scala')
-rw-r--r--test/files/pos/t5886.scala18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/files/pos/t5886.scala b/test/files/pos/t5886.scala
new file mode 100644
index 0000000000..066187322d
--- /dev/null
+++ b/test/files/pos/t5886.scala
@@ -0,0 +1,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
+}