about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLukas Wirth <me@lukaswirth.dev>2025-07-29 08:31:08 +0200
committerLukas Wirth <me@lukaswirth.dev>2025-07-29 08:31:08 +0200
commit8b214fbf17d4e6f8e3ba38a26cffd741ac53adb8 (patch)
tree667a58f79f48a9aa8050afe8bfb1c1a1657df33d
parent2792799490b994ba3e7380fe9a151a6b95a1d7d1 (diff)
downloadrust-8b214fbf17d4e6f8e3ba38a26cffd741ac53adb8.tar.gz
rust-8b214fbf17d4e6f8e3ba38a26cffd741ac53adb8.zip
fix: Do not require all rename definitions to be renameable
-rw-r--r--src/tools/rust-analyzer/crates/ide/src/rename.rs9
1 files changed, 2 insertions, 7 deletions
diff --git a/src/tools/rust-analyzer/crates/ide/src/rename.rs b/src/tools/rust-analyzer/crates/ide/src/rename.rs
index a07c647c2cb..6c1d142c3b0 100644
--- a/src/tools/rust-analyzer/crates/ide/src/rename.rs
+++ b/src/tools/rust-analyzer/crates/ide/src/rename.rs
@@ -35,13 +35,8 @@ pub(crate) fn prepare_rename(
     let syntax = source_file.syntax();
 
     let res = find_definitions(&sema, syntax, position, &Name::new_symbol_root(sym::underscore))?
-        .map(|(frange, kind, def, _, _)| {
-            // ensure all ranges are valid
-
-            if def.range_for_rename(&sema).is_none() {
-                bail!("No references found at position")
-            }
-
+        .filter(|(_, _, def, _, _)| def.range_for_rename(&sema).is_some())
+        .map(|(frange, kind, _, _, _)| {
             always!(
                 frange.range.contains_inclusive(position.offset)
                     && frange.file_id == position.file_id