final String methodName,
final TypeList typeArguments,
final ExpressionList<? extends Expression> arguments,
final Set<BindingFlags> flags) {
final MemberList members = type.findMembers(
MemberType.methodsOnly(),
flags,
Type.FilterNameIgnoreCase,
methodName
);
if (members == null || members.size() == 0) {
throw Error.methodDoesNotExistOnType(methodName, type);
}
final ArrayList<MethodInfo> candidates = new ArrayList<>(members.size());
for (int i = 0, n = members.size(); i < n; i++) {
final MethodInfo appliedMethod = applyTypeArgs(
(MethodInfo) members.get(i),
typeArguments
);
if (appliedMethod != null)
candidates.add(appliedMethod);