diff -r 5ae66d372d57 -r d4cbb671de1c src/share/classes/com/sun/tools/javac/comp/Attr.java --- a/src/share/classes/com/sun/tools/javac/comp/Attr.java Thu Nov 14 13:47:38 2013 -0800 +++ b/src/share/classes/com/sun/tools/javac/comp/Attr.java Fri Nov 15 11:08:12 2013 +0000 @@ -2697,9 +2697,10 @@ Pair refResult = null; List saved_undet = resultInfo.checkContext.inferenceContext().save(); try { - refResult = rs.resolveMemberReference(that.pos(), localEnv, that, that.expr.type, - that.name, argtypes, typeargtypes, true, referenceCheck, - resultInfo.checkContext.inferenceContext()); + refResult = rs.resolveMemberReference(localEnv, that, that.expr.type, + that.name, argtypes, typeargtypes, referenceCheck, + resultInfo.checkContext.inferenceContext(), + resultInfo.checkContext.deferredAttrContext().mode); } finally { resultInfo.checkContext.inferenceContext().rollback(saved_undet); } @@ -2719,6 +2720,7 @@ case HIDDEN: case STATICERR: case MISSING_ENCL: + case WRONG_STATICNESS: targetError = true; break; default: @@ -2770,26 +2772,6 @@ chk.checkRaw(that.expr, localEnv); } - if (!that.kind.isUnbound() && - that.getMode() == ReferenceMode.INVOKE && - TreeInfo.isStaticSelector(that.expr, names) && - !that.sym.isStatic()) { - log.error(that.expr.pos(), "invalid.mref", Kinds.kindName(that.getMode()), - diags.fragment("non-static.cant.be.ref", Kinds.kindName(refSym), refSym)); - result = that.type = types.createErrorType(target); - return; - } - - if (that.kind.isUnbound() && - that.getMode() == ReferenceMode.INVOKE && - TreeInfo.isStaticSelector(that.expr, names) && - that.sym.isStatic()) { - log.error(that.expr.pos(), "invalid.mref", Kinds.kindName(that.getMode()), - diags.fragment("static.method.in.unbound.lookup", Kinds.kindName(refSym), refSym)); - result = that.type = types.createErrorType(target); - return; - } - if (that.sym.isStatic() && TreeInfo.isStaticSelector(that.expr, names) && exprType.getTypeArguments().nonEmpty()) { //static ref with class type-args