pub struct UnificationTrace {
pub failing: TypeVarID,
pub inside: Option<TypeVarID>,
}Expand description
A trace of a unification error. The failing field indicates which exact type failed to unify,
while the inside is the “top level” type which failed to unify if it’s not the same as
failing.
For example, if unifying int<7> with int<8>, this would be failing: 8, inside: int<8>
while if unifying int<7> with bool, inside would be None
Fields§
§failing: TypeVarID§inside: Option<TypeVarID>Implementations§
Trait Implementations§
Source§impl Clone for UnificationTrace
impl Clone for UnificationTrace
Source§fn clone(&self) -> UnificationTrace
fn clone(&self) -> UnificationTrace
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for UnificationTrace
impl Debug for UnificationTrace
Source§impl PartialEq for UnificationTrace
impl PartialEq for UnificationTrace
impl StructuralPartialEq for UnificationTrace
Auto Trait Implementations§
impl Freeze for UnificationTrace
impl RefUnwindSafe for UnificationTrace
impl Send for UnificationTrace
impl Sync for UnificationTrace
impl Unpin for UnificationTrace
impl UnwindSafe for UnificationTrace
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> 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