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

changeset 1945
f7f271bd74a2
parent 1921
dae52d74c1fc
child 1970
2068190f8ac2
     1.1 --- a/src/share/classes/com/sun/tools/javac/comp/Resolve.java	Sat Aug 10 16:29:26 2013 +0100
     1.2 +++ b/src/share/classes/com/sun/tools/javac/comp/Resolve.java	Mon Aug 12 17:25:07 2013 +0100
     1.3 @@ -1344,32 +1344,23 @@
     1.4          if (bestSoFar.exists())
     1.5              return bestSoFar;
     1.6  
     1.7 -        Scope.Entry e = env.toplevel.namedImportScope.lookup(name);
     1.8 -        for (; e.scope != null; e = e.next()) {
     1.9 -            sym = e.sym;
    1.10 -            Type origin = e.getOrigin().owner.type;
    1.11 -            if (sym.kind == VAR) {
    1.12 -                if (e.sym.owner.type != origin)
    1.13 -                    sym = sym.clone(e.getOrigin().owner);
    1.14 -                return isAccessible(env, origin, sym)
    1.15 -                    ? sym : new AccessError(env, origin, sym);
    1.16 +        Symbol origin = null;
    1.17 +        for (Scope sc : new Scope[] { env.toplevel.namedImportScope, env.toplevel.starImportScope }) {
    1.18 +            Scope.Entry e = sc.lookup(name);
    1.19 +            for (; e.scope != null; e = e.next()) {
    1.20 +                sym = e.sym;
    1.21 +                if (sym.kind != VAR)
    1.22 +                    continue;
    1.23 +                // invariant: sym.kind == VAR
    1.24 +                if (bestSoFar.kind < AMBIGUOUS && sym.owner != bestSoFar.owner)
    1.25 +                    return new AmbiguityError(bestSoFar, sym);
    1.26 +                else if (bestSoFar.kind >= VAR) {
    1.27 +                    origin = e.getOrigin().owner;
    1.28 +                    bestSoFar = isAccessible(env, origin.type, sym)
    1.29 +                        ? sym : new AccessError(env, origin.type, sym);
    1.30 +                }
    1.31              }
    1.32 -        }
    1.33 -
    1.34 -        Symbol origin = null;
    1.35 -        e = env.toplevel.starImportScope.lookup(name);
    1.36 -        for (; e.scope != null; e = e.next()) {
    1.37 -            sym = e.sym;
    1.38 -            if (sym.kind != VAR)
    1.39 -                continue;
    1.40 -            // invariant: sym.kind == VAR
    1.41 -            if (bestSoFar.kind < AMBIGUOUS && sym.owner != bestSoFar.owner)
    1.42 -                return new AmbiguityError(bestSoFar, sym);
    1.43 -            else if (bestSoFar.kind >= VAR) {
    1.44 -                origin = e.getOrigin().owner;
    1.45 -                bestSoFar = isAccessible(env, origin.type, sym)
    1.46 -                    ? sym : new AccessError(env, origin.type, sym);
    1.47 -            }
    1.48 +            if (bestSoFar.exists()) break;
    1.49          }
    1.50          if (bestSoFar.kind == VAR && bestSoFar.owner.type != origin.type)
    1.51              return bestSoFar.clone(origin);

mercurial