mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-24 15:54:15 +00:00
Auto merge of #10013 - Jarcho:issue_9886, r=Manishearth
Don't lint `manual_assert` in `else if` fixes #9886 changelog: `manual_assert`: Don't lint in `else if`
This commit is contained in:
commit
fec00573a5
@ -2,7 +2,7 @@ use crate::rustc_lint::LintContext;
|
||||
use clippy_utils::diagnostics::span_lint_and_then;
|
||||
use clippy_utils::macros::{root_macro_call, FormatArgsExpn};
|
||||
use clippy_utils::source::snippet_with_applicability;
|
||||
use clippy_utils::{peel_blocks_with_stmt, span_extract_comment, sugg};
|
||||
use clippy_utils::{is_else_clause, peel_blocks_with_stmt, span_extract_comment, sugg};
|
||||
use rustc_errors::Applicability;
|
||||
use rustc_hir::{Expr, ExprKind, UnOp};
|
||||
use rustc_lint::{LateContext, LateLintPass};
|
||||
@ -47,6 +47,10 @@ impl<'tcx> LateLintPass<'tcx> for ManualAssert {
|
||||
if cx.tcx.item_name(macro_call.def_id) == sym::panic;
|
||||
if !cx.tcx.sess.source_map().is_multiline(cond.span);
|
||||
if let Some(format_args) = FormatArgsExpn::find_nested(cx, then, macro_call.expn);
|
||||
// Don't change `else if foo { panic!(..) }` to `else { assert!(foo, ..) }` as it just
|
||||
// shuffles the condition around.
|
||||
// Should this have a config value?
|
||||
if !is_else_clause(cx.tcx, expr);
|
||||
then {
|
||||
let mut applicability = Applicability::MachineApplicable;
|
||||
let format_args_snip = snippet_with_applicability(cx, format_args.inputs_span(), "..", &mut applicability);
|
||||
|
@ -62,6 +62,11 @@ fn main() {
|
||||
panic!("panic5");
|
||||
}
|
||||
assert!(!a.is_empty(), "with expansion {}", one!());
|
||||
if a.is_empty() {
|
||||
let _ = 0;
|
||||
} else if a.len() == 1 {
|
||||
panic!("panic6");
|
||||
}
|
||||
}
|
||||
|
||||
fn issue7730(a: u8) {
|
||||
|
@ -50,6 +50,11 @@ fn main() {
|
||||
assert!(!(b.is_empty() || a.is_empty()), "panic4");
|
||||
assert!(!(a.is_empty() || !b.is_empty()), "panic5");
|
||||
assert!(!a.is_empty(), "with expansion {}", one!());
|
||||
if a.is_empty() {
|
||||
let _ = 0;
|
||||
} else if a.len() == 1 {
|
||||
panic!("panic6");
|
||||
}
|
||||
}
|
||||
|
||||
fn issue7730(a: u8) {
|
||||
|
@ -65,7 +65,7 @@ LL | | }
|
||||
| |_____^ help: try instead: `assert!(!a.is_empty(), "with expansion {}", one!());`
|
||||
|
||||
error: only a `panic!` in `if`-then statement
|
||||
--> $DIR/manual_assert.rs:73:5
|
||||
--> $DIR/manual_assert.rs:78:5
|
||||
|
|
||||
LL | / if a > 2 {
|
||||
LL | | // comment
|
||||
|
@ -66,6 +66,11 @@ fn main() {
|
||||
if a.is_empty() {
|
||||
panic!("with expansion {}", one!())
|
||||
}
|
||||
if a.is_empty() {
|
||||
let _ = 0;
|
||||
} else if a.len() == 1 {
|
||||
panic!("panic6");
|
||||
}
|
||||
}
|
||||
|
||||
fn issue7730(a: u8) {
|
||||
|
Loading…
Reference in New Issue
Block a user