swc/crates/swc_ecma_visit/tests/main.rs

32 lines
659 B
Rust
Raw Normal View History

use swc_common::{chain, DUMMY_SP};
use swc_ecma_ast::{Module, Program};
use swc_ecma_visit::{Visit, VisitWith};
#[test]
fn should_visit_program() {
struct Pass1<'a>(&'a mut usize);
struct Pass2;
impl<'a> Visit for Pass1<'a> {
fn visit_program(&mut self, _program: &Program) {
*self.0 += 1;
}
}
impl Visit for Pass2 {}
let n = Program::Module(Module {
span: DUMMY_SP,
body: vec![],
shebang: None,
});
let mut counter = 0;
let p1 = Pass1(&mut counter);
let p2 = Pass2;
let mut pass = chain!(p1, p2);
n.visit_with(&mut pass);
assert_eq!(counter, 1);
}