diff options
| author | Laurențiu Nicola <lnicola@users.noreply.github.com> | 2024-11-17 07:06:29 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-11-17 07:06:29 +0000 |
| commit | 647749aa32a8b1830c33bb8b778ff8ebca6daeea (patch) | |
| tree | de8fae284a7d04e96be4b0270f94c25e7df1cd5d /src | |
| parent | cc4ffa7d6fdb61c6c0182ac4efc336e2b2991753 (diff) | |
| parent | 744e8e870c4109c4bcd74d6c1283866bf2a20cda (diff) | |
| download | rust-647749aa32a8b1830c33bb8b778ff8ebca6daeea.tar.gz rust-647749aa32a8b1830c33bb8b778ff8ebca6daeea.zip | |
Merge pull request #18519 from ChayimFriedman2/invalid-offset
fix: Fix related documents diagnostics
Diffstat (limited to 'src')
| -rw-r--r-- | src/tools/rust-analyzer/crates/rust-analyzer/src/handlers/request.rs | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/tools/rust-analyzer/crates/rust-analyzer/src/handlers/request.rs b/src/tools/rust-analyzer/crates/rust-analyzer/src/handlers/request.rs index a5c9d2823e0..4975467ece9 100644 --- a/src/tools/rust-analyzer/crates/rust-analyzer/src/handlers/request.rs +++ b/src/tools/rust-analyzer/crates/rust-analyzer/src/handlers/request.rs @@ -511,12 +511,16 @@ pub(crate) fn handle_document_diagnostics( .into_iter() .filter_map(|d| { let file = d.range.file_id; - let diagnostic = convert_diagnostic(&line_index, d); if file == file_id { + let diagnostic = convert_diagnostic(&line_index, d); return Some(diagnostic); } if supports_related { - related_documents.entry(file).or_insert_with(Vec::new).push(diagnostic); + let (diagnostics, line_index) = related_documents + .entry(file) + .or_insert_with(|| (Vec::new(), snap.file_line_index(file).ok())); + let diagnostic = convert_diagnostic(line_index.as_mut()?, d); + diagnostics.push(diagnostic); } None }); @@ -529,7 +533,7 @@ pub(crate) fn handle_document_diagnostics( related_documents: related_documents.is_empty().not().then(|| { related_documents .into_iter() - .map(|(id, items)| { + .map(|(id, (items, _))| { ( to_proto::url(&snap, id), lsp_types::DocumentDiagnosticReportKind::Full( |
