| ItemKind::ForeignMod(..) => return false,
// We found a main function ...
ItemKind::Fn(_, sig, _, Some(block)) if item.ident.name == sym::main => {
- let is_async = matches!(sig.header.asyncness, Async::Yes{..});
+ let is_async = matches!(sig.header.asyncness, Async::Yes { .. });
let returns_nothing = match &sig.decl.output {
FnRetTy::Default(..) => true,
FnRetTy::Ty(ty) if ty.kind.is_unit() => true,
let has_const_generic_params = generics
.params
.iter()
- .any(|param| matches!(param.kind, GenericParamKind::Const{ .. }));
+ .any(|param| matches!(param.kind, GenericParamKind::Const { .. }));
if already_const(header) || has_const_generic_params {
return;
// Exclude non-inherent impls
if let Some(Node::Item(item)) = cx.tcx.hir().find(cx.tcx.hir().get_parent_node(hir_id)) {
- if matches!(item.kind, ItemKind::Impl{ of_trait: Some(_), .. } |
- ItemKind::Trait(..))
- {
+ if matches!(
+ item.kind,
+ ItemKind::Impl { of_trait: Some(_), .. } | ItemKind::Trait(..)
+ ) {
return;
}
}
// Exclude non-inherent impls
if let Some(Node::Item(item)) = cx.tcx.hir().find(cx.tcx.hir().get_parent_node(hir_id)) {
- if matches!(item.kind, ItemKind::Impl{ of_trait: Some(_), .. } |
- ItemKind::Trait(..))
- {
+ if matches!(
+ item.kind,
+ ItemKind::Impl { of_trait: Some(_), .. } | ItemKind::Trait(..)
+ ) {
return;
}
}
let local = place.local;
if local == self.used.0
- && !matches!(ctx, PlaceContext::MutatingUse(MutatingUseContext::Drop) | PlaceContext::NonUse(_))
+ && !matches!(
+ ctx,
+ PlaceContext::MutatingUse(MutatingUseContext::Drop) | PlaceContext::NonUse(_)
+ )
{
self.used.1 = true;
}
expr.kind,
ExprKind::Block(
Block {
- stmts: &[], expr: None, ..
+ stmts: &[],
+ expr: None,
+ ..
},
_,
)
}
if let Some(Node::Item(item)) = cx.tcx.hir().find(cx.tcx.hir().get_parent_node(hir_id)) {
- if matches!(item.kind, ItemKind::Impl{ of_trait: Some(_), ..} | ItemKind::Trait(..)) {
+ if matches!(
+ item.kind,
+ ItemKind::Impl { of_trait: Some(_), .. } | ItemKind::Trait(..)
+ ) {
return;
}
}
}
pub fn eq_defaultness(l: Defaultness, r: Defaultness) -> bool {
- matches!((l, r), (Defaultness::Final, Defaultness::Final) | (Defaultness::Default(_), Defaultness::Default(_)))
+ matches!(
+ (l, r),
+ (Defaultness::Final, Defaultness::Final) | (Defaultness::Default(_), Defaultness::Default(_))
+ )
}
pub fn eq_vis(l: &Visibility, r: &Visibility) -> bool {
/// ```
pub fn is_trait_impl_item(cx: &LateContext<'_>, hir_id: HirId) -> bool {
if let Some(Node::Item(item)) = cx.tcx.hir().find(cx.tcx.hir().get_parent_node(hir_id)) {
- matches!(item.kind, ItemKind::Impl{ of_trait: Some(_), .. })
+ matches!(item.kind, ItemKind::Impl { of_trait: Some(_), .. })
} else {
false
}
}
impl<'tcx> ParamBindingIdCollector {
fn collect_binding_hir_ids(body: &'tcx hir::Body<'tcx>) -> Vec<hir::HirId> {
- let mut finder = ParamBindingIdCollector {
- binding_hir_ids: Vec::new(),
- };
- finder.visit_body(body);
- finder.binding_hir_ids
+ let mut hir_ids: Vec<hir::HirId> = Vec::new();
+ for param in body.params.iter() {
+ let mut finder = ParamBindingIdCollector {
+ binding_hir_ids: Vec::new(),
+ };
+ finder.visit_param(param);
+ for hir_id in &finder.binding_hir_ids {
+ hir_ids.push(*hir_id);
+ }
+ }
+ hir_ids
}
}
impl<'tcx> intravisit::Visitor<'tcx> for ParamBindingIdCollector {
type Map = Map<'tcx>;
- fn visit_param(&mut self, param: &'tcx hir::Param<'tcx>) {
- if let hir::PatKind::Binding(_, hir_id, ..) = param.pat.kind {
+ fn visit_pat(&mut self, pat: &'tcx hir::Pat<'tcx>) {
+ if let hir::PatKind::Binding(_, hir_id, ..) = pat.kind {
self.binding_hir_ids.push(hir_id);
}
+ intravisit::walk_pat(self, pat);
}
fn nested_visit_map(&mut self) -> intravisit::NestedVisitorMap<Self::Map> {
}
let _ = Ok(1).unwrap_or_else(|e::E| 2);
let _ = Ok(1).unwrap_or_else(|SomeStruct { .. }| 2);
+
+ // Fix #6343
+ let arr = [(Some(1),)];
+ Some(&0).and_then(|&i| arr[i].0);
}