diff options
author | Lukas Rytz <lukas.rytz@epfl.ch> | 2008-04-04 10:23:52 +0000 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@epfl.ch> | 2008-04-04 10:23:52 +0000 |
commit | 0cda1dec3f2ec23c181b17dbb0f59299bab89430 (patch) | |
tree | c0dfeb13aa1221c29fe1de16a654dd8794d4eb45 | |
parent | 8d1aa644f830b61a86c8397d1f4b190a0ff9510d (diff) | |
download | scala-0cda1dec3f2ec23c181b17dbb0f59299bab89430.tar.gz scala-0cda1dec3f2ec23c181b17dbb0f59299bab89430.tar.bz2 scala-0cda1dec3f2ec23c181b17dbb0f59299bab89430.zip |
fixed Reifier crash #651
-rw-r--r-- | src/compiler/scala/tools/nsc/transform/Reifiers.scala | 3 | ||||
-rw-r--r-- | test/files/pos/t0651.scala | 4 |
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) +} |