summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGilles Dubochet <gilles.dubochet@epfl.ch>2007-06-06 18:04:53 +0000
committerGilles Dubochet <gilles.dubochet@epfl.ch>2007-06-06 18:04:53 +0000
commit458adadcaf6e89f1cd876fe58cffc1343936d66d (patch)
tree022eac3882520111a90a95f2d5b3b00da68def41 /src
parentcfb62d0b27dde4457b7072e6130c61dda5f5f243 (diff)
downloadscala-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')
-rw-r--r--src/compiler/scala/tools/nsc/transform/CleanUp.scala17
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 _ =>