Skip to content

Rustc suggests incorrect fixes (#[warn(unused_parens)]) #117380

Closed
@he-thinks

Description

@he-thinks

Code

fn main() {
    let(mut _x): i8 = 0;
    let( mut _x): i8 = 0;
    let(_x): i8 = 0;
}

Current output

warning: unnecessary parentheses around pattern
 --> src/main.rs:2:8
  |
2 |     let(mut _x): i8 = 0;
  |        ^      ^
  |
  = note: `#[warn(unused_parens)]` on by default
help: remove these parentheses
  |
2 -     let(mut _x): i8 = 0;
2 +     letmut _x: i8 = 0;
  |

warning: unnecessary parentheses around pattern
 --> src/main.rs:3:8
  |
3 |     let( mut _x): i8 = 0;
  |        ^^      ^
  |
help: remove these parentheses
  |
3 -     let( mut _x): i8 = 0;
3 +     letmut _x: i8 = 0;
  |

warning: unnecessary parentheses around pattern
 --> src/main.rs:4:8
  |
4 |     let(_x): i8 = 0;
  |        ^  ^
  |
help: remove these parentheses
  |
4 -     let(_x): i8 = 0;
4 +     let_x: i8 = 0;
  |

Desired output

warning: unnecessary parentheses around pattern
 --> src/main.rs:2:8
  |
2 |     let(mut _x): i8 = 0;
  |        ^      ^
  |
  = note: `#[warn(unused_parens)]` on by default
help: remove these parentheses
  |
2 -     let(mut _x): i8 = 0;
2 +     let mut _x: i8 = 0;
  |

warning: unnecessary parentheses around pattern
 --> src/main.rs:3:8
  |
3 |     let( mut _x): i8 = 0;
  |        ^^      ^
  |
help: remove these parentheses
  |
3 -     let( mut _x): i8 = 0;
3 +     let mut _x: i8 = 0;
  |

warning: unnecessary parentheses around pattern
 --> src/main.rs:4:8
  |
4 |     let(_x): i8 = 0;
  |        ^  ^
  |
help: remove these parentheses
  |
4 -     let(_x): i8 = 0;
4 +     let _x: i8 = 0;
  |

Rationale and extra context

Rustc suggests incorrect fixes for #[warn(unused_parens)] for these patterns.

Other cases

No response

Anything else?

Rustc version:

rustc 1.75.0-nightly (e5cfc5547 2023-10-28)
binary: rustc
commit-hash: e5cfc55477eceed1317a02189fdf77a4a98f2124
commit-date: 2023-10-28
host: x86_64-pc-windows-gnu
release: 1.75.0-nightly
LLVM version: 17.0.3

(the same issue with the stable 1.73.0 rustc).

Metadata

Metadata

Assignees

Labels

A-diagnosticsArea: Messages for errors, warnings, and lintsD-invalid-suggestionDiagnostics: A structured suggestion resulting in incorrect code.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions