luaur_analysis/methods/
frontend_module_resolver_resolve_module_info.rs1use 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}