diff options
| author | Lukas Wirth <lukastw97@gmail.com> | 2024-04-17 12:05:35 +0200 |
|---|---|---|
| committer | Lukas Wirth <lukastw97@gmail.com> | 2024-04-17 12:05:35 +0200 |
| commit | 0eb7b6c7b5846d93a5d5e0a42b9aba6e26feef61 (patch) | |
| tree | e036b943018cca4fad911e7881f0c8ebd0bc15ed | |
| parent | 701068daf28d6a13d443b53170df70153ea4602e (diff) | |
| download | rust-0eb7b6c7b5846d93a5d5e0a42b9aba6e26feef61.tar.gz rust-0eb7b6c7b5846d93a5d5e0a42b9aba6e26feef61.zip | |
Don't show unused_variables fixes if the name comes from a macro definition
| -rw-r--r-- | crates/ide-diagnostics/src/handlers/unused_variables.rs | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/crates/ide-diagnostics/src/handlers/unused_variables.rs b/crates/ide-diagnostics/src/handlers/unused_variables.rs index 0b22ac8ead0..fdd4e862caf 100644 --- a/crates/ide-diagnostics/src/handlers/unused_variables.rs +++ b/crates/ide-diagnostics/src/handlers/unused_variables.rs @@ -30,10 +30,10 @@ pub(crate) fn unused_variables( .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; - } + .filter(|it| { + Some(it.file_id) == ast.file_id.file_id() + && diagnostic_range.range.contains_range(it.range) + }); let var_name = d.local.name(ctx.sema.db); Some( Diagnostic::new_with_syntax_node_ptr( @@ -42,13 +42,9 @@ pub(crate) fn unused_variables( "unused variable", ast, ) - .with_fixes(fixes( - ctx.sema.db, - var_name, - name_range.range, - diagnostic_range, - ast.file_id.is_macro(), - )) + .with_fixes(name_range.and_then(|it| { + fixes(ctx.sema.db, var_name, it.range, diagnostic_range, ast.file_id.is_macro()) + })) .experimental(), ) } |
