]> git.lizzy.rs Git - rust.git/blobdiff - compiler/rustc_hir/src/pat_util.rs
Rollup merge of #85177 - tspiteri:wrapping-bits, r=joshtriplett
[rust.git] / compiler / rustc_hir / src / pat_util.rs
index 28529affd5d5ab02b1698747ab76f91554f7790b..b1f78a83e7407a01451ee175414f5fcafacc78e2 100644 (file)
@@ -1,6 +1,7 @@
 use crate::def::{CtorOf, DefKind, Res};
 use crate::def_id::DefId;
 use crate::hir::{self, HirId, PatKind};
+use rustc_data_structures::stable_set::FxHashSet;
 use rustc_span::symbol::Ident;
 use rustc_span::Span;
 
@@ -118,8 +119,10 @@ pub fn necessary_variants(&self) -> Vec<DefId> {
             }
             _ => true,
         });
-        variants.sort();
-        variants.dedup();
+        // We remove duplicates by inserting into a `FxHashSet` to avoid re-ordering
+        // the bounds
+        let mut duplicates = FxHashSet::default();
+        variants.retain(|def_id| duplicates.insert(*def_id));
         variants
     }