mod program;
mod ast;
mod visitor;
use visitor::*;
use crate::{CompilerState, Pass};
use leo_ast::{Ast, UnitVisitor};
use leo_errors::Result;
pub struct NameValidation;
impl Pass for NameValidation {
type Input = ();
type Output = ();
const NAME: &'static str = "NameValidation";
fn do_pass(_: Self::Input, state: &mut CompilerState) -> Result<Self::Output> {
let mut visitor = NameValidationVisitor { handler: &mut state.handler };
match &state.ast {
Ast::Program(program) => visitor.visit_program(program),
Ast::Library(library) => visitor.visit_library(library),
}
state.handler.last_err()?;
Ok(())
}
}