pub enum ClauseReplacement {
Var(ClauseDbVar),
Proof(RegionBinder<TraitRefKind>),
}Expand description
A replacement for a clause variable, expressed as seen from the outside of the value being visited.
Variants§
Var(ClauseDbVar)
Replace this clause variable with another, which must be for the same predicate. This is
distinct from Proof to avoid infinite recursion when calling apply.
Proof(RegionBinder<TraitRefKind>)
Replace this clause variable with the given proof kind. The proof kind will be instantiated with the clause regions then used as replacement.
Trait Implementations§
Source§impl From<DeBruijnVar<TraitClauseId>> for ClauseReplacement
impl From<DeBruijnVar<TraitClauseId>> for ClauseReplacement
Source§fn from(var: ClauseDbVar) -> Self
fn from(var: ClauseDbVar) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for ClauseReplacement
impl RefUnwindSafe for ClauseReplacement
impl Send for ClauseReplacement
impl Sync for ClauseReplacement
impl Unpin for ClauseReplacement
impl UnsafeUnpin for ClauseReplacement
impl UnwindSafe for ClauseReplacement
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more