[−][src]Enum chalk_solve::Guidance
When a goal holds ambiguously (e.g., because there are multiple possible solutions), we issue a set of guidance back to type inference.
Variants
Definite(Canonical<Substitution<I>>)
The existential variables must have the given values if the goal is ever to hold, but that alone isn't enough to guarantee the goal will actually hold.
Suggested(Canonical<Substitution<I>>)
There are multiple plausible values for the existentials, but the ones here are suggested as the preferred choice heuristically. These should be used for inference fallback only.
There's no useful information to feed back to type inference
Trait Implementations
impl<I: Clone + Interner> Clone for Guidance<I>
[src]
impl<I: Debug + Interner> Debug for Guidance<I>
[src]
impl<I: Eq + Interner> Eq for Guidance<I>
[src]
impl<I: PartialEq + Interner> PartialEq<Guidance<I>> for Guidance<I>
[src]
impl<I: Interner> StructuralEq for Guidance<I>
[src]
impl<I: Interner> StructuralPartialEq for Guidance<I>
[src]
Auto Trait Implementations
impl<I> RefUnwindSafe for Guidance<I> where
<I as Interner>::InternedCanonicalVarKinds: RefUnwindSafe,
<I as Interner>::InternedSubstitution: RefUnwindSafe,
<I as Interner>::InternedCanonicalVarKinds: RefUnwindSafe,
<I as Interner>::InternedSubstitution: RefUnwindSafe,
impl<I> Send for Guidance<I> where
<I as Interner>::InternedCanonicalVarKinds: Send,
<I as Interner>::InternedSubstitution: Send,
<I as Interner>::InternedCanonicalVarKinds: Send,
<I as Interner>::InternedSubstitution: Send,
impl<I> Sync for Guidance<I> where
<I as Interner>::InternedCanonicalVarKinds: Sync,
<I as Interner>::InternedSubstitution: Sync,
<I as Interner>::InternedCanonicalVarKinds: Sync,
<I as Interner>::InternedSubstitution: Sync,
impl<I> Unpin for Guidance<I> where
<I as Interner>::InternedCanonicalVarKinds: Unpin,
<I as Interner>::InternedSubstitution: Unpin,
<I as Interner>::InternedCanonicalVarKinds: Unpin,
<I as Interner>::InternedSubstitution: Unpin,
impl<I> UnwindSafe for Guidance<I> where
<I as Interner>::InternedCanonicalVarKinds: UnwindSafe,
<I as Interner>::InternedSubstitution: UnwindSafe,
<I as Interner>::InternedCanonicalVarKinds: UnwindSafe,
<I as Interner>::InternedSubstitution: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Cast for T
[src]
fn cast<U>(self, interner: &<U as HasInterner>::Interner) -> U where
Self: CastTo<U>,
U: HasInterner,
[src]
Self: CastTo<U>,
U: HasInterner,
impl<Q, K> Equivalent<K> for Q where
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
[src]
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
fn equivalent(&self, key: &K) -> bool
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,