Skip to main content

luaur_analysis/methods/
usage_finder_visit_fragment_autocomplete_alt_g.rs

1use crate::records::symbol::Symbol;
2use crate::records::usage_finder::UsageFinder;
3use luaur_ast::records::ast_expr::AstExpr;
4use luaur_ast::records::ast_expr_global::AstExprGlobal;
5
6impl UsageFinder {
7    // C++ `bool UsageFinder::visit(AstExprGlobal* global)` (FragmentAutocomplete.cpp:641-647):
8    //   globalDefsToPrePopulate.emplace_back(global->name, dfg->getDef(global));
9    //   auto def = dfg->getDef(global);
10    //   symbolsToRefine.emplace_back(def, Symbol(global->name));
11    //   return true;
12    pub fn visit_ast_expr_global(&mut self, global: *mut AstExprGlobal) -> bool {
13        let dfg = unsafe { &*self.dfg };
14        let name = unsafe { (*global).name };
15        let def = dfg.get_def(global as *const AstExpr);
16
17        self.global_defs_to_pre_populate.push((name, def));
18        self.symbols_to_refine
19            .push((def, Symbol::from_global(name)));
20
21        true
22    }
23}