Collect diagnostics in queries instead of nameres

This commit is contained in:
unexge 2022-09-21 23:05:30 +01:00
parent 89107d5469
commit b21bf25a07
5 changed files with 194 additions and 116 deletions

View file

@ -540,9 +540,27 @@ impl Module {
}
acc.extend(decl.diagnostics(db))
}
ModuleDef::Adt(Adt::Enum(e)) => {
for v in e.variants(db) {
acc.extend(ModuleDef::Variant(v).diagnostics(db));
ModuleDef::Adt(adt) => {
match adt {
Adt::Struct(s) => {
for diag in db.struct_data_with_diagnostics(s.id).1.iter() {
emit_def_diagnostic(db, acc, diag);
}
}
Adt::Union(u) => {
for diag in db.union_data_with_diagnostics(u.id).1.iter() {
emit_def_diagnostic(db, acc, diag);
}
}
Adt::Enum(e) => {
for v in e.variants(db) {
acc.extend(ModuleDef::Variant(v).diagnostics(db));
}
for diag in db.enum_data_with_diagnostics(e.id).1.iter() {
emit_def_diagnostic(db, acc, diag);
}
}
}
acc.extend(decl.diagnostics(db))
}