Merge pull request #1978 from rust-lang-nursery/fix-768
fix #768 by checking for message macro expansion
This commit is contained in:
commit
6649cb3672
@ -45,7 +45,8 @@ fn check_expr(&mut self, cx: &LateContext<'a, 'tcx>, expr: &'tcx Expr) {
|
|||||||
is_direct_expn_of(expr.span, "panic").is_some(),
|
is_direct_expn_of(expr.span, "panic").is_some(),
|
||||||
let LitKind::Str(ref string, _) = lit.node,
|
let LitKind::Str(ref string, _) = lit.node,
|
||||||
let Some(par) = string.as_str().find('{'),
|
let Some(par) = string.as_str().find('{'),
|
||||||
string.as_str()[par..].contains('}')
|
string.as_str()[par..].contains('}'),
|
||||||
|
params[0].span.source_callee().is_none()
|
||||||
], {
|
], {
|
||||||
span_lint(cx, PANIC_PARAMS, params[0].span,
|
span_lint(cx, PANIC_PARAMS, params[0].span,
|
||||||
"you probably are missing some parameter in your format string");
|
"you probably are missing some parameter in your format string");
|
||||||
|
@ -34,10 +34,18 @@ fn ok_bracket() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const ONE : u32= 1;
|
||||||
|
|
||||||
|
fn ok_nomsg() {
|
||||||
|
assert!({ 1 == ONE });
|
||||||
|
assert!(if 1 == ONE { ONE == 1 } else { false });
|
||||||
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
missing();
|
missing();
|
||||||
ok_single();
|
ok_single();
|
||||||
ok_multiple();
|
ok_multiple();
|
||||||
ok_bracket();
|
ok_bracket();
|
||||||
ok_inner();
|
ok_inner();
|
||||||
|
ok_nomsg();
|
||||||
}
|
}
|
||||||
|
@ -18,13 +18,5 @@ error: you probably are missing some parameter in your format string
|
|||||||
12 | assert!(true, "here be missing values: {}");
|
12 | assert!(true, "here be missing values: {}");
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
error: you probably are missing some parameter in your format string
|
error: aborting due to 3 previous errors
|
||||||
--> $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
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user