From 7b7649f4d7ca7a68c3258595f6201195f4bb7b24 Mon Sep 17 00:00:00 2001 From: Utkarsh Gupta Date: Thu, 30 Jul 2026 11:39:06 +0100 Subject: [PATCH] Add Visitor/VisitorMut::visit_filter_value_expr --- engine/src/ast/mod.rs | 4 ++-- engine/src/ast/visitor.rs | 14 +++++++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/engine/src/ast/mod.rs b/engine/src/ast/mod.rs index 84236d11..89313226 100644 --- a/engine/src/ast/mod.rs +++ b/engine/src/ast/mod.rs @@ -306,13 +306,13 @@ impl FilterValueAst { /// Recursively visit all nodes in the AST using a [`Visitor`]. #[inline] pub fn walk<'a, V: Visitor<'a>>(&'a self, visitor: &mut V) { - visitor.visit_value_expr(&self.op) + visitor.visit_filter_value_expr(&self.op) } /// Recursively visit all nodes in the AST using a [`VisitorMut`]. #[inline] pub fn walk_mut<'a, V: VisitorMut<'a>>(&'a mut self, visitor: &mut V) { - visitor.visit_value_expr(&mut self.op) + visitor.visit_filter_value_expr(&mut self.op) } /// Recursively checks whether a [`FilterAst`] uses a given field name. diff --git a/engine/src/ast/visitor.rs b/engine/src/ast/visitor.rs index ad5ca796..e8685e93 100644 --- a/engine/src/ast/visitor.rs +++ b/engine/src/ast/visitor.rs @@ -2,7 +2,7 @@ use super::field_expr::{ComparisonExpr, ComparisonOpExpr}; use super::function_expr::{FunctionCallArgExpr, FunctionCallExpr}; use super::index_expr::IndexExpr; use super::logical_expr::LogicalExpr; -use super::{Expr, ValueExpr}; +use super::{Expr, FilterValueExpr, ValueExpr}; use crate::{Field, FieldRef, Function}; /// Trait used to immutably visit all nodes in the AST. @@ -35,6 +35,12 @@ pub trait Visitor<'a>: Sized { node.walk(self) } + /// Visit [`FilterValueExpr`] node. + #[inline] + fn visit_filter_value_expr(&mut self, node: &'a FilterValueExpr) { + self.visit_value_expr(node) + } + /// Visit [`IndexExpr`] node. #[inline] fn visit_index_expr(&mut self, node: &'a IndexExpr) { @@ -100,6 +106,12 @@ pub trait VisitorMut<'a>: Sized { node.walk_mut(self) } + /// Visit [`FilterValueExpr`] node. + #[inline] + fn visit_filter_value_expr(&mut self, node: &'a mut FilterValueExpr) { + self.visit_value_expr(node) + } + /// Visit [`IndexExpr`] node. #[inline] fn visit_index_expr(&mut self, node: &'a mut IndexExpr) {