fix: Clear native diagnostics for files when they are deleted

This commit is contained in:
Lukas Wirth 2022-05-25 15:47:41 +02:00
parent f02c915eb5
commit 5410ace1fe
2 changed files with 9 additions and 0 deletions

View file

@ -40,6 +40,11 @@ impl DiagnosticCollection {
self.changes.extend(self.check.drain().map(|(key, _value)| key)) self.changes.extend(self.check.drain().map(|(key, _value)| key))
} }
pub(crate) fn clear_native_for(&mut self, file_id: FileId) {
self.native.remove(&file_id);
self.changes.insert(file_id);
}
pub(crate) fn add_check_diagnostic( pub(crate) fn add_check_diagnostic(
&mut self, &mut self,
file_id: FileId, file_id: FileId,

View file

@ -201,6 +201,10 @@ impl GlobalState {
} }
} }
if !file.exists() {
self.diagnostics.clear_native_for(file.file_id);
}
let text = if file.exists() { let text = if file.exists() {
let bytes = vfs.file_contents(file.file_id).to_vec(); let bytes = vfs.file_contents(file.file_id).to_vec();
String::from_utf8(bytes).ok().and_then(|text| { String::from_utf8(bytes).ok().and_then(|text| {