summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2003-12-04 13:25:16 +0000
committerpaltherr <paltherr@epfl.ch>2003-12-04 13:25:16 +0000
commit4000080b8a780eb7f41592212d046de3ada9a9a5 (patch)
treed5e8dd7cfeabd9ecc2912149a0f45fa727bce4f0
parent4840576349b0403f1c4dcd524861063a5f1b6a7f (diff)
downloadscala-4000080b8a780eb7f41592212d046de3ada9a9a5.tar.gz
scala-4000080b8a780eb7f41592212d046de3ada9a9a5.tar.bz2
scala-4000080b8a780eb7f41592212d046de3ada9a9a5.zip
- Added method boxUnboxedType
-rw-r--r--sources/scalac/transformer/Erasure.java29
1 files changed, 29 insertions, 0 deletions
diff --git a/sources/scalac/transformer/Erasure.java b/sources/scalac/transformer/Erasure.java
index f99545dd62..28382c738c 100644
--- a/sources/scalac/transformer/Erasure.java
+++ b/sources/scalac/transformer/Erasure.java
@@ -496,6 +496,35 @@ public class Erasure extends GenTransformer implements Modifiers {
}
}
+ /** Returns the boxed version of the given unboxed type. */
+ private Type boxUnboxedType(Type type) {
+ switch (type) {
+ case UnboxedType(TypeTags.UNIT):
+ return definitions.UNIT_CLASS.type();
+ case UnboxedType(TypeTags.BOOLEAN):
+ return definitions.BOOLEAN_CLASS.type();
+ case UnboxedType(TypeTags.BYTE):
+ return definitions.BYTE_CLASS.type();
+ case UnboxedType(TypeTags.SHORT):
+ return definitions.SHORT_CLASS.type();
+ case UnboxedType(TypeTags.CHAR):
+ return definitions.CHAR_CLASS.type();
+ case UnboxedType(TypeTags.INT):
+ return definitions.INT_CLASS.type();
+ case UnboxedType(TypeTags.LONG):
+ return definitions.LONG_CLASS.type();
+ case UnboxedType(TypeTags.FLOAT):
+ return definitions.FLOAT_CLASS.type();
+ case UnboxedType(TypeTags.DOUBLE):
+ return definitions.DOUBLE_CLASS.type();
+ case UnboxedArrayType(Type element):
+ return Type.appliedType(
+ definitions.ARRAY_CLASS.type(), new Type[] {element});
+ default:
+ throw Debug.abort("illegal case", type);
+ }
+ }
+
/** Returns the element type of the given array type. */
private Type getArrayElementType(Type type) {
switch (type) {