summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2003-11-25 15:28:08 +0000
committerpaltherr <paltherr@epfl.ch>2003-11-25 15:28:08 +0000
commita3a5e047a624e5575005845a9731247214414f0c (patch)
treeabb46740bf19e6ef1cce9586aea31dc4d46782bc
parent28d3e984f7a78a754d0b815ab1c41b2639ec4457 (diff)
downloadscala-a3a5e047a624e5575005845a9731247214414f0c.tar.gz
scala-a3a5e047a624e5575005845a9731247214414f0c.tar.bz2
scala-a3a5e047a624e5575005845a9731247214414f0c.zip
- Fixed case Select
-rw-r--r--sources/scalac/transformer/Erasure.java7
1 files changed, 4 insertions, 3 deletions
diff --git a/sources/scalac/transformer/Erasure.java b/sources/scalac/transformer/Erasure.java
index 0dfb41112b..f4fe0ea044 100644
--- a/sources/scalac/transformer/Erasure.java
+++ b/sources/scalac/transformer/Erasure.java
@@ -202,12 +202,13 @@ public class Erasure extends GenTransformer implements Modifiers {
return genApply(tree.pos, fun, vargs);
case Select(Tree qualifier, _):
- Type prefix = qualifier.getType();
Symbol symbol = tree.symbol();
+ Type prefix = qualifier.type().baseType(symbol.owner()).erasure();
+ assert prefix != Type.NoType: tree;
qualifier = transform(qualifier);
- qualifier = coerce(qualifier, prefix.erasure());
+ qualifier = coerce(qualifier, prefix);
// Might end up with "box(unbox(...))". That's needed by backend.
- if (isUnboxedType(qualifier.getType())) qualifier = box(qualifier);
+ if (isUnboxedType(prefix)) qualifier = box(qualifier);
return gen.Select(tree.pos, qualifier, symbol);
case Ident(_):