From a9e0e968be44160eae362ff5272ebf91eba7b214 Mon Sep 17 00:00:00 2001 From: Oli Scherer Date: Sat, 10 Feb 2024 22:04:46 +0000 Subject: [PATCH] Unwrap an Option that can only be Some, as inherent impls can't overlap --- compiler/rustc_middle/src/ty/mod.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/compiler/rustc_middle/src/ty/mod.rs b/compiler/rustc_middle/src/ty/mod.rs index e41368957c7d..574ca0ee7eb8 100644 --- a/compiler/rustc_middle/src/ty/mod.rs +++ b/compiler/rustc_middle/src/ty/mod.rs @@ -1590,12 +1590,12 @@ impl<'tcx> TyCtxt<'tcx> { def_id1: DefId, def_id2: DefId, ) -> Option { - let impl_trait_ref1 = self.impl_trait_ref(def_id1); - let impl_trait_ref2 = self.impl_trait_ref(def_id2); + let impl_trait_ref1 = self.impl_trait_ref(def_id1).unwrap(); + let impl_trait_ref2 = self.impl_trait_ref(def_id2).unwrap(); // If either trait impl references an error, they're allowed to overlap, // as one of them essentially doesn't exist. - if impl_trait_ref1.is_some_and(|tr| tr.instantiate_identity().references_error()) - || impl_trait_ref2.is_some_and(|tr| tr.instantiate_identity().references_error()) + if impl_trait_ref1.instantiate_identity().references_error() + || impl_trait_ref2.instantiate_identity().references_error() { return Some(ImplOverlapKind::Permitted { marker: false }); } @@ -1615,8 +1615,8 @@ impl<'tcx> TyCtxt<'tcx> { }; let is_marker_overlap = { - let is_marker_impl = |trait_ref: Option>>| -> bool { - trait_ref.is_some_and(|tr| self.trait_def(tr.skip_binder().def_id).is_marker) + let is_marker_impl = |trait_ref: EarlyBinder>| -> bool { + self.trait_def(trait_ref.skip_binder().def_id).is_marker }; is_marker_impl(impl_trait_ref1) && is_marker_impl(impl_trait_ref2) };