public int hashCode() {
    int h = instanceOrClass.hashCode();
    h += method.hashCode();
    if (n > 0) {
      h += (arg1 == null ? 0 : arg1.hashCode());
      if (n > 1) {
        h += (arg2 == null ? 0 : arg2.hashCode());
        if (n > 2) {
          h += (arg3 == null ? 0 : arg3.hashCode());
          if (n > 3) {
            for (int i = 5; i < n + 2; i++) {
              h += (moreThanThree[i] == null ? 0 : moreThanThree[i].hashCode());
            }
          }
        }
      }
    }
    return h;
  }