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

changeset 2193
d4cbb671de1c
parent 2047
5f915a0c9615
child 2370
acd64168cf8b
equal deleted inserted replaced
2192:5ae66d372d57 2193:d4cbb671de1c
641 for (Type t : types.findDescriptorType(pt).getParameterTypes()) { 641 for (Type t : types.findDescriptorType(pt).getParameterTypes()) {
642 argtypes.append(Type.noType); 642 argtypes.append(Type.noType);
643 } 643 }
644 JCMemberReference mref2 = new TreeCopier<Void>(make).copy(tree); 644 JCMemberReference mref2 = new TreeCopier<Void>(make).copy(tree);
645 mref2.expr = exprTree; 645 mref2.expr = exprTree;
646 Pair<Symbol, ?> lookupRes = 646 Symbol lookupSym =
647 rs.resolveMemberReference(tree, localEnv, mref2, exprTree.type, 647 rs.resolveMemberReferenceByArity(localEnv, mref2, exprTree.type,
648 tree.name, argtypes.toList(), null, true, rs.arityMethodCheck, inferenceContext); 648 tree.name, argtypes.toList(), inferenceContext);
649 switch (lookupRes.fst.kind) { 649 switch (lookupSym.kind) {
650 //note: as argtypes are erroneous types, type-errors must 650 //note: as argtypes are erroneous types, type-errors must
651 //have been caused by arity mismatch 651 //have been caused by arity mismatch
652 case Kinds.ABSENT_MTH: 652 case Kinds.ABSENT_MTH:
653 case Kinds.WRONG_MTH: 653 case Kinds.WRONG_MTH:
654 case Kinds.WRONG_MTHS: 654 case Kinds.WRONG_MTHS:
655 case Kinds.WRONG_STATICNESS:
655 checkContext.report(tree, diags.fragment("incompatible.arg.types.in.mref")); 656 checkContext.report(tree, diags.fragment("incompatible.arg.types.in.mref"));
656 } 657 }
657 } 658 }
658 } 659 }
659 } 660 }
1035 Env<AttrContext> localEnv = env.dup(tree); 1036 Env<AttrContext> localEnv = env.dup(tree);
1036 JCExpression exprTree = (JCExpression)attribSpeculative(tree.getQualifierExpression(), localEnv, 1037 JCExpression exprTree = (JCExpression)attribSpeculative(tree.getQualifierExpression(), localEnv,
1037 attr.memberReferenceQualifierResult(tree)); 1038 attr.memberReferenceQualifierResult(tree));
1038 JCMemberReference mref2 = new TreeCopier<Void>(make).copy(tree); 1039 JCMemberReference mref2 = new TreeCopier<Void>(make).copy(tree);
1039 mref2.expr = exprTree; 1040 mref2.expr = exprTree;
1040 Pair<Symbol, ReferenceLookupHelper> lookupRes = 1041 Symbol res =
1041 rs.resolveMemberReference(tree, localEnv, mref2, exprTree.type, 1042 rs.getMemberReference(tree, localEnv, mref2,
1042 tree.name, List.<Type>nil(), null, true, rs.nilMethodCheck, 1043 exprTree.type, tree.name);
1043 infer.emptyContext); 1044 tree.sym = res;
1044 Symbol res = tree.sym = lookupRes.fst;
1045 if (res.kind >= Kinds.ERRONEOUS || 1045 if (res.kind >= Kinds.ERRONEOUS ||
1046 res.type.hasTag(FORALL) || 1046 res.type.hasTag(FORALL) ||
1047 (res.flags() & Flags.VARARGS) != 0 || 1047 (res.flags() & Flags.VARARGS) != 0 ||
1048 (TreeInfo.isStaticSelector(exprTree, tree.name.table.names) && 1048 (TreeInfo.isStaticSelector(exprTree, tree.name.table.names) &&
1049 exprTree.type.isRaw())) { 1049 exprTree.type.isRaw())) {

mercurial