diff options
author | Antonio Cunei <antonio.cunei@epfl.ch> | 2011-05-23 16:26:15 +0000 |
---|---|---|
committer | Antonio Cunei <antonio.cunei@epfl.ch> | 2011-05-23 16:26:15 +0000 |
commit | df267020e3caad75f831385beae8107d0a29cc1b (patch) | |
tree | a024f55fa1315a0ccadcfe7a5fa894f4b0e1d21a /src | |
parent | bf414ad75f4e2f50f5a31616e91feab89c70224e (diff) | |
download | scala-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
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/ast/TreeGen.scala | 22 |
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 } |