| 826 | } |
| 827 | |
| 828 | bool ExpressionHasFieldRefs(const Expression& expr) { |
| 829 | if (expr.literal()) return false; |
| 830 | |
| 831 | if (expr.field_ref()) return true; |
| 832 | |
| 833 | for (const Expression& arg : CallNotNull(expr)->arguments) { |
| 834 | if (ExpressionHasFieldRefs(arg)) return true; |
| 835 | } |
| 836 | return false; |
| 837 | } |
| 838 | |
| 839 | Result<Expression> FoldConstants(Expression expr) { |
| 840 | if (!expr.IsBound()) { |