--- a/langtools/src/share/classes/com/sun/tools/javac/comp/TransTypes.java Thu Apr 03 18:01:55 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/TransTypes.java Wed Apr 09 13:19:01 2008 +0100
@@ -690,13 +690,15 @@
public void visitSelect(JCFieldAccess tree) {
Type t = tree.selected.type;
- if (t.isCompound() || (t.tag == TYPEVAR && t.getUpperBound().isCompound())) {
+ while (t.tag == TYPEVAR)
+ t = t.getUpperBound();
+ if (t.isCompound()) {
if ((tree.sym.flags() & IPROXY) != 0) {
tree.sym = ((MethodSymbol)tree.sym).
implemented((TypeSymbol)tree.sym.owner, types);
}
tree.selected = cast(
- translate(tree.selected, erasure(t)),
+ translate(tree.selected, erasure(tree.selected.type)),
erasure(tree.sym.owner.type));
} else
tree.selected = translate(tree.selected, erasure(t));