From 0b0337d258857508995c8400272a637eec856a5a Mon Sep 17 00:00:00 2001 From: Oliver Schneider <git-spam-no-reply9815368754983@oli-obk.de> Date: Wed, 29 Nov 2017 15:52:57 +0100 Subject: [PATCH] Fix #2247 --- clippy_lints/src/loops.rs | 4 +++- tests/ui/ty_fn_sig.rs | 9 +++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 tests/ui/ty_fn_sig.rs diff --git a/clippy_lints/src/loops.rs b/clippy_lints/src/loops.rs index babf3d3cc16..dfdbe97cef4 100644 --- a/clippy_lints/src/loops.rs +++ b/clippy_lints/src/loops.rs @@ -1668,7 +1668,9 @@ impl<'a, 'tcx> Visitor<'tcx> for VarVisitor<'a, 'tcx> { self.visit_expr(expr); }, ExprCall(ref f, ref args) => { - for (ty, expr) in self.cx.tables.expr_ty(f).fn_sig(self.cx.tcx).inputs().skip_binder().iter().zip(args) { + self.visit_expr(f); + for expr in args { + let ty = self.cx.tables.expr_ty_adjusted(expr); self.prefer_mutable = false; if let ty::TyRef(_, mutbl) = ty.sty { if mutbl.mutbl == MutMutable { diff --git a/tests/ui/ty_fn_sig.rs b/tests/ui/ty_fn_sig.rs new file mode 100644 index 00000000000..b6f9e645d26 --- /dev/null +++ b/tests/ui/ty_fn_sig.rs @@ -0,0 +1,9 @@ +// Regression test + +pub fn retry<F: Fn()>(f: F) { + for _i in 0.. { + f(); + } +} + +fn main() {}