diff --git a/clippy_lints/src/panic.rs b/clippy_lints/src/panic.rs index 8db7de30f7c2..9c1c6beec4f6 100644 --- a/clippy_lints/src/panic.rs +++ b/clippy_lints/src/panic.rs @@ -42,7 +42,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for Pass { let ExprPath(ref qpath) = fun.node, match_def_path(cx.tcx, resolve_node(cx, qpath, fun.id).def_id(), &paths::BEGIN_PANIC), let ExprLit(ref lit) = params[0].node, - is_direct_expn_of(params[0].span, "panic").is_some(), + is_direct_expn_of(expr.span, "panic").is_some(), let LitKind::Str(ref string, _) = lit.node, let Some(par) = string.as_str().find('{'), string.as_str()[par..].contains('}') diff --git a/tests/ui/panic.stderr b/tests/ui/panic.stderr index e69de29bb2d1..451a5db6441a 100644 --- a/tests/ui/panic.stderr +++ b/tests/ui/panic.stderr @@ -0,0 +1,34 @@ +error: you probably are missing some parameter in your format string + --> $DIR/panic.rs:8:16 + | +8 | panic!("{}"); + | ^^^^ + | +note: lint level defined here + --> $DIR/panic.rs:4:9 + | +4 | #![deny(panic_params)] + | ^^^^^^^^^^^^ + +error: you probably are missing some parameter in your format string + --> $DIR/panic.rs:10:16 + | +10 | panic!("{:?}"); + | ^^^^^^ + +error: you probably are missing some parameter in your format string + --> $DIR/panic.rs:12:23 + | +12 | assert!(true, "here be missing values: {}"); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +error: you probably are missing some parameter in your format string + --> $DIR/panic.rs:22:5 + | +22 | assert!("foo bar".contains(&format!("foo {}", "bar"))); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: this error originates in a macro outside of the current crate + +error: aborting due to 4 previous errors +