Skip to main content

luaur_analysis/methods/
source_module_source_module.rs

1use 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}