est31
ef38662d04
Some improvements to the manual_let_else lint suggestions
...
* Replace variables inside | patterns in the if let: let v = if let V::A(v) | V::B(v) = v { v } else ...
* Support nested patterns: let v = if let Ok(Ok(Ok(v))) = v { v } else ...
* Support tuple structs with more than one arg: let v = V::W(v, _) = v { v } else ...
* Correctly handle .. in tuple struct patterns: let v = V::X(v, ..) = v { v } else ...
2023-05-18 11:16:57 +02:00
bors
7e18451633
Auto merge of #10175 - koka831:fix/10171, r=giraffate
...
Use original variable name in the suggestion
Fix https://github.com/rust-lang/rust-clippy/issues/10171
---
changelog: Sugg: [`manual_let_else`]: Now suggest the correct variable name
[#10175 ](https://github.com/rust-lang/rust-clippy/pull/10175 )
<!-- changelog_checked -->
2023-05-18 01:21:27 +00:00
Samuel Tardieu
7f15a11aa1
manual_let_else: let/else is not divergent by default
...
The divergent `else` block of a `let`/`else` statement does not make
the `let`/`else` statement itself divergent.
2023-02-15 00:47:43 +01:00
koka
07c8c50a41
Avoid renaming for TupleStruct with multiple arguments
...
update spec
fix: move specs in fire
2023-02-01 22:10:19 +09:00
dswij
a4b53c9c14
manual_let_else
: Add test with expanded macros
2022-11-25 18:17:34 +08:00
est31
dcde480a66
Also consider match guards for divergence check
...
Plus, add some tests for the divergence check.
2022-10-24 22:05:39 +02:00
est31
748169deaa
Don't fire the lint if there is a type annotation
...
Sometimes type annotations are needed for type inferrence to work,
or because of coercions. We don't know this, and we also don't
want users to possibly repeat the entire pattern.
2022-10-24 22:05:39 +02:00
oxalica
01e651f2fe
Don't lint if the let is already a let-else
...
We cannot apply the lint for 3-branches like in the added example.
2022-10-24 22:05:39 +02:00
est31
a1db9311dc
Make an attempt of creating suggestions
...
They aren't perfect but better than nothing
2022-10-24 22:05:39 +02:00
est31
c5a7696231
Support tuples
2022-10-24 22:05:39 +02:00
est31
2e01e6b4c2
Also support linting for match
2022-10-24 22:05:39 +02:00
est31
f827be92fc
Add lint to tell about let else pattern
2022-10-24 22:05:39 +02:00