Enum rustc_middle::infer::canonical::CanonicalTyVarKind [−][src]
pub enum CanonicalTyVarKind {
General(UniverseIndex),
Int,
Float,
}Expand description
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)Expand description
General type variable ?T that can be unified with arbitrary types.
Expand description
Integral type variable ?I (that can only be unified with integral types).
Expand description
Floating-point type variable ?F (that can only be unified with float types).
Trait Implementations
impl Clone for CanonicalTyVarKind[src]
impl Clone for CanonicalTyVarKind[src]fn clone(&self) -> CanonicalTyVarKind[src]
fn clone(&self) -> CanonicalTyVarKind[src]Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)1.0.0[src]
fn clone_from(&mut self, source: &Self)1.0.0[src]Performs copy-assignment from source. Read more
impl Debug for CanonicalTyVarKind[src]
impl Debug for CanonicalTyVarKind[src]impl<'tcx, __D: TyDecoder<'tcx>> Decodable<__D> for CanonicalTyVarKind[src]
impl<'tcx, __D: TyDecoder<'tcx>> Decodable<__D> for CanonicalTyVarKind[src]impl<'tcx, __E: TyEncoder<'tcx>> Encodable<__E> for CanonicalTyVarKind[src]
impl<'tcx, __E: TyEncoder<'tcx>> Encodable<__E> for CanonicalTyVarKind[src]impl Hash for CanonicalTyVarKind[src]
impl Hash for CanonicalTyVarKind[src]impl<'__ctx> HashStable<StableHashingContext<'__ctx>> for CanonicalTyVarKind[src]
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]
impl PartialEq<CanonicalTyVarKind> for CanonicalTyVarKind[src]fn eq(&self, other: &CanonicalTyVarKind) -> bool[src]
fn eq(&self, other: &CanonicalTyVarKind) -> bool[src]This method tests for self and other values to be equal, and is used
by ==. Read more
fn ne(&self, other: &CanonicalTyVarKind) -> bool[src]
fn ne(&self, other: &CanonicalTyVarKind) -> bool[src]This method tests for !=.
impl Copy for CanonicalTyVarKind[src]
impl Eq for CanonicalTyVarKind[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<'tcx, T> ArenaAllocatable<'tcx, ()> for T where
T: Copy, [src]
impl<'tcx, T> ArenaAllocatable<'tcx, ()> for T where
T: Copy, [src]pub fn allocate_on(Self, &'a Arena<'tcx>) -> &'a mut T[src]
pub 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> BorrowMut<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]pub fn borrow_mut(&mut self) -> &mut T[src]
pub fn borrow_mut(&mut self) -> &mut T[src]Mutably borrows from an owned value. Read more
impl<T> MaybeResult<T> for T[src]
impl<T> MaybeResult<T> for T[src]impl<T> ToOwned for T where
T: Clone, [src]
impl<T> ToOwned for T where
T: Clone, [src]type Owned = T
type Owned = TThe resulting type after obtaining ownership.
pub fn to_owned(&self) -> T[src]
pub fn to_owned(&self) -> T[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)[src]
pub fn clone_into(&self, target: &mut T)[src]🔬 This is a nightly-only experimental API. (toowned_clone_into)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<T> WithConstness for T[src]
impl<T> WithConstness for T[src]fn with_constness(self, constness: Constness) -> ConstnessAnd<Self>[src]
fn with_const(self) -> ConstnessAnd<Self>[src]
fn without_const(self) -> ConstnessAnd<Self>[src]
impl<'a, T> Captures<'a> for T where
T: ?Sized, [src]
T: ?Sized,