Skip to main content

luaur_analysis/methods/
def_arena_fresh_cell.rs

1//! Node: `cxx:Function:Luau.Analysis:Analysis/src/Def.cpp:39:DefArena::freshCell`
2//! Source: `Analysis/src/Def.cpp` (Def.cpp:39-42, hand-ported)
3
4use crate::records::cell::Cell;
5use crate::records::def::Def;
6use crate::records::def_arena::DefArena;
7use crate::records::symbol::Symbol;
8use crate::type_aliases::def_id_def::DefId;
9use crate::type_aliases::variant::Variant as DefVariant;
10use luaur_ast::records::location::Location;
11
12impl DefArena {
13    pub fn fresh_cell(&mut self, sym: Symbol, location: Location, subscripted: bool) -> DefId {
14        // NotNull{allocator.allocate(Def{Cell{subscripted}, sym, location})}
15        self.allocator.allocate(Def {
16            v: DefVariant::V0(Cell { subscripted }),
17            name: sym,
18            location,
19        }) as DefId
20    }
21}