pub enum UnifyResult {
Ok,
TypeMismatch {
expected: InferType,
found: InferType,
},
IntLiteralNonInteger {
found: Type,
},
OccursCheck {
var: TypeVarId,
ty: InferType,
},
NotSigned {
ty: Type,
},
NotInteger {
ty: Type,
},
NotUnsigned {
ty: Type,
},
NotNumeric {
ty: Type,
},
ArrayLengthMismatch {
expected: u64,
found: u64,
},
}Expand description
Result of unifying two types.
Variants§
Ok
Unification succeeded.
TypeMismatch
Types are incompatible.
IntLiteralNonInteger
Integer literal cannot unify with non-integer type.
OccursCheck
Occurs check failed (would create infinite type).
NotSigned
Type must be signed but is unsigned.
NotInteger
Type must be an integer but is not.
NotUnsigned
Type must be unsigned but is signed.
NotNumeric
Type must be numeric (integer or float) but is not.
ArrayLengthMismatch
Array lengths don’t match.
Implementations§
Trait Implementations§
Source§impl Clone for UnifyResult
impl Clone for UnifyResult
Source§fn clone(&self) -> UnifyResult
fn clone(&self) -> UnifyResult
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 UnifyResult
impl Debug for UnifyResult
Source§impl PartialEq for UnifyResult
impl PartialEq for UnifyResult
impl Eq for UnifyResult
impl StructuralPartialEq for UnifyResult
Auto Trait Implementations§
impl Freeze for UnifyResult
impl RefUnwindSafe for UnifyResult
impl Send for UnifyResult
impl Sync for UnifyResult
impl Unpin for UnifyResult
impl UnwindSafe for UnifyResult
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,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<'src, T> IntoMaybe<'src, T> for Twhere
T: 'src,
impl<'src, T> IntoMaybe<'src, T> for Twhere
T: 'src,
§impl<'p, T> Seq<'p, T> for Twhere
T: Clone,
impl<'p, T> Seq<'p, T> for Twhere
T: Clone,
§type Iter<'a> = Once<&'a T>
where
T: 'a
type Iter<'a> = Once<&'a T> where T: 'a
An iterator over the items within this container, by reference.
§fn contains(&self, val: &T) -> boolwhere
T: PartialEq,
fn contains(&self, val: &T) -> boolwhere
T: PartialEq,
Check whether an item is contained within this sequence.
§fn to_maybe_ref<'b>(item: <T as Seq<'p, T>>::Item<'b>) -> Maybe<T, &'p T>where
'p: 'b,
fn to_maybe_ref<'b>(item: <T as Seq<'p, T>>::Item<'b>) -> Maybe<T, &'p T>where
'p: 'b,
Convert an item of the sequence into a [
MaybeRef].