1
Fork 0

Document flip polarity

This commit is contained in:
Santiago Pastorino 2021-10-22 09:34:36 -03:00
parent 7829d9dde3
commit c4c76a4fbd
No known key found for this signature in database
GPG key ID: 8131A24E0C79EFAF
2 changed files with 7 additions and 0 deletions

View file

@ -56,6 +56,9 @@ pub type PredicateObligation<'tcx> = Obligation<'tcx, ty::Predicate<'tcx>>;
pub type TraitObligation<'tcx> = Obligation<'tcx, ty::PolyTraitPredicate<'tcx>>;
impl PredicateObligation<'tcx> {
/// Flips the polarity of the inner predicate.
///
/// Given `T: Trait` predicate it returns `T: !Trait` and given `T: !Trait` returns `T: Trait`.
pub fn flip_polarity(&self, tcx: TyCtxt<'tcx>) -> Option<PredicateObligation<'tcx>> {
Some(PredicateObligation {
cause: self.cause.clone(),