luaur_analysis/methods/
source_module_source_module.rs1use crate::records::source_module::SourceModule;
2use alloc::sync::Arc;
3use luaur_ast::records::allocator::Allocator;
4use luaur_ast::records::ast_name_table::AstNameTable;
5
6impl SourceModule {
7 pub fn source_module() -> Self {
8 let mut allocator = Arc::new(Allocator::allocator());
9 let names = AstNameTable::new(
10 Arc::get_mut(&mut allocator).expect("fresh SourceModule allocator must be unique"),
11 );
12 Self {
13 name: String::new(),
14 human_readable_name: String::new(),
15 r#type: crate::records::source_code::SourceCode::None,
16 environment_name: None,
17 cyclic: false,
18 allocator,
19 names: Arc::new(names),
20 parse_errors: Vec::new(),
21 root: core::ptr::null_mut(),
22 mode: None,
23 hotcomments: Vec::new(),
24 comment_locations: Vec::new(),
25 }
26 }
27}