pub enum UnifyError {
Mismatch {
expected: MonoType,
found: MonoType,
},
OccursCheck,
MissingLabel {
label: String,
ty: MonoType,
},
ArityMismatch {
expected: usize,
found: usize,
},
OptionalMismatch {
ty: MonoType,
},
CmdLabelMismatch {
expected: String,
found: String,
},
}Variants§
Mismatch
OccursCheck
MissingLabel
ArityMismatch
OptionalMismatch
CmdLabelMismatch
SATySFi 0.1’s closed command optional-label map is INVARIANT under
unification (upstream subtype_label_map_with_equal_domain,
signatureSubtyping.ml:482,511-516): a supplied/declared label set
mismatch — either side has a label the other doesn’t — is always
rejected, never widened/narrowed. expected/found are each a
formatted ?(l1 : τ1, …) rendering of the two sides’ label sets (or
?() for an empty one) for a readable message.
Trait Implementations§
Source§impl Debug for UnifyError
impl Debug for UnifyError
Source§impl Display for UnifyError
impl Display for UnifyError
Source§impl Error for UnifyError
impl Error for UnifyError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Auto Trait Implementations§
impl !RefUnwindSafe for UnifyError
impl !Send for UnifyError
impl !Sync for UnifyError
impl !UnwindSafe for UnifyError
impl Freeze for UnifyError
impl Unpin for UnifyError
impl UnsafeUnpin for UnifyError
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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