summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2011-11-29 12:06:30 +0000
committerMartin Odersky <odersky@gmail.com>2011-11-29 12:06:30 +0000
commitee5644056a8ee40de66ba478eef3687c547dc570 (patch)
tree5760df012a48bea085bfa540715d53efdf153da3 /src
parent3c24983f427e408760cb6e3d18291a4e951a8e12 (diff)
downloadscala-ee5644056a8ee40de66ba478eef3687c547dc570.tar.gz
scala-ee5644056a8ee40de66ba478eef3687c547dc570.tar.bz2
scala-ee5644056a8ee40de66ba478eef3687c547dc570.zip
Attempt to fix #5230. Review by burmako.
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/transform/LiftCode.scala6
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