presto-main/src/main/java/io/prestosql/sql/gen/InvokeFunctionBytecodeExpression.java/InvokeFunctionBytecodeExpression/InvokeFunctionBytecodeExpression
class InvokeFunctionBytecodeExpression:    private InvokeFunctionBytecodeExpression(
            Scope scope,
            CallSiteBinder binder,
            String name,
            ScalarFunctionImplementation function,
            Optional<BytecodeNode> instance,
            List<BytecodeExpression> parameters)
    {
        super(type(Primitives.unwrap(function.getMethodHandle().type().returnType())));

        this.invocation = generateInvocation(scope, name, function, instance, parameters.stream().map(BytecodeNode.class::cast).collect(toImmutableList()), binder);
        this.oneLineDescription = name + "(" + Joiner.on(", ").join(parameters) + ")";
    }