[−][src]Enum chalk_solve::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,
pub 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,
pub fn equivalent(&self, key: &K) -> bool
[src]
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
fn instrument(self, span: Span) -> Instrumented<Self>
[src]
fn in_current_span(self) -> Instrumented<Self>
[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.
pub fn to_owned(&self) -> T
[src]
pub 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.
pub 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>,