Rollup merge of #97739 - a2aaron:let_underscore, r=estebank
Uplift the `let_underscore` lints from clippy into rustc. This PR resolves #97241. This PR adds three lints from clippy--`let_underscore_drop`, `let_underscore_lock`, and `let_underscore_must_use`, which are meant to capture likely-incorrect uses of `let _ = ...` bindings (in particular, doing this on a type with a non-trivial `Drop` causes the `Drop` to occur immediately, instead of at the end of the scope. For a type like `MutexGuard`, this effectively releases the lock immediately, which is almost certainly the wrong behavior) In porting the lints from clippy I had to copy over a bunch of utility functions from `clippy_util` that these lints also relied upon. Is that the right approach? Note that I've set the `must_use` and `drop` lints to Allow by default and set `lock` to Deny by default (this matches the same settings that clippy has). In talking with `@estebank` he informed me to do a Crater run (I am not sure what type of Crater run to request here--I think it's just "check only"?) On the linked issue, there's some discussion about using `must_use` and `Drop` together as a heuristic for when to warn--I did not implement this yet. r? `@estebank`
This commit is contained in:
commit
07f43a1ca1
10 changed files with 250 additions and 0 deletions
|
@ -223,6 +223,7 @@ symbols! {
|
|||
LinkedList,
|
||||
LintPass,
|
||||
Mutex,
|
||||
MutexGuard,
|
||||
N,
|
||||
NonZeroI128,
|
||||
NonZeroI16,
|
||||
|
@ -271,6 +272,8 @@ symbols! {
|
|||
Rust,
|
||||
RustcDecodable,
|
||||
RustcEncodable,
|
||||
RwLockReadGuard,
|
||||
RwLockWriteGuard,
|
||||
Send,
|
||||
SeqCst,
|
||||
SessionDiagnostic,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue