summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2011-12-01 13:14:44 +0100
committerMartin Odersky <odersky@gmail.com>2011-12-01 13:38:48 +0100
commitb683b83007a87ce5adf30f283f1a04cbccdaa3d2 (patch)
treee13de131a460cc94976330caf2445d9d10328606
parent51f5831b0c0d14c28938a6f537b93f183217d942 (diff)
downloadscala-b683b83007a87ce5adf30f283f1a04cbccdaa3d2.tar.gz
scala-b683b83007a87ce5adf30f283f1a04cbccdaa3d2.tar.bz2
scala-b683b83007a87ce5adf30f283f1a04cbccdaa3d2.zip
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.
-rw-r--r--src/compiler/scala/tools/nsc/transform/LiftCode.scala2
-rw-r--r--src/library/scala/reflect/api/Trees.scala2
2 files changed, 4 insertions, 0 deletions
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 ---------------------------------------------