[−][src]Enum rusttyc::TcErr
Represents an error during the type check procedure.
Variants
Two keys were attempted to be equated and their underlying types turned out to be incompatible. Contains the two keys and the error that occurred when attempting to meet their abstract types.
An explicit type bound imposed on a key turned out to be incompatible with the type inferred based on remaining information on the key. Contains the key and the error that occurred when meeting the explicit bound with the inferred type.
DoubleVariantAssignment(TcKey, AbsTy::VariantTag, AbsTy::VariantTag)
A type can ever only have at most one specific variant. This error indicates that the constraints imply that the type needs to possess two variants at once. Contains the key and both variants. These can be inferred or explicitly assigned variants.
ChildAccessOutOfBound(TcKey, AbsTy::VariantTag, usize)
This error occurs when a constraint accesses the n
th child of a type and its variant turns out to only
have k < n
sub-types.
Contains the affected key, its inferred or explicitly assigned variant, and the index of the child that
was attempted to be accessed.
Trait Implementations
impl<AbsTy: Clone + Abstract> Clone for TcErr<AbsTy> where
AbsTy::Err: Clone,
AbsTy::Err: Clone,
AbsTy::VariantTag: Clone,
AbsTy::VariantTag: Clone,
AbsTy::VariantTag: Clone,
[src]
AbsTy::Err: Clone,
AbsTy::Err: Clone,
AbsTy::VariantTag: Clone,
AbsTy::VariantTag: Clone,
AbsTy::VariantTag: Clone,
impl<AbsTy: Debug + Abstract> Debug for TcErr<AbsTy> where
AbsTy::Err: Debug,
AbsTy::Err: Debug,
AbsTy::VariantTag: Debug,
AbsTy::VariantTag: Debug,
AbsTy::VariantTag: Debug,
[src]
AbsTy::Err: Debug,
AbsTy::Err: Debug,
AbsTy::VariantTag: Debug,
AbsTy::VariantTag: Debug,
AbsTy::VariantTag: Debug,
Auto Trait Implementations
impl<AbsTy> RefUnwindSafe for TcErr<AbsTy> where
<AbsTy as Abstract>::Err: RefUnwindSafe,
<AbsTy as Abstract>::VariantTag: RefUnwindSafe,
<AbsTy as Abstract>::Err: RefUnwindSafe,
<AbsTy as Abstract>::VariantTag: RefUnwindSafe,
impl<AbsTy> Send for TcErr<AbsTy> where
<AbsTy as Abstract>::Err: Send,
<AbsTy as Abstract>::VariantTag: Send,
<AbsTy as Abstract>::Err: Send,
<AbsTy as Abstract>::VariantTag: Send,
impl<AbsTy> Sync for TcErr<AbsTy> where
<AbsTy as Abstract>::Err: Sync,
<AbsTy as Abstract>::VariantTag: Sync,
<AbsTy as Abstract>::Err: Sync,
<AbsTy as Abstract>::VariantTag: Sync,
impl<AbsTy> Unpin for TcErr<AbsTy> where
<AbsTy as Abstract>::Err: Unpin,
<AbsTy as Abstract>::VariantTag: Unpin,
<AbsTy as Abstract>::Err: Unpin,
<AbsTy as Abstract>::VariantTag: Unpin,
impl<AbsTy> UnwindSafe for TcErr<AbsTy> where
<AbsTy as Abstract>::Err: UnwindSafe,
<AbsTy as Abstract>::VariantTag: UnwindSafe,
<AbsTy as Abstract>::Err: UnwindSafe,
<AbsTy as Abstract>::VariantTag: 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> 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>,