From b45360c49e2fd3edb424f642983d67d0b6b980a9 Mon Sep 17 00:00:00 2001 From: paltherr Date: Thu, 3 Jun 2004 09:18:54 +0000 Subject: - Fixed erasure for bug 328 --- sources/scalac/transformer/Erasure.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'sources') diff --git a/sources/scalac/transformer/Erasure.java b/sources/scalac/transformer/Erasure.java index 0a1e646c83..e78de5d343 100644 --- a/sources/scalac/transformer/Erasure.java +++ b/sources/scalac/transformer/Erasure.java @@ -318,7 +318,7 @@ public class Erasure extends GenTransformer implements Modifiers { else return coerce(convert(tree, to), pt); } else if (isUnboxedArrayType(tree.type())) { - if (!isUnboxedArrayType(pt)) return coerce(box(tree), pt); + if (!isUnboxedArrayType(pt)) return check(box(tree), pt); } else if (isUnboxedSimpleType(pt)) { Type from = tree.type().erasure(); if (isUnboxedSimpleType(from)) @@ -335,6 +335,13 @@ public class Erasure extends GenTransformer implements Modifiers { return gen.mkAsInstanceOf(tree, pt); } + /** Checks that the given tree is of the given type. */ + private Tree check(Tree tree, Type pt) { + assert isSubType(tree.type(), pt): tree +" - "+ tree.type() +" - "+pt; + return tree; + } + + /** Boxes the given tree. */ private Tree box(Tree tree) { return box(tree, false); -- cgit v1.2.3