Enum rustc_middle::ty::InferTy [−][src]
A placeholder for a type that hasn’t been inferred yet.
E.g., if we have an empty array ([]), then we create a fresh
type variable for the element type since we won’t know until it’s
used what the element type is supposed to be.
Variants
TyVar(TyVid)A type variable.
IntVar(IntVid)An integral type variable ({integer}).
These are created when the compiler sees an integer literal like
1 that could be several different types (u8, i32, u32, etc.).
We don’t know until it’s used what type it’s supposed to be, so
we create a fresh type variable.
FloatVar(FloatVid)A floating-point type variable ({float}).
These are created when the compiler sees an float literal like
1.0 that could be either an f32 or an f64.
We don’t know until it’s used what type it’s supposed to be, so
we create a fresh type variable.
FreshTy(u32)A FreshTy is one that is generated as a replacement
for an unbound type variable. This is convenient for caching etc. See
rustc_infer::infer::freshen for more details.
Compare with TyVar.
FreshIntTy(u32)FreshFloatTy(u32)Trait Implementations
impl<'tcx> Lift<'tcx> for InferTy[src]
type Lifted = Self
fn lift_to_tcx(self, _: TyCtxt<'tcx>) -> Option<Self>[src]
impl<'tcx> TypeFoldable<'tcx> for InferTy[src]
fn super_fold_with<F: TypeFolder<'tcx>>(self, _: &mut F) -> InferTy[src]
fn super_visit_with<F: TypeVisitor<'tcx>>(
&self,
_: &mut F
) -> ControlFlow<F::BreakTy>[src]
&self,
_: &mut F
) -> ControlFlow<F::BreakTy>
fn fold_with<F: TypeFolder<'tcx>>(self, folder: &mut F) -> Self[src]
fn visit_with<V: TypeVisitor<'tcx>>(
&self,
visitor: &mut V
) -> ControlFlow<V::BreakTy>[src]
&self,
visitor: &mut V
) -> ControlFlow<V::BreakTy>
fn has_vars_bound_at_or_above(&self, binder: DebruijnIndex) -> bool[src]
fn has_vars_bound_above(&self, binder: DebruijnIndex) -> bool[src]
fn has_escaping_bound_vars(&self) -> bool[src]
fn has_type_flags(&self, flags: TypeFlags) -> bool[src]
fn has_projections(&self) -> bool[src]
fn has_opaque_types(&self) -> bool[src]
fn references_error(&self) -> bool[src]
fn has_param_types_or_consts(&self) -> bool[src]
fn has_infer_regions(&self) -> bool[src]
fn has_infer_types(&self) -> bool[src]
fn has_infer_types_or_consts(&self) -> bool[src]
fn needs_infer(&self) -> bool[src]
fn has_placeholders(&self) -> bool[src]
fn needs_subst(&self) -> bool[src]
fn has_free_regions(&self) -> bool[src]
fn has_erased_regions(&self) -> bool[src]
fn has_erasable_regions(&self) -> bool[src]
fn is_global(&self) -> bool[src]
fn has_late_bound_regions(&self) -> bool[src]
fn still_further_specializable(&self) -> bool[src]
Auto Trait Implementations
impl RefUnwindSafe for InferTy
impl Send for InferTy
impl Sync for InferTy
impl Unpin for InferTy
impl UnwindSafe for InferTy
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,
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> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub 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
T: HashStable<<Ctxt as DepContext>::StableHashingContext> + Debug,
Ctxt: DepContext, [src]
T: HashStable<<Ctxt as DepContext>::StableHashingContext> + Debug,
Ctxt: DepContext,
pub default fn can_reconstruct_query_key() -> bool[src]
pub default fn to_fingerprint(&self, tcx: Ctxt) -> Fingerprint[src]
pub default fn to_debug_str(&self, Ctxt) -> String[src]
pub default fn recover(
Ctxt,
&DepNode<<Ctxt as DepContext>::DepKind>
) -> Option<T>[src]
Ctxt,
&DepNode<<Ctxt as DepContext>::DepKind>
) -> Option<T>
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 = !
pub fn from(Result<T, <T as MaybeResult<T>>::Error>) -> T[src]
pub fn to_result(self) -> Result<T, <T as MaybeResult<T>>::Error>[src]
impl<'tcx, T> Subst<'tcx> for T where
T: TypeFoldable<'tcx>, [src]
T: TypeFoldable<'tcx>,
pub fn subst_spanned(Self, TyCtxt<'tcx>, &[GenericArg<'tcx>], Option<Span>) -> T[src]
fn subst(self, tcx: TyCtxt<'tcx>, substs: &[GenericArg<'tcx>]) -> Self[src]
impl<T> ToOwned for T where
T: Clone, [src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T[src]
pub fn clone_into(&self, target: &mut T)[src]
impl<T> ToString for T where
T: Display + ?Sized, [src]
T: Display + ?Sized,
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.
pub 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.