presto-main/src/main/java/io/prestosql/sql/planner/ExpressionInterpreter.java/Visitor/toExpressions
class Visitor:        private List<Expression> toExpressions(List<Object> values, List<Type> types, List<Expression> originalArguments)
        {
            requireNonNull(values, "values is null");
            requireNonNull(types, "types is null");
            requireNonNull(originalArguments, "originalArguments is null");
            checkArgument(values.size() == types.size() && types.size() == originalArguments.size(), "values, types, and originalArguments do not have the same size");

            ImmutableList.Builder<Expression> expressions = ImmutableList.builder();
            for (int i = 0; i < values.size(); i++) {
                Object object = values.get(i);
                Type type = types.get(i);
                if (LiteralEncoder.canEncode(object, type)) {
                    expressions.add(toExpression(object, type));
                }
                else {
                    expressions.add(originalArguments.get(i));
                }
            }
            return expressions.build();
        }