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: F) { + for _i in 0.. { + f(); + } +} + +fn main() {}