diff options
author | Martin Odersky <odersky@gmail.com> | 2015-10-23 00:05:04 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2015-10-23 00:05:04 +0200 |
commit | 82afe5f3f4d0286a0202a959e03871eb7454dbec (patch) | |
tree | 5b90d4e6cce3711d302f26f2f90e50fba45d7423 | |
parent | b927f66d4b90bc34cc864f596b8d1dc97fdc3ebe (diff) | |
download | dotty-82afe5f3f4d0286a0202a959e03871eb7454dbec.tar.gz dotty-82afe5f3f4d0286a0202a959e03871eb7454dbec.tar.bz2 dotty-82afe5f3f4d0286a0202a959e03871eb7454dbec.zip |
Fix #840
Problem was that interceptTypeTestCasts was run at wrong phase.
It saw after erasura a type of the form `x.Array$$T`. Before
erasure that type is simply an alias of another type, but after
erasure, Arraya$$T is defined to be a type alias of a Wildcard type.
-rw-r--r-- | src/dotty/tools/dotc/transform/Erasure.scala | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/transform/Erasure.scala b/src/dotty/tools/dotc/transform/Erasure.scala index b1c896997..a414c6399 100644 --- a/src/dotty/tools/dotc/transform/Erasure.scala +++ b/src/dotty/tools/dotc/transform/Erasure.scala @@ -400,7 +400,7 @@ object Erasure extends TypeTestsCasts{ } override def typedTypeApply(tree: untpd.TypeApply, pt: Type)(implicit ctx: Context) = { - val ntree = interceptTypeApply(tree.asInstanceOf[TypeApply]) + val ntree = interceptTypeApply(tree.asInstanceOf[TypeApply])(ctx.withPhase(ctx.erasurePhase)) ntree match { case TypeApply(fun, args) => |