[][src]Struct chalk_ir::ConstrainedSubst

pub struct ConstrainedSubst<I: Interner> {
    pub subst: Substitution<I>,
    pub constraints: Constraints<I>,
}

Combines a substitution (subst) with a set of region constraints (constraints). This represents the result of a query; the substitution stores the values for the query's unknown variables, and the constraints represents any region constraints that must additionally be solved.

Fields

subst: Substitution<I>

The substitution that is being constrained.

NB: The is_trivial routine relies on the fact that subst is folded first.

constraints: Constraints<I>

Region constraints that constrain the substitution.

Trait Implementations

impl<I: Clone + Interner> Clone for ConstrainedSubst<I>[src]

impl<I: Debug + Interner> Debug for ConstrainedSubst<I>[src]

impl<I: Interner> Display for ConstrainedSubst<I>[src]

impl<I: Eq + Interner> Eq for ConstrainedSubst<I>[src]

impl<I: Interner> Fold<I> for ConstrainedSubst<I>[src]

type Result = ConstrainedSubst<I>

The type of value that will be produced once folding is done. Typically this is Self, unless Self contains borrowed values, in which case owned values are produced (for example, one can fold over a &T value where T: Fold, in which case you get back a T, not a &T). Read more

impl<I: Interner> HasInterner for ConstrainedSubst<I>[src]

type Interner = I

The interner associated with the type.

impl<I: Hash + Interner> Hash for ConstrainedSubst<I>[src]

impl<I: PartialEq + Interner> PartialEq<ConstrainedSubst<I>> for ConstrainedSubst<I>[src]

impl<I: Interner> StructuralEq for ConstrainedSubst<I>[src]

impl<I: Interner> StructuralPartialEq for ConstrainedSubst<I>[src]

impl<I: Interner> Visit<I> for ConstrainedSubst<I>[src]

Auto Trait Implementations

impl<I> RefUnwindSafe for ConstrainedSubst<I> where
    <I as Interner>::InternedConstraints: RefUnwindSafe,
    <I as Interner>::InternedSubstitution: RefUnwindSafe

impl<I> Send for ConstrainedSubst<I> where
    <I as Interner>::InternedConstraints: Send,
    <I as Interner>::InternedSubstitution: Send

impl<I> Sync for ConstrainedSubst<I> where
    <I as Interner>::InternedConstraints: Sync,
    <I as Interner>::InternedSubstitution: Sync

impl<I> Unpin for ConstrainedSubst<I> where
    <I as Interner>::InternedConstraints: Unpin,
    <I as Interner>::InternedSubstitution: Unpin

impl<I> UnwindSafe for ConstrainedSubst<I> where
    <I as Interner>::InternedConstraints: UnwindSafe,
    <I as Interner>::InternedSubstitution: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Cast for T[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, I> Shift<I> for T where
    I: Interner,
    T: Fold<I>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T, I> VisitExt<I> for T where
    I: Interner,
    T: Visit<I>, 
[src]