--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java Sat Aug 10 16:29:26 2013 +0100
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java Mon Aug 12 17:25:07 2013 +0100
@@ -1344,32 +1344,23 @@
if (bestSoFar.exists())
return bestSoFar;
- Scope.Entry e = env.toplevel.namedImportScope.lookup(name);
- for (; e.scope != null; e = e.next()) {
- sym = e.sym;
- Type origin = e.getOrigin().owner.type;
- if (sym.kind == VAR) {
- if (e.sym.owner.type != origin)
- sym = sym.clone(e.getOrigin().owner);
- return isAccessible(env, origin, sym)
- ? sym : new AccessError(env, origin, sym);
+ Symbol origin = null;
+ for (Scope sc : new Scope[] { env.toplevel.namedImportScope, env.toplevel.starImportScope }) {
+ Scope.Entry e = sc.lookup(name);
+ for (; e.scope != null; e = e.next()) {
+ sym = e.sym;
+ if (sym.kind != VAR)
+ continue;
+ // invariant: sym.kind == VAR
+ if (bestSoFar.kind < AMBIGUOUS && sym.owner != bestSoFar.owner)
+ return new AmbiguityError(bestSoFar, sym);
+ else if (bestSoFar.kind >= VAR) {
+ origin = e.getOrigin().owner;
+ bestSoFar = isAccessible(env, origin.type, sym)
+ ? sym : new AccessError(env, origin.type, sym);
+ }
}
- }
-
- Symbol origin = null;
- e = env.toplevel.starImportScope.lookup(name);
- for (; e.scope != null; e = e.next()) {
- sym = e.sym;
- if (sym.kind != VAR)
- continue;
- // invariant: sym.kind == VAR
- if (bestSoFar.kind < AMBIGUOUS && sym.owner != bestSoFar.owner)
- return new AmbiguityError(bestSoFar, sym);
- else if (bestSoFar.kind >= VAR) {
- origin = e.getOrigin().owner;
- bestSoFar = isAccessible(env, origin.type, sym)
- ? sym : new AccessError(env, origin.type, sym);
- }
+ if (bestSoFar.exists()) break;
}
if (bestSoFar.kind == VAR && bestSoFar.owner.type != origin.type)
return bestSoFar.clone(origin);