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

changeset 2193
d4cbb671de1c
parent 2047
5f915a0c9615
child 2370
acd64168cf8b
     1.1 --- a/src/share/classes/com/sun/tools/javac/comp/DeferredAttr.java	Thu Nov 14 13:47:38 2013 -0800
     1.2 +++ b/src/share/classes/com/sun/tools/javac/comp/DeferredAttr.java	Fri Nov 15 11:08:12 2013 +0000
     1.3 @@ -643,15 +643,16 @@
     1.4                      }
     1.5                      JCMemberReference mref2 = new TreeCopier<Void>(make).copy(tree);
     1.6                      mref2.expr = exprTree;
     1.7 -                    Pair<Symbol, ?> lookupRes =
     1.8 -                            rs.resolveMemberReference(tree, localEnv, mref2, exprTree.type,
     1.9 -                                tree.name, argtypes.toList(), null, true, rs.arityMethodCheck, inferenceContext);
    1.10 -                    switch (lookupRes.fst.kind) {
    1.11 +                    Symbol lookupSym =
    1.12 +                            rs.resolveMemberReferenceByArity(localEnv, mref2, exprTree.type,
    1.13 +                                tree.name, argtypes.toList(), inferenceContext);
    1.14 +                    switch (lookupSym.kind) {
    1.15                          //note: as argtypes are erroneous types, type-errors must
    1.16                          //have been caused by arity mismatch
    1.17                          case Kinds.ABSENT_MTH:
    1.18                          case Kinds.WRONG_MTH:
    1.19                          case Kinds.WRONG_MTHS:
    1.20 +                        case Kinds.WRONG_STATICNESS:
    1.21                             checkContext.report(tree, diags.fragment("incompatible.arg.types.in.mref"));
    1.22                      }
    1.23                  }
    1.24 @@ -1037,11 +1038,10 @@
    1.25                      attr.memberReferenceQualifierResult(tree));
    1.26              JCMemberReference mref2 = new TreeCopier<Void>(make).copy(tree);
    1.27              mref2.expr = exprTree;
    1.28 -            Pair<Symbol, ReferenceLookupHelper> lookupRes =
    1.29 -                    rs.resolveMemberReference(tree, localEnv, mref2, exprTree.type,
    1.30 -                        tree.name, List.<Type>nil(), null, true, rs.nilMethodCheck,
    1.31 -                        infer.emptyContext);
    1.32 -            Symbol res = tree.sym = lookupRes.fst;
    1.33 +            Symbol res =
    1.34 +                    rs.getMemberReference(tree, localEnv, mref2,
    1.35 +                        exprTree.type, tree.name);
    1.36 +            tree.sym = res;
    1.37              if (res.kind >= Kinds.ERRONEOUS ||
    1.38                      res.type.hasTag(FORALL) ||
    1.39                      (res.flags() & Flags.VARARGS) != 0 ||

mercurial