summaryrefslogtreecommitdiff
path: root/sources
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2003-08-05 12:57:20 +0000
committerMartin Odersky <odersky@gmail.com>2003-08-05 12:57:20 +0000
commit5c9050c6b5a6ce0977c3c142982faf0fd3c14a66 (patch)
treec490e8d7e444ce4c16d9940bc2e257c5d2cafb20 /sources
parent9c38388db32e9be3f9514ebaea094685118f9279 (diff)
downloadscala-5c9050c6b5a6ce0977c3c142982faf0fd3c14a66.tar.gz
scala-5c9050c6b5a6ce0977c3c142982faf0fd3c14a66.tar.bz2
scala-5c9050c6b5a6ce0977c3c142982faf0fd3c14a66.zip
*** empty log message ***
Diffstat (limited to 'sources')
-rw-r--r--sources/scalac/typechecker/Analyzer.java15
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);