diff -r ddd77d1c1b49 -r 961ae2608114 src/share/classes/com/sun/tools/javac/comp/TransTypes.java --- a/src/share/classes/com/sun/tools/javac/comp/TransTypes.java Thu Apr 03 18:01:55 2008 -0700 +++ b/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));