public JSType createFunctionTypeWithInstanceType(ObjectType instanceType,
      JSType returnType, List<JSType> parameterTypes) {
    Node paramsNode = createParameters(parameterTypes.toArray(new JSType[parameterTypes.size()]));
    return FunctionType.builder(this)
        .withParamsNode(paramsNode)
        .withReturnType(returnType)
        .withTypeOfThis(instanceType)
        .build();
  }
public JSType createFunctionTypeWithInstanceType ( ObjectType instanceType , JSType returnType , List < JSType > parameterTypes ) { Node paramsNode = createParameters ( parameterTypes . toArray ( new JSType [ parameterTypes . size ( ) ] ) ) ; return FunctionType . builder ( this ) . withParamsNode ( paramsNode ) . withReturnType ( returnType ) . withTypeOfThis ( instanceType ) . build ( ) ; }
Creates a function type in which {@code this} refers to an object instance.

@param instanceType the type of {@code this}
@param returnType the function's return type
@param parameterTypes the parameters' types