summaryrefslogtreecommitdiff
path: root/test/files/run/manifests.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2012-03-09 16:28:48 -0500
committerPaul Phillips <paulp@improving.org>2012-03-09 18:51:48 -0500
commitf1c39dd9816fd48663064307c39e2d9c8c936cd5 (patch)
tree68cec6bd3ab035fec3fa48da2fe664bbddcee8cb /test/files/run/manifests.scala
parent42f90593538a16a285a9bb605da9fd9116e71a57 (diff)
downloadscala-f1c39dd9816fd48663064307c39e2d9c8c936cd5.tar.gz
scala-f1c39dd9816fd48663064307c39e2d9c8c936cd5.tar.bz2
scala-f1c39dd9816fd48663064307c39e2d9c8c936cd5.zip
Add symbol to Manifests.
Phantom types were vanishing during the erasure which takes place from manifest -> class object -> tpe.
Diffstat (limited to 'test/files/run/manifests.scala')
-rw-r--r--test/files/run/manifests.scala19
1 files changed, 14 insertions, 5 deletions
diff --git a/test/files/run/manifests.scala b/test/files/run/manifests.scala
index 1da06b8aee..6b6ea80b34 100644
--- a/test/files/run/manifests.scala
+++ b/test/files/run/manifests.scala
@@ -46,11 +46,20 @@ object Test
def showsContravariance[T, U, CC[_]](implicit ev1: Manifest[T], ev2: Manifest[U], ev3: Manifest[CC[T]], ev4: Manifest[CC[U]]) =
new VarianceTester[T, U, CC](CONTRA) showsExpectedVariance
- def typeCompare[T, U](implicit ev1: Manifest[T], ev2: Manifest[U]) = (ev1 <:< ev2, ev2 <:< ev1) match {
- case (true, true) => SAME
- case (true, false) => SUB
- case (false, true) => SUPER
- case (false, false) => NONE
+ def typeCompare[T, U](implicit ev1: Manifest[T], ev2: Manifest[U]) = {
+ // checking types as well
+ if ((ev1 <:< ev2) != (ev1.tpe <:< ev2.tpe))
+ println("Failed! " + ((ev1, ev2)))
+
+ if ((ev2 <:< ev1) != (ev2.tpe <:< ev1.tpe))
+ println("Failed! " + ((ev2, ev1)))
+
+ (ev1 <:< ev2, ev2 <:< ev1) match {
+ case (true, true) => SAME
+ case (true, false) => SUB
+ case (false, true) => SUPER
+ case (false, false) => NONE
+ }
}
def assertAnyRef[T: Manifest] = List(