feat: improve performance by delaying computation of fixes for diagnostics

This commit is contained in:
Aleksey Kladov 2021-04-13 11:48:12 +03:00
parent 04b5fcfdb2
commit 06a633ff42
7 changed files with 74 additions and 40 deletions

View file

@ -526,9 +526,10 @@ impl Analysis {
pub fn diagnostics(
&self,
config: &DiagnosticsConfig,
resolve: bool,
file_id: FileId,
) -> Cancelable<Vec<Diagnostic>> {
self.with_db(|db| diagnostics::diagnostics(db, config, file_id))
self.with_db(|db| diagnostics::diagnostics(db, config, resolve, file_id))
}
/// Convenience function to return assists + quick fixes for diagnostics
@ -550,9 +551,10 @@ impl Analysis {
if include_fixes {
res.extend(
diagnostics::diagnostics(db, diagnostics_config, frange.file_id)
diagnostics::diagnostics(db, diagnostics_config, resolve, frange.file_id)
.into_iter()
.filter_map(|it| it.fix),
.filter_map(|it| it.fix)
.filter(|it| it.target.intersect(frange.range).is_some()),
);
}
res