diff options
author | Martin Odersky <odersky@gmail.com> | 2003-08-05 12:57:20 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2003-08-05 12:57:20 +0000 |
commit | 5c9050c6b5a6ce0977c3c142982faf0fd3c14a66 (patch) | |
tree | c490e8d7e444ce4c16d9940bc2e257c5d2cafb20 /sources | |
parent | 9c38388db32e9be3f9514ebaea094685118f9279 (diff) | |
download | scala-5c9050c6b5a6ce0977c3c142982faf0fd3c14a66.tar.gz scala-5c9050c6b5a6ce0977c3c142982faf0fd3c14a66.tar.bz2 scala-5c9050c6b5a6ce0977c3c142982faf0fd3c14a66.zip |
*** empty log message ***
Diffstat (limited to 'sources')
-rw-r--r-- | sources/scalac/typechecker/Analyzer.java | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/sources/scalac/typechecker/Analyzer.java b/sources/scalac/typechecker/Analyzer.java index 8c334efa8c..e577ab8388 100644 --- a/sources/scalac/typechecker/Analyzer.java +++ b/sources/scalac/typechecker/Analyzer.java @@ -1276,13 +1276,14 @@ public class Analyzer extends Transformer implements Modifiers, Kinds { if (value instanceof Integer) { int n = ((Integer) value).intValue(); if (pt.symbol() == definitions.BYTE_CLASS && - -128 <= n && n <= 127 || - pt.symbol() == definitions.SHORT_CLASS && - -32768 <= n && n <= 32767 || - pt.symbol() == definitions.CHAR_CLASS && - 0 <= n && n <= 65535) { - return tree.setType(pt); - } + -128 <= n && n <= 127) + return copy.Literal(tree, new Byte((byte) n)).setType(pt); + else if (pt.symbol() == definitions.SHORT_CLASS && + -32768 <= n && n <= 32767) + return copy.Literal(tree, new Short((short) n)).setType(pt); + else if (pt.symbol() == definitions.CHAR_CLASS && + 0 <= n && n <= 65535) + return copy.Literal(tree, new Character((char) n)).setType(pt); } } typeError(tree.pos, owntype, pt); |