[−][src]Enum rustc_middle::infer::canonical::CanonicalTyVarKind
Rust actually has more than one category of type variables; notably, the type variables we create for literals (e.g., 22 or 22.) can only be instantiated with integral/float types (e.g., usize or f32). In order to faithfully reproduce a type, we need to know what set of types a given type variable can be unified with.
Variants
General(UniverseIndex)General type variable ?T that can be unified with arbitrary types.
Integral type variable ?I (that can only be unified with integral types).
Floating-point type variable ?F (that can only be unified with float types).
Trait Implementations
impl Clone for CanonicalTyVarKind[src]
fn clone(&self) -> CanonicalTyVarKind[src]
fn clone_from(&mut self, source: &Self)1.0.0[src]
impl Copy for CanonicalTyVarKind[src]
impl Debug for CanonicalTyVarKind[src]
impl<'tcx, __D: TyDecoder<'tcx>> Decodable<__D> for CanonicalTyVarKind[src]
impl<'tcx, __E: TyEncoder<'tcx>> Encodable<__E> for CanonicalTyVarKind[src]
impl Eq for CanonicalTyVarKind[src]
impl Hash for CanonicalTyVarKind[src]
fn hash<__H: Hasher>(&self, state: &mut __H)[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher, 1.3.0[src]
H: Hasher,
impl<'__ctx> HashStable<StableHashingContext<'__ctx>> for CanonicalTyVarKind[src]
fn hash_stable(
&self,
__hcx: &mut StableHashingContext<'__ctx>,
__hasher: &mut StableHasher
)[src]
&self,
__hcx: &mut StableHashingContext<'__ctx>,
__hasher: &mut StableHasher
)
impl PartialEq<CanonicalTyVarKind> for CanonicalTyVarKind[src]
fn eq(&self, other: &CanonicalTyVarKind) -> bool[src]
fn ne(&self, other: &CanonicalTyVarKind) -> bool[src]
impl StructuralEq for CanonicalTyVarKind[src]
impl StructuralPartialEq for CanonicalTyVarKind[src]
Auto Trait Implementations
impl RefUnwindSafe for CanonicalTyVarKind
impl Send for CanonicalTyVarKind
impl Sync for CanonicalTyVarKind
impl Unpin for CanonicalTyVarKind
impl UnwindSafe for CanonicalTyVarKind
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<'tcx, T> ArenaAllocatable<'tcx, ()> for T where
T: Copy, [src]
T: Copy,
fn allocate_on(Self, &'a Arena<'tcx>) -> &'a mut T[src]
fn allocate_from_iter(
&'a Arena<'tcx>,
impl IntoIterator<Item = T>
) -> &'a mut [T][src]
&'a Arena<'tcx>,
impl IntoIterator<Item = T>
) -> &'a mut [T]
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<'a, T> Captures<'a> for T where
T: ?Sized, [src]
T: ?Sized,
impl<Ctxt, T> DepNodeParams<Ctxt> for T where
Ctxt: DepContext,
T: HashStable<<Ctxt as DepContext>::StableHashingContext> + Debug, [src]
Ctxt: DepContext,
T: HashStable<<Ctxt as DepContext>::StableHashingContext> + Debug,
default fn can_reconstruct_query_key() -> bool[src]
default fn to_fingerprint(&self, tcx: Ctxt) -> Fingerprint[src]
default fn to_debug_str(&self, Ctxt) -> String[src]
default fn recover(Ctxt, &DepNode<<Ctxt as DepContext>::DepKind>) -> Option<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> MaybeResult<T> for T[src]
type Error = !
fn from(Result<T, <T as MaybeResult<T>>::Error>) -> T[src]
fn to_result(self) -> Result<T, <T as MaybeResult<T>>::Error>[src]
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>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.