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

changeset 23
961ae2608114
parent 1
9a66ca7c79fa
child 54
eaf608c64fec
     1.1 --- a/src/share/classes/com/sun/tools/javac/comp/TransTypes.java	Thu Apr 03 18:01:55 2008 -0700
     1.2 +++ b/src/share/classes/com/sun/tools/javac/comp/TransTypes.java	Wed Apr 09 13:19:01 2008 +0100
     1.3 @@ -690,13 +690,15 @@
     1.4  
     1.5      public void visitSelect(JCFieldAccess tree) {
     1.6          Type t = tree.selected.type;
     1.7 -        if (t.isCompound() || (t.tag == TYPEVAR && t.getUpperBound().isCompound())) {
     1.8 +        while (t.tag == TYPEVAR)
     1.9 +            t = t.getUpperBound();
    1.10 +        if (t.isCompound()) {
    1.11              if ((tree.sym.flags() & IPROXY) != 0) {
    1.12                  tree.sym = ((MethodSymbol)tree.sym).
    1.13                      implemented((TypeSymbol)tree.sym.owner, types);
    1.14              }
    1.15              tree.selected = cast(
    1.16 -                translate(tree.selected, erasure(t)),
    1.17 +                translate(tree.selected, erasure(tree.selected.type)),
    1.18                  erasure(tree.sym.owner.type));
    1.19          } else
    1.20              tree.selected = translate(tree.selected, erasure(t));

mercurial