use std::cmp;
+use std::iter;
-use crate::utils::{is_copy, is_self_ty, snippet, span_lint_and_sugg};
+use clippy_utils::diagnostics::span_lint_and_sugg;
+use clippy_utils::is_self_ty;
+use clippy_utils::source::snippet;
+use clippy_utils::ty::is_copy;
use if_chain::if_chain;
use rustc_ast::attr;
use rustc_errors::Applicability;
let fn_body = cx.enclosing_body.map(|id| cx.tcx.hir().body(id));
- for (index, (input, &ty)) in decl.inputs.iter().zip(fn_sig.inputs()).enumerate() {
+ for (index, (input, &ty)) in iter::zip(decl.inputs, fn_sig.inputs()).enumerate() {
// All spans generated from a proc-macro invocation are the same...
match span {
Some(s) if s == input.span => return,
}
if let hir::TraitItemKind::Fn(method_sig, _) = &item.kind {
- self.check_poly_fn(cx, item.hir_id, &*method_sig.decl, None);
+ self.check_poly_fn(cx, item.hir_id(), &*method_sig.decl, None);
}
}
}
match kind {
- FnKind::ItemFn(.., header, _, attrs) => {
+ FnKind::ItemFn(.., header, _) => {
if header.abi != Abi::Rust {
return;
}
+ let attrs = cx.tcx.hir().attrs(hir_id);
for a in attrs {
if let Some(meta_items) = a.meta_item_list() {
if a.has_name(sym::proc_macro_derive)
}
},
FnKind::Method(..) => (),
- FnKind::Closure(..) => return,
+ FnKind::Closure => return,
}
// Exclude non-inherent impls