mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-11-10 15:14:29 +00:00
Auto merge of #5402 - pmk21:allow-let-underscore-must-use, r=flip1995
Allow let_underscore_must_use to be ignored changelog: none Fixes #5366
This commit is contained in:
commit
7ebb3aa55d
2 changed files with 9 additions and 7 deletions
|
@ -1,5 +1,5 @@
|
|||
use if_chain::if_chain;
|
||||
use rustc_hir::{PatKind, Stmt, StmtKind};
|
||||
use rustc_hir::{Local, PatKind};
|
||||
use rustc_lint::{LateContext, LateLintPass};
|
||||
use rustc_middle::lint::in_external_macro;
|
||||
use rustc_session::{declare_lint_pass, declare_tool_lint};
|
||||
|
@ -66,13 +66,12 @@ const SYNC_GUARD_PATHS: [&[&str]; 3] = [
|
|||
];
|
||||
|
||||
impl<'a, 'tcx> LateLintPass<'a, 'tcx> for LetUnderscore {
|
||||
fn check_stmt(&mut self, cx: &LateContext<'_, '_>, stmt: &Stmt<'_>) {
|
||||
if in_external_macro(cx.tcx.sess, stmt.span) {
|
||||
fn check_local(&mut self, cx: &LateContext<'_, '_>, local: &Local<'_>) {
|
||||
if in_external_macro(cx.tcx.sess, local.span) {
|
||||
return;
|
||||
}
|
||||
|
||||
if_chain! {
|
||||
if let StmtKind::Local(ref local) = stmt.kind;
|
||||
if let PatKind::Wild = local.pat.kind;
|
||||
if let Some(ref init) = local.init;
|
||||
then {
|
||||
|
@ -81,7 +80,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for LetUnderscore {
|
|||
span_lint_and_help(
|
||||
cx,
|
||||
LET_UNDERSCORE_LOCK,
|
||||
stmt.span,
|
||||
local.span,
|
||||
"non-binding let on a synchronization lock",
|
||||
"consider using an underscore-prefixed named \
|
||||
binding or dropping explicitly with `std::mem::drop`"
|
||||
|
@ -90,7 +89,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for LetUnderscore {
|
|||
span_lint_and_help(
|
||||
cx,
|
||||
LET_UNDERSCORE_MUST_USE,
|
||||
stmt.span,
|
||||
local.span,
|
||||
"non-binding let on an expression with `#[must_use]` type",
|
||||
"consider explicitly using expression value"
|
||||
)
|
||||
|
@ -98,7 +97,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for LetUnderscore {
|
|||
span_lint_and_help(
|
||||
cx,
|
||||
LET_UNDERSCORE_MUST_USE,
|
||||
stmt.span,
|
||||
local.span,
|
||||
"non-binding let on a result of a `#[must_use]` function",
|
||||
"consider explicitly using function result"
|
||||
)
|
||||
|
|
|
@ -88,4 +88,7 @@ fn main() {
|
|||
let _ = a.map(|_| ());
|
||||
|
||||
let _ = a;
|
||||
|
||||
#[allow(clippy::let_underscore_must_use)]
|
||||
let _ = a;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue