static bool IsApplicable(SoftEvaluationContext ctx, MethodMirror method, TypeMirror[] types, out string error, out int matchCount) { ParameterInfoMirror[] mparams = method.GetParameters(); matchCount = 0; for (int i = 0; i < types.Length; i++) { TypeMirror param_type = mparams[i].ParameterType; if (param_type.FullName == types [i].FullName) { matchCount++; continue; } if (param_type.IsAssignableFrom(types [i])) { continue; } error = String.Format( "Argument {0}: Cannot implicitly convert `{1}' to `{2}'", i, types [i].FullName, param_type.FullName); return(false); } error = null; return(true); }