pub trait Predicate<I>:
    Copy
    + Debug
    + Hash
    + Eq
    + TypeSuperVisitable<I>
    + TypeSuperFoldable<I>
    + Flags
    + UpcastFrom<I, PredicateKind<I>>
    + UpcastFrom<I, Binder<I, PredicateKind<I>>>
    + UpcastFrom<I, ClauseKind<I>>
    + UpcastFrom<I, Binder<I, ClauseKind<I>>>
    + UpcastFrom<I, <I as Interner>::Clause>
    + UpcastFrom<I, NormalizesTo<I>>
    + UpcastFrom<I, TraitRef<I>>
    + UpcastFrom<I, Binder<I, TraitRef<I>>>
    + UpcastFrom<I, TraitPredicate<I>>
    + UpcastFrom<I, OutlivesPredicate<I, <I as Interner>::Ty>>
    + UpcastFrom<I, OutlivesPredicate<I, <I as Interner>::Region>>
    + IntoKind<Kind = Binder<I, PredicateKind<I>>>
    + Elaboratable<I>
where I: Interner<Predicate = Self>,
{ // Required methods fn as_clause(self) -> Option<<I as Interner>::Clause>; fn is_coinductive(self, interner: I) -> bool; fn allow_normalization(self) -> bool; }

Required Methods§

source

fn as_clause(self) -> Option<<I as Interner>::Clause>

source

fn is_coinductive(self, interner: I) -> bool

source

fn allow_normalization(self) -> bool

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<'tcx> Predicate<TyCtxt<'tcx>> for Predicate<'tcx>

source§

fn as_clause(self) -> Option<Clause<'tcx>>

source§

fn is_coinductive(self, interner: TyCtxt<'tcx>) -> bool

source§

fn allow_normalization(self) -> bool

Implementors§