Unnamed repository; edit this file 'description' to name the repository.
Verify we are not in a macro attempt 2
Wyatt Herkamp 2024-04-16
parent 0faa294 · commit 701068d
-rw-r--r--crates/ide-diagnostics/src/handlers/unused_variables.rs13
1 files changed, 8 insertions, 5 deletions
diff --git a/crates/ide-diagnostics/src/handlers/unused_variables.rs b/crates/ide-diagnostics/src/handlers/unused_variables.rs
index 114783d323..0b22ac8ead 100644
--- a/crates/ide-diagnostics/src/handlers/unused_variables.rs
+++ b/crates/ide-diagnostics/src/handlers/unused_variables.rs
@@ -25,10 +25,13 @@ pub(crate) fn unused_variables(
}
let diagnostic_range = ctx.sema.diagnostics_display_range(ast);
// The range for the Actual Name. We don't want to replace the entire declarition. Using the diagnostic range causes issues within in Array Destructuring.
- let name_range =
- d.local.primary_source(ctx.sema.db).name().map(|v| v.syntax().value.text_range())?;
- // Make sure we are within the diagnostic range for the variable
- if !diagnostic_range.range.contains_range(name_range) {
+ let name_range = d
+ .local
+ .primary_source(ctx.sema.db)
+ .name()
+ .map(|v| v.syntax().original_file_range_rooted(ctx.sema.db))
+ .filter(|it| Some(it.file_id) == ast.file_id.file_id())?;
+ if !diagnostic_range.range.contains_range(name_range.range) {
return None;
}
let var_name = d.local.name(ctx.sema.db);
@@ -42,7 +45,7 @@ pub(crate) fn unused_variables(
.with_fixes(fixes(
ctx.sema.db,
var_name,
- name_range,
+ name_range.range,
diagnostic_range,
ast.file_id.is_macro(),
))