diff options
author | paltherr <paltherr@epfl.ch> | 2003-11-17 18:06:11 +0000 |
---|---|---|
committer | paltherr <paltherr@epfl.ch> | 2003-11-17 18:06:11 +0000 |
commit | 013b0ec7184b18ba6fdfe3e29eb77769cc9c763f (patch) | |
tree | 9c5f2ac208245b8767cde36f54d91f7932e08bbd | |
parent | 7beb013c4d0668ae7d08c554bcaf6e174ab41855 (diff) | |
download | scala-013b0ec7184b18ba6fdfe3e29eb77769cc9c763f.tar.gz scala-013b0ec7184b18ba6fdfe3e29eb77769cc9c763f.tar.bz2 scala-013b0ec7184b18ba6fdfe3e29eb77769cc9c763f.zip |
- Added code for multibound arrays
-rw-r--r-- | sources/scalac/transformer/Erasure.java | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/sources/scalac/transformer/Erasure.java b/sources/scalac/transformer/Erasure.java index 831e4df9e9..572767a3dc 100644 --- a/sources/scalac/transformer/Erasure.java +++ b/sources/scalac/transformer/Erasure.java @@ -374,6 +374,11 @@ public class Erasure extends GenTransformer implements Modifiers { case UnboxedType(int kind): return genNewUnboxedArray(pos, kind, size); } if (global.target == global.TARGET_INT) { + int levels = 0; + while (isUnboxedArrayType(element)) { + element = getArrayElementType(element); + levels++; + } global.nextPhase(); while (true) { Symbol clasz = element.symbol(); @@ -382,6 +387,10 @@ public class Erasure extends GenTransformer implements Modifiers { element = element.parents()[0]; } global.prevPhase(); + while (levels > 0) { + element = Type.UnboxedArrayType(element); + levels--; + } } String name = primitives.getNameForClassForName(element); Tree[] args = { coerce(size, UNBOXED_INT), gen.mkStringLit(pos,name) }; |