diff options
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 |