Skip to main content

luaur_ast/methods/
ast_expr_call_visit.rs

1use crate::records::ast_expr_call::AstExprCall;
2use crate::records::ast_visitor::AstVisitor;
3use crate::visit::AstVisitable;
4
5impl AstVisitable for AstExprCall {
6    fn visit(&self, visitor: &mut dyn AstVisitor) {
7        if visitor.visit_expr_call(self as *const Self as *mut core::ffi::c_void) {
8            unsafe {
9                crate::visit::ast_expr_visit(self.func, visitor);
10
11                for &arg in self.args.iter() {
12                    crate::visit::ast_expr_visit(arg, visitor);
13                }
14            }
15        }
16    }
17}
18
19#[no_mangle]
20pub extern "C" fn ast_expr_call_visit(this: *const AstExprCall, visitor: *mut dyn AstVisitor) {
21    unsafe {
22        (*this).visit(&mut *visitor);
23    }
24}