diff options
author | Martin Odersky <odersky@gmail.com> | 2011-11-29 12:06:30 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2011-11-29 12:06:30 +0000 |
commit | ee5644056a8ee40de66ba478eef3687c547dc570 (patch) | |
tree | 5760df012a48bea085bfa540715d53efdf153da3 /src/compiler | |
parent | 3c24983f427e408760cb6e3d18291a4e951a8e12 (diff) | |
download | scala-ee5644056a8ee40de66ba478eef3687c547dc570.tar.gz scala-ee5644056a8ee40de66ba478eef3687c547dc570.tar.bz2 scala-ee5644056a8ee40de66ba478eef3687c547dc570.zip |
Attempt to fix #5230. Review by burmako.
Diffstat (limited to 'src/compiler')
-rw-r--r-- | src/compiler/scala/tools/nsc/transform/LiftCode.scala | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/LiftCode.scala b/src/compiler/scala/tools/nsc/transform/LiftCode.scala index b395f9095e..40ce7128c8 100644 --- a/src/compiler/scala/tools/nsc/transform/LiftCode.scala +++ b/src/compiler/scala/tools/nsc/transform/LiftCode.scala @@ -472,8 +472,10 @@ abstract class LiftCode extends Transform with TypingTransformers { reifyFree(tree) case Ident(_) if !(boundSyms contains tree.symbol) => reifyFree(tree) - case TypeTree() if (tree.tpe != null) => - mirrorCall("TypeTree", reifyType(tree.tpe)) + case tt: TypeTree if (tt.tpe != null) => + if (!(boundSyms exists (tt.tpe contains _))) mirrorCall("TypeTree", reifyType(tt.tpe)) + else if (tt.original != null) reify(tt.original) + else TypeTree() case _ => if (tree.isDef) boundSyms += tree.symbol |