mod future_checker;
mod await_checker;
pub mod analyze_expression;
pub mod analyze_program;
pub mod analyze_statement;
pub mod analyzer;
pub use analyzer::*;
use crate::{Pass, SymbolTable, TypeTable};
use leo_ast::{Ast, ProgramVisitor};
use leo_errors::{Result, emitter::Handler};
use snarkvm::prelude::Network;
impl<'a, N: Network> Pass for StaticAnalyzer<'a, N> {
type Input = (&'a Ast, &'a Handler, &'a SymbolTable, &'a TypeTable, usize, bool);
type Output = Result<()>;
const NAME: &'static str = "StaticAnalyzer";
fn do_pass((ast, handler, symbol_table, tt, max_depth, await_checking): Self::Input) -> Self::Output {
let mut visitor = StaticAnalyzer::<N>::new(symbol_table, tt, handler, max_depth, await_checking);
visitor.visit_program(ast.as_repr());
handler.last_err().map_err(|e| *e)
}
}