Skip to main content

luaur_analysis/methods/
frontend_module_resolver_resolve_module_info.rs

1use crate::records::frontend_module_resolver::FrontendModuleResolver;
2use crate::records::module_info::ModuleInfo;
3use crate::type_aliases::module_name_file_resolver::ModuleName;
4use luaur_ast::records::ast_expr::AstExpr;
5use luaur_ast::records::ast_node::AstNode;
6
7impl FrontendModuleResolver {
8    pub fn resolve_module_info(
9        &self,
10        current_module_name: &ModuleName,
11        path_expr: &AstExpr,
12    ) -> Option<ModuleInfo> {
13        if self.frontend.is_null() {
14            return None;
15        }
16
17        let frontend = unsafe { &*self.frontend };
18        let trace = frontend.require_trace.get(current_module_name)?;
19        let key = path_expr as *const AstExpr as *mut AstNode;
20
21        trace.exprs.find(&key).cloned()
22    }
23}