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())) { |