summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/compiler/scala/tools/nsc/transform/Reifiers.scala3
-rw-r--r--test/files/pos/t0651.scala4
2 files changed, 7 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/Reifiers.scala b/src/compiler/scala/tools/nsc/transform/Reifiers.scala
index e29621e395..682ac1ee8f 100644
--- a/src/compiler/scala/tools/nsc/transform/Reifiers.scala
+++ b/src/compiler/scala/tools/nsc/transform/Reifiers.scala
@@ -250,6 +250,9 @@ trait Reifiers {
reflect.This(reify(tree.symbol))
case Block(stats, expr) =>
reflect.Block(stats.map(reify), reify(expr))
+ case New(clazz) if (clazz.isType) =>
+ val reifiedSymbol = reify(clazz.symbol)
+ reflect.New(reflect.Ident(reifiedSymbol))
case New(clazz) =>
val reifiedClass = reify(clazz)
reflect.New(reifiedClass)
diff --git a/test/files/pos/t0651.scala b/test/files/pos/t0651.scala
new file mode 100644
index 0000000000..76d5df9f9d
--- /dev/null
+++ b/test/files/pos/t0651.scala
@@ -0,0 +1,4 @@
+object Reflection1 extends Application {
+ case class Element(name: String)
+ println(reflect.Code.lift({val e = Element("someName"); e}).tree)
+}