src/share/classes/com/sun/tools/javac/comp/TransTypes.java

changeset 23
961ae2608114
parent 1
9a66ca7c79fa
child 54
eaf608c64fec
equal deleted inserted replaced
20:ddd77d1c1b49 23:961ae2608114
688 } 688 }
689 } 689 }
690 690
691 public void visitSelect(JCFieldAccess tree) { 691 public void visitSelect(JCFieldAccess tree) {
692 Type t = tree.selected.type; 692 Type t = tree.selected.type;
693 if (t.isCompound() || (t.tag == TYPEVAR && t.getUpperBound().isCompound())) { 693 while (t.tag == TYPEVAR)
694 t = t.getUpperBound();
695 if (t.isCompound()) {
694 if ((tree.sym.flags() & IPROXY) != 0) { 696 if ((tree.sym.flags() & IPROXY) != 0) {
695 tree.sym = ((MethodSymbol)tree.sym). 697 tree.sym = ((MethodSymbol)tree.sym).
696 implemented((TypeSymbol)tree.sym.owner, types); 698 implemented((TypeSymbol)tree.sym.owner, types);
697 } 699 }
698 tree.selected = cast( 700 tree.selected = cast(
699 translate(tree.selected, erasure(t)), 701 translate(tree.selected, erasure(tree.selected.type)),
700 erasure(tree.sym.owner.type)); 702 erasure(tree.sym.owner.type));
701 } else 703 } else
702 tree.selected = translate(tree.selected, erasure(t)); 704 tree.selected = translate(tree.selected, erasure(t));
703 705
704 // Map constants expressions to themselves. 706 // Map constants expressions to themselves.

mercurial