use crate::enums::global::Global;
use crate::records::value_visitor::ValueVisitor;
use crate::records::variable::Variable;
use luaur_ast::records::ast_local::AstLocal;
use luaur_ast::records::ast_name::AstName;
use luaur_ast::records::ast_node::AstNode;
use luaur_common::records::dense_hash_map::DenseHashMap;
pub fn track_values(
globals: &mut DenseHashMap<AstName, Global>,
variables: &mut DenseHashMap<*mut AstLocal, Variable>,
root: *mut AstNode,
) {
let mut visitor = ValueVisitor::value_visitor(globals, variables);
unsafe {
luaur_ast::visit::dispatch_node(root, &mut visitor);
}
*globals = visitor.globals;
*variables = visitor.variables;
}