return new BoundCall(base, containingWrapper, returnType.bindWithFallback(t), newParameterTypes, newExceptionTypes, newTypeParams);
BoundCall result = new BoundCall(base, containingWrapper, returnType.bindWithFallback(t), newParameterTypes, newExceptionTypes, newTypeParams, exclude14, exclude15); if (!getNonGenericSig().equals(result.getNonGenericSig())) {  if (result.exclude15) throw new RuntimeException("Can't be excluded from *everywhere*!"); result.exclude14 = true; } return result;
  public BoundCall bind(ClassType t) {    Type[] newParameterTypes = new Type[parameterTypes.length];    for (int i = 0; i < parameterTypes.length; i++) {      newParameterTypes[i] = parameterTypes[i].bindWithFallback(t);    }    NonArrayRefType[] newExceptionTypes = new NonArrayRefType[exceptionTypes.length];    for (int i = 0; i < exceptionTypes.length; i++) {      newExceptionTypes[i] = (NonArrayRefType) exceptionTypes[i].bindWithFallback(t);    }    TypeParam[] newTypeParams = null;    if (typeParams != null) {      newTypeParams = new TypeParam[typeParams.length];      for (int i = 0; i < typeParams.length; i++) {        newTypeParams[i] = (TypeParam) typeParams[i].bindWithFallback(t);      }    }    return new BoundCall(base, containingWrapper, returnType.bindWithFallback(t),                         newParameterTypes, newExceptionTypes, newTypeParams);  }