presto-main/src/main/java/io/prestosql/metadata/ResolvedFunction.java/ResolvedFunction/ResolvedFunction
class ResolvedFunction:    @JsonCreator
    public ResolvedFunction(
            @JsonProperty("signature") Signature signature,
            @JsonProperty("id") FunctionId functionId)
    {
        this.signature = requireNonNull(signature, "signature is null");
        this.functionId = requireNonNull(functionId, "functionId is null");
        checkArgument(signature.getTypeVariableConstraints().isEmpty() && signature.getLongVariableConstraints().isEmpty(), "%s has unbound type parameters", signature);
        checkArgument(!signature.isVariableArity(), "%s has variable arity", signature);
    }