From: Shotaro Yamada Date: Wed, 16 Oct 2019 04:46:44 +0000 (+0900) Subject: Change HashSet element type to `DefId` X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=d5ffd36a6cd6fa03b09a60a3835ce6ca90c310ff;p=rust.git Change HashSet element type to `DefId` --- diff --git a/src/librustc_mir/hair/pattern/mod.rs b/src/librustc_mir/hair/pattern/mod.rs index 58d741b9295..72e6970ebba 100644 --- a/src/librustc_mir/hair/pattern/mod.rs +++ b/src/librustc_mir/hair/pattern/mod.rs @@ -1217,7 +1217,7 @@ struct Search<'tcx> { // tracks ADT's previously encountered during search, so that // we will not recur on them again. - seen: FxHashSet<&'tcx AdtDef>, + seen: FxHashSet, } impl<'tcx> TypeVisitor<'tcx> for Search<'tcx> { @@ -1257,14 +1257,12 @@ fn visit_ty(&mut self, ty: Ty<'tcx>) -> bool { return true // Halt visiting! } - if self.seen.contains(adt_def) { + if !self.seen.insert(adt_def.did) { debug!("Search already seen adt_def: {:?}", adt_def); // let caller continue its search return false; } - self.seen.insert(adt_def); - // `#[structural_match]` does not care about the // instantiation of the generics in an ADT (it // instead looks directly at its fields outside