Skip to content

Commit ce570ee

Browse files
committed
fix type check
1 parent 29e5eae commit ce570ee

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

crates/code_analysis/src/compilation/analyzer/doc/field_or_operator_def_tags.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ pub fn analyze_field(analyzer: &mut DocAnalyzer, tag: LuaDocTagField) -> Option<
2626
LuaType::Unknown
2727
};
2828

29-
if nullable && type_ref.is_nullable() {
29+
if nullable && !type_ref.is_nullable() {
3030
type_ref = LuaType::Nullable(type_ref.into());
3131
}
3232

crates/code_analysis/src/semantic/type_compact/mod.rs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -281,16 +281,22 @@ fn infer_custom_type_compact_table(
281281
infer_guard: &mut InferGuard,
282282
) -> Option<bool> {
283283
let member_index = db.get_member_index();
284-
let members = member_index.get_member_map(table_owner.clone())?;
284+
let table_members = member_index.get_member_map(table_owner.clone())?;
285285
let type_member_owner = LuaMemberOwner::Type(type_id.clone());
286286
let type_members = member_index.get_member_map(type_member_owner)?;
287287
for (key, type_member_id) in type_members {
288-
let table_member_id = members.get(key)?;
289-
let table_member = member_index.get_member(table_member_id)?;
290288
let type_member = member_index.get_member(type_member_id)?;
291289
let type_member_type = type_member.get_decl_type();
292-
let table_member_type = table_member.get_decl_type();
293-
if !infer_type_compact(db, config, type_member_type, table_member_type, infer_guard) {
290+
291+
if let Some(table_member_id) = table_members.get(key) {
292+
let table_member = member_index.get_member(table_member_id)?;
293+
let table_member_type = table_member.get_decl_type();
294+
if !infer_type_compact(db, config, type_member_type, table_member_type, infer_guard) {
295+
return Some(false);
296+
}
297+
} else if type_member_type.is_optional() {
298+
continue;
299+
} else {
294300
return Some(false);
295301
}
296302
}

0 commit comments

Comments
 (0)