diff options
author | Gilles Dubochet <gilles.dubochet@epfl.ch> | 2007-06-06 18:04:53 +0000 |
---|---|---|
committer | Gilles Dubochet <gilles.dubochet@epfl.ch> | 2007-06-06 18:04:53 +0000 |
commit | 458adadcaf6e89f1cd876fe58cffc1343936d66d (patch) | |
tree | 022eac3882520111a90a95f2d5b3b00da68def41 /src/compiler | |
parent | cfb62d0b27dde4457b7072e6130c61dda5f5f243 (diff) | |
download | scala-458adadcaf6e89f1cd876fe58cffc1343936d66d.tar.gz scala-458adadcaf6e89f1cd876fe58cffc1343936d66d.tar.bz2 scala-458adadcaf6e89f1cd876fe58cffc1343936d66d.zip |
The AST “Literal(Constant(t))” for t a value ty...
The AST “Literal(Constant(t))” for t a value type (int et al.)
compiles consistently accross compilation targets.
Diffstat (limited to 'src/compiler')
-rw-r--r-- | src/compiler/scala/tools/nsc/transform/CleanUp.scala | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/CleanUp.scala b/src/compiler/scala/tools/nsc/transform/CleanUp.scala index c4658c361c..a734078614 100644 --- a/src/compiler/scala/tools/nsc/transform/CleanUp.scala +++ b/src/compiler/scala/tools/nsc/transform/CleanUp.scala @@ -292,22 +292,25 @@ abstract class CleanUp extends Transform { /* end of dynamic call transformer. */ - case Template(parents, self, body) if (settings.target.value != "jvm-1.5" && !forMSIL) => //what is that? - classConstantMeth.clear - newDefs.clear + case Template(parents, self, body) => localTyper = typer.atOwner(tree, currentOwner) - val body1 = transformTrees(body) - copy.Template(tree, parents, self, newDefs.toList ::: body1) - case Literal(c) if (c.tag == ClassTag) && (settings.target.value != "jvm-1.5" && !forMSIL) => //what is that? + if (settings.target.value != "jvm-1.5" && !forMSIL) { + classConstantMeth.clear + newDefs.clear + val body1 = transformTrees(body) + copy.Template(tree, parents, self, newDefs.toList ::: body1) + } else super.transform(tree) + case Literal(c) if (c.tag == ClassTag) => val tpe = c.typeValue atPos(tree.pos) { localTyper.typed { if (isValueClass(tpe.symbol)) Select(gen.mkAttributedRef(javaBoxClassModule(tpe.symbol)), "TYPE") - else + else if (settings.target.value != "jvm-1.5" && !forMSIL) Apply( gen.mkAttributedRef(classConstantMethod(tree.pos, signature(tpe))), List()) + else tree } } case _ => |