Unnamed repository; edit this file 'description' to name the repository.
Use the correct edition when formatting path deps
Jonas Schievink 2022-12-19
parent 1f74b1b · commit 5706910
-rw-r--r--crates/rust-analyzer/src/handlers.rs11
1 files changed, 6 insertions, 5 deletions
diff --git a/crates/rust-analyzer/src/handlers.rs b/crates/rust-analyzer/src/handlers.rs
index 1604a02fb1..2850bc2c3d 100644
--- a/crates/rust-analyzer/src/handlers.rs
+++ b/crates/rust-analyzer/src/handlers.rs
@@ -1788,14 +1788,15 @@ fn run_rustfmt(
let file_id = from_proto::file_id(snap, &text_document.uri)?;
let file = snap.analysis.file_text(file_id)?;
- // find the edition of the package the file belongs to
- // (if it belongs to multiple we'll just pick the first one and pray)
- let edition = snap
+ // Determine the edition of the crate the file belongs to (if there's multiple, we pick the
+ // highest edition).
+ let editions = snap
.analysis
.relevant_crates_for(file_id)?
.into_iter()
- .find_map(|crate_id| snap.cargo_target_for_crate_root(crate_id))
- .map(|(ws, target)| ws[ws[target].package].edition);
+ .map(|crate_id| snap.analysis.crate_edition(crate_id))
+ .collect::<Result<Vec<_>, _>>()?;
+ let edition = editions.iter().copied().max();
let line_index = snap.file_line_index(file_id)?;