summaryrefslogtreecommitdiff
path: root/src/compiler
diff options
context:
space:
mode:
authorBurak Emir <emir@epfl.ch>2006-06-17 15:39:23 +0000
committerBurak Emir <emir@epfl.ch>2006-06-17 15:39:23 +0000
commit28c125d3b9466148db9e593cf965f58c24f9b43c (patch)
tree72d4c4701b1da84a82e1671778bd7ebd90abeea4 /src/compiler
parentb142c4376d0719f67f1c4a609564a89936474d10 (diff)
downloadscala-28c125d3b9466148db9e593cf965f58c24f9b43c.tar.gz
scala-28c125d3b9466148db9e593cf965f58c24f9b43c.tar.bz2
scala-28c125d3b9466148db9e593cf965f58c24f9b43c.zip
added code for lifting valdef
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/scala/tools/nsc/transform/LiftCode.scala8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/LiftCode.scala b/src/compiler/scala/tools/nsc/transform/LiftCode.scala
index 9dd92af3af..03e964df88 100644
--- a/src/compiler/scala/tools/nsc/transform/LiftCode.scala
+++ b/src/compiler/scala/tools/nsc/transform/LiftCode.scala
@@ -103,6 +103,13 @@ abstract class LiftCode extends Transform {
env.addTarget(name.toString(), sym)
val res = reflect.Target(sym, reify(body))
res
+
+ case vd @ ValDef(mods, name, tpt, rhs) =>
+ val rtpe = reify(vd.tpe) // will return null, currently?!
+ val sym = reflect.LocalValue(currentOwner, name.toString(), rtpe)
+ val rhs_ = reify(rhs)
+ reflect.ValDef(sym, rhs_)
+
case _ =>
throw new TypeError("cannot reify tree: " + tree)
}
@@ -173,6 +180,7 @@ abstract class LiftCode extends Transform {
case reflect.MethodType(_, _) =>
if (value.isInstanceOf[reflect.ImplicitMethodType]) "scala.reflect.ImplicitMethodType" else "scala.reflect.MethodType"
case reflect.PolyType(_, _, _) => "scala.reflect.PolyType"
+ case x:reflect.ValDef => "scala.reflect.ValDef" // bq
case _ =>
""
}