summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntonio Cunei <antonio.cunei@epfl.ch>2011-05-23 16:26:15 +0000
committerAntonio Cunei <antonio.cunei@epfl.ch>2011-05-23 16:26:15 +0000
commitdf267020e3caad75f831385beae8107d0a29cc1b (patch)
treea024f55fa1315a0ccadcfe7a5fa894f4b0e1d21a
parentbf414ad75f4e2f50f5a31616e91feab89c70224e (diff)
downloadscala-df267020e3caad75f831385beae8107d0a29cc1b.tar.gz
scala-df267020e3caad75f831385beae8107d0a29cc1b.tar.bz2
scala-df267020e3caad75f831385beae8107d0a29cc1b.zip
Fix corresponding to r24993.
The Git patch altered src/compiler/scala/tools/nsc/ast/TreeGen.scala rather than src/compiler/scala/reflect/internal/TreeGen.scala so the two commits are actually different. Reconciled here. https://github.com/paulp/scala-full/commit/cf8beab500ee0b046ff9926d9af63 f3a49823e1a https://lampsvn.epfl.ch/trac/scala/changeset/24993
-rw-r--r--src/compiler/scala/tools/nsc/ast/TreeGen.scala22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/TreeGen.scala b/src/compiler/scala/tools/nsc/ast/TreeGen.scala
index af2ebc4251..f27a765f78 100644
--- a/src/compiler/scala/tools/nsc/ast/TreeGen.scala
+++ b/src/compiler/scala/tools/nsc/ast/TreeGen.scala
@@ -230,14 +230,20 @@ abstract class TreeGen {
* which is appropriate to the given Type.
*/
def mkZero(tp: Type): Tree = {
- val sym = tp.typeSymbol
- val tree =
- if (sym == UnitClass) Literal(())
- else if (sym == BooleanClass) Literal(false)
- else if (isValueClass(sym)) Literal(0)
- else if (NullClass.tpe <:< tp) Literal(null: Any)
- else abort("Cannot determine zero for " + tp)
-
+ val tree = tp.typeSymbol match {
+ case UnitClass => Literal(())
+ case BooleanClass => Literal(false)
+ case FloatClass => Literal(0.0f)
+ case DoubleClass => Literal(0.0d)
+ case ByteClass => Literal(0.toByte)
+ case ShortClass => Literal(0.toShort)
+ case IntClass => Literal(0)
+ case LongClass => Literal(0L)
+ case CharClass => Literal(0.toChar)
+ case _ =>
+ if (NullClass.tpe <:< tp) Literal(null: Any)
+ else abort("Cannot determine zero for " + tp)
+ }
tree setType tp
}