internal static Candidate GetPreferredCandidate(MethodCandidate one, MethodCandidate two, CallTypes callType, MetaObject[] actualTypes) { Candidate cmpParams = ParameterWrapper.GetPreferredParameters(one.Parameters, two.Parameters, actualTypes); if (cmpParams.Chosen()) { return(cmpParams); } Candidate ret = MethodTarget.CompareEquivalentParameters(one.Target, two.Target); if (ret.Chosen()) { return(ret); } if (CompilerHelpers.IsStatic(one.Target.Method) && !CompilerHelpers.IsStatic(two.Target.Method)) { return(callType == CallTypes.ImplicitInstance ? Candidate.Two : Candidate.One); } else if (!CompilerHelpers.IsStatic(one.Target.Method) && CompilerHelpers.IsStatic(two.Target.Method)) { return(callType == CallTypes.ImplicitInstance ? Candidate.One : Candidate.Two); } return(Candidate.Equivalent); }