Skip to content

Commit 26b67ec

Browse files
committed
diagnostic: fix MissingFields
1 parent 6939d67 commit 26b67ec

2 files changed

Lines changed: 19 additions & 0 deletions

File tree

crates/emmylua_code_analysis/src/diagnostic/checker/check_field.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,11 @@ fn check_index_expr(
6464
let prefix_typ = semantic_model
6565
.infer_expr(index_expr.get_prefix_expr()?)
6666
.unwrap_or(LuaType::Unknown);
67+
68+
if !is_valid_prefix_type(&prefix_typ) {
69+
return Some(());
70+
}
71+
6772
let index_name = index_key.get_path_part();
6873
match code {
6974
DiagnosticCode::InjectField => {

crates/emmylua_code_analysis/src/diagnostic/test/missing_fields_test.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,4 +149,18 @@ foo({})
149149
"#
150150
));
151151
}
152+
153+
#[test]
154+
fn test_1() {
155+
let mut ws = VirtualWorkspace::new();
156+
assert!(ws.check_code_for(
157+
DiagnosticCode::MissingFields,
158+
r#"
159+
---@type table
160+
local a = {}
161+
162+
print(a[1])
163+
"#
164+
));
165+
}
152166
}

0 commit comments

Comments
 (0)