protected String chooseJavaArgName(String name, int iArg, Set<String> names) {
    Identifier jan = result.typeConverter.getValidJavaArgumentName(ident(name));
    String baseArgName = jan == null ? null : jan.toString();
    int i = 1;
    if (baseArgName == null) baseArgName = "arg";

    String argName;
    do {
      argName = baseArgName + (i == 1 ? "" : i + "");
      i++;
    } while (names.contains(argName) || result.typeConverter.isJavaKeyword(argName));
    names.add(argName);
    return argName;
  }