about summary refs log tree commit diff
diff options
context:
space:
mode:
authorflip1995 <hello@philkrones.com>2019-04-18 13:37:20 +0200
committerflip1995 <hello@philkrones.com>2019-04-18 13:37:20 +0200
commit10cd28900f79e013edbea5b4d9d956249e85439a (patch)
treee2b40ef1eba741c6c725b4f8fa9a0969b357e0c1
parent88359a136f517f8c828b8b2cdcf18421b0e5abe7 (diff)
downloadrust-10cd28900f79e013edbea5b4d9d956249e85439a.tar.gz
rust-10cd28900f79e013edbea5b4d9d956249e85439a.zip
Fix dogfood error
-rw-r--r--clippy_lints/src/assertions_on_constants.rs13
1 files changed, 8 insertions, 5 deletions
diff --git a/clippy_lints/src/assertions_on_constants.rs b/clippy_lints/src/assertions_on_constants.rs
index 5b3310b28df..36ed835e258 100644
--- a/clippy_lints/src/assertions_on_constants.rs
+++ b/clippy_lints/src/assertions_on_constants.rs
@@ -2,6 +2,7 @@ use if_chain::if_chain;
 use rustc::hir::{Expr, ExprKind};
 use rustc::lint::{LateContext, LateLintPass, LintArray, LintPass};
 use rustc::{declare_lint_pass, declare_tool_lint};
+use syntax_pos::Span;
 
 use crate::consts::{constant, Constant};
 use crate::utils::{in_macro, is_direct_expn_of, span_help_and_lint};
@@ -33,14 +34,16 @@ declare_lint_pass!(AssertionsOnConstants => [ASSERTIONS_ON_CONSTANTS]);
 impl<'a, 'tcx> LateLintPass<'a, 'tcx> for AssertionsOnConstants {
     fn check_expr(&mut self, cx: &LateContext<'a, 'tcx>, e: &'tcx Expr) {
         let mut is_debug_assert = false;
+        let debug_assert_not_in_macro = |span: Span| {
+            is_debug_assert = true;
+            // Check that `debug_assert!` itself is not inside a macro
+            !in_macro(span)
+        };
         if_chain! {
             if let Some(assert_span) = is_direct_expn_of(e.span, "assert");
             if !in_macro(assert_span)
-                || is_direct_expn_of(assert_span, "debug_assert").map_or(false, |span| {
-                    is_debug_assert = true;
-                    // Check that `debug_assert!` itself is not inside a macro
-                    !in_macro(span)
-                });
+                || is_direct_expn_of(assert_span, "debug_assert")
+                    .map_or(false, debug_assert_not_in_macro);
             if let ExprKind::Unary(_, ref lit) = e.node;
             if let Some(bool_const) = constant(cx, cx.tables, lit);
             then {