diff --git a/starlark-rust/starlark/src/syntax/uniplate.rs b/starlark-rust/starlark/src/syntax/uniplate.rs index 67efa337a2b..4df10661c71 100644 --- a/starlark-rust/starlark/src/syntax/uniplate.rs +++ b/starlark-rust/starlark/src/syntax/uniplate.rs @@ -36,6 +36,16 @@ pub(crate) enum VisitMut<'a, P: AstPayload> { Expr(&'a mut AstExprP

), } +impl<'a, P: AstPayload> Visit<'a, P> { + #[allow(dead_code)] + pub(crate) fn visit_children(&self, mut f: impl FnMut(Visit<'a, P>)) { + match self { + Self::Stmt(x) => x.visit_children(f), + Self::Expr(x) => x.visit_expr(|x| f(Visit::Expr(x))), + } + } +} + impl StmtP

{ pub(crate) fn visit_children<'a>(&'a self, mut f: impl FnMut(Visit<'a, P>)) { match self {