From b683b83007a87ce5adf30f283f1a04cbccdaa3d2 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Thu, 1 Dec 2011 13:14:44 +0100 Subject: Special treatment of emptyValDef in reify emptyValDef has special meaning in the compiler, so reify needs to preserve it by identity and not just by structure. --- src/compiler/scala/tools/nsc/transform/LiftCode.scala | 2 ++ src/library/scala/reflect/api/Trees.scala | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/compiler/scala/tools/nsc/transform/LiftCode.scala b/src/compiler/scala/tools/nsc/transform/LiftCode.scala index 08e35ff6c3..7a64fc9b5e 100644 --- a/src/compiler/scala/tools/nsc/transform/LiftCode.scala +++ b/src/compiler/scala/tools/nsc/transform/LiftCode.scala @@ -476,6 +476,8 @@ abstract class LiftCode extends Transform with TypingTransformers { if (!(boundSyms exists (tt.tpe contains _))) mirrorCall("TypeTree", reifyType(tt.tpe)) else if (tt.original != null) reify(tt.original) else TypeTree() + case global.emptyValDef => + mirrorSelect("emptyValDef") case _ => if (tree.isDef) boundSyms += tree.symbol diff --git a/src/library/scala/reflect/api/Trees.scala b/src/library/scala/reflect/api/Trees.scala index 20f20890e8..752319d9a4 100644 --- a/src/library/scala/reflect/api/Trees.scala +++ b/src/library/scala/reflect/api/Trees.scala @@ -624,6 +624,8 @@ trait Trees /*extends reflect.generic.Trees*/ { self: Universe => } def TypeTree(tp: Type): TypeTree = TypeTree() setType tp + + def emptyValDef: ValDef // ------ traversers, copiers, and transformers --------------------------------------------- -- cgit v1.2.3