Function rustc_trait_selection::traits::coherence::negative_impl_exists
source · fn negative_impl_exists<'tcx>(
infcx: &InferCtxt<'tcx>,
o: &PredicateObligation<'tcx>,
body_def_id: DefId
) -> bool
Expand description
Try to prove that a negative impl exist for the obligation or its supertraits.
If such a negative impl exists, then the obligation definitely must not hold due to coherence, even if it’s not necessarily “knowable” in this crate. Any valid impl downstream would not be able to exist due to the overlapping negative impl.