presto-main/src/main/java/io/prestosql/sql/planner/ResolvedFunctionCallRewriter.java/Visitor/rewriteFunctionCall
class Visitor:        @Override
        public Expression rewriteFunctionCall(FunctionCall node, Void context, ExpressionTreeRewriter<Void> treeRewriter)
        {
            ResolvedFunction resolvedFunction = resolvedFunctions.get(NodeRef.of(node));
            checkArgument(resolvedFunction != null, "Function has not been analyzed: %s", node);

            FunctionCall rewritten = treeRewriter.defaultRewrite(node, context);
            return new FunctionCall(
                    rewritten.getLocation(),
                    resolvedFunction.toQualifiedName(),
                    rewritten.getWindow(),
                    rewritten.getFilter(),
                    rewritten.getOrderBy(),
                    rewritten.isDistinct(),
                    rewritten.getNullTreatment(),
                    rewritten.getArguments());
        }