fix false positive (panic message) with assert macro using message parameter
This commit is contained in:
parent
64d74df19c
commit
eeefbb7617
@ -74,7 +74,9 @@
|
|||||||
|
|
||||||
impl<'tcx> LateLintPass<'tcx> for PanicUnimplemented {
|
impl<'tcx> LateLintPass<'tcx> for PanicUnimplemented {
|
||||||
fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) {
|
fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) {
|
||||||
if match_panic_call(cx, expr).is_some() && is_expn_of(expr.span, "debug_assert").is_none() {
|
if match_panic_call(cx, expr).is_some()
|
||||||
|
&& (is_expn_of(expr.span, "debug_assert").is_none() && is_expn_of(expr.span, "assert").is_none())
|
||||||
|
{
|
||||||
let span = get_outer_span(expr);
|
let span = get_outer_span(expr);
|
||||||
if is_expn_of(expr.span, "unimplemented").is_some() {
|
if is_expn_of(expr.span, "unimplemented").is_some() {
|
||||||
span_lint(
|
span_lint(
|
||||||
|
@ -43,6 +43,18 @@ fn core_versions() {
|
|||||||
unreachable!();
|
unreachable!();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn assert() {
|
||||||
|
assert!(true);
|
||||||
|
assert_eq!(true, true);
|
||||||
|
assert_ne!(true, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn assert_msg() {
|
||||||
|
assert!(true, "this should not panic");
|
||||||
|
assert_eq!(true, true, "this should not panic");
|
||||||
|
assert_ne!(true, false, "this should not panic");
|
||||||
|
}
|
||||||
|
|
||||||
fn debug_assert() {
|
fn debug_assert() {
|
||||||
debug_assert!(true);
|
debug_assert!(true);
|
||||||
debug_assert_eq!(true, true);
|
debug_assert_eq!(true, true);
|
||||||
@ -61,4 +73,8 @@ fn main() {
|
|||||||
unimplemented();
|
unimplemented();
|
||||||
unreachable();
|
unreachable();
|
||||||
core_versions();
|
core_versions();
|
||||||
|
assert();
|
||||||
|
assert_msg();
|
||||||
|
debug_assert();
|
||||||
|
debug_assert_msg();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user