luaur_analysis/methods/
anyification_clean_anyification.rs1use crate::enums::table_state::TableState;
2use crate::records::anyification::Anyification;
3use crate::records::table_type::TableType;
4use crate::type_aliases::type_id::TypeId;
5use luaur_common::macros::luau_assert::LUAU_ASSERT;
6
7impl Anyification {
8 pub fn clean_type_id(&mut self, ty: TypeId) -> TypeId {
9 LUAU_ASSERT!(self.is_dirty_type_id(ty));
10
11 let log = self.base.base.log;
12 let ttv = unsafe { (*log).txn_log_get_mutable::<TableType, TypeId>(ty) };
13 if !ttv.is_null() {
14 let ttv = unsafe { &*ttv };
15 let mut clone =
16 TableType::table_type_props_optional_table_indexer_type_level_table_state(
17 &ttv.props,
18 ttv.indexer.clone(),
19 ttv.level,
20 TableState::Sealed,
21 );
22 clone.definition_module_name = ttv.definition_module_name.clone();
23 clone.definition_location = ttv.definition_location.clone();
24 clone.name = ttv.name.clone();
25 clone.synthetic_name = ttv.synthetic_name.clone();
26 clone.tags = ttv.tags.clone();
27
28 return self.base.add_type(clone);
29 }
30
31 self.any_type
32 }
33}