]> git.lizzy.rs Git - rust.git/commitdiff
redundant_closure does not trigger for external macros
authorGrzegorz <grzegorz.bartoszek@thaumatec.com>
Mon, 25 Feb 2019 12:40:28 +0000 (13:40 +0100)
committerGrzegorz <grzegorz.bartoszek@thaumatec.com>
Mon, 25 Feb 2019 12:40:28 +0000 (13:40 +0100)
clippy_lints/src/eta_reduction.rs

index 87a82b2a169e503c10db6dc0ab673ec450b05dad..05793f32c6cc44b00c57bdaa117bf723d9c05b7e 100644 (file)
@@ -1,7 +1,7 @@
 use crate::utils::{is_adjusted, iter_input_pats, snippet_opt, span_lint_and_then, type_is_unsafe_function};
 use if_chain::if_chain;
 use rustc::hir::*;
-use rustc::lint::{LateContext, LateLintPass, LintArray, LintPass};
+use rustc::lint::{in_external_macro, LateContext, LateLintPass, LintArray, LintContext, LintPass};
 use rustc::ty;
 use rustc::{declare_tool_lint, lint_array};
 use rustc_errors::Applicability;
@@ -45,6 +45,10 @@ fn name(&self) -> &'static str {
 
 impl<'a, 'tcx> LateLintPass<'a, 'tcx> for EtaPass {
     fn check_expr(&mut self, cx: &LateContext<'a, 'tcx>, expr: &'tcx Expr) {
+        if in_external_macro(cx.sess(), expr.span) {
+            return;
+        }
+
         match expr.node {
             ExprKind::Call(_, ref args) | ExprKind::MethodCall(_, _, ref args) => {
                 for arg in args {