Enum rustc_infer::infer::canonical::CanonicalVarKind
source · pub enum CanonicalVarKind<I>where
I: Interner,{
Ty(CanonicalTyVarKind),
PlaceholderTy(<I as Interner>::PlaceholderTy),
Region(UniverseIndex),
PlaceholderRegion(<I as Interner>::PlaceholderRegion),
Const(UniverseIndex, <I as Interner>::Ty),
Effect,
PlaceholderConst(<I as Interner>::PlaceholderConst, <I as Interner>::Ty),
}Expand description
Describes the “kind” of the canonical variable. This is a “kind” in the type-theory sense of the term – i.e., a “meta” type system that analyzes type-like values.
Variants§
Ty(CanonicalTyVarKind)
Some kind of type inference variable.
PlaceholderTy(<I as Interner>::PlaceholderTy)
A “placeholder” that represents “any type”.
Region(UniverseIndex)
Region variable '?R.
PlaceholderRegion(<I as Interner>::PlaceholderRegion)
A “placeholder” that represents “any region”. Created when you
are solving a goal like for<'a> T: Foo<'a> to represent the
bound region 'a.
Const(UniverseIndex, <I as Interner>::Ty)
Some kind of const inference variable.
Effect
Effect variable '?E.
PlaceholderConst(<I as Interner>::PlaceholderConst, <I as Interner>::Ty)
A “placeholder” that represents “any const”.
Auto Trait Implementations§
impl<I> RefUnwindSafe for CanonicalVarKind<I>where
<I as Interner>::PlaceholderConst: RefUnwindSafe,
<I as Interner>::PlaceholderRegion: RefUnwindSafe,
<I as Interner>::PlaceholderTy: RefUnwindSafe,
<I as Interner>::Ty: RefUnwindSafe,
impl<I> Send for CanonicalVarKind<I>where
<I as Interner>::PlaceholderConst: Send,
<I as Interner>::PlaceholderRegion: Send,
<I as Interner>::PlaceholderTy: Send,
<I as Interner>::Ty: Send,
impl<I> Sync for CanonicalVarKind<I>where
<I as Interner>::PlaceholderConst: Sync,
<I as Interner>::PlaceholderRegion: Sync,
<I as Interner>::PlaceholderTy: Sync,
<I as Interner>::Ty: Sync,
impl<I> Unpin for CanonicalVarKind<I>where
<I as Interner>::PlaceholderConst: Unpin,
<I as Interner>::PlaceholderRegion: Unpin,
<I as Interner>::PlaceholderTy: Unpin,
<I as Interner>::Ty: Unpin,
impl<I> UnwindSafe for CanonicalVarKind<I>where
<I as Interner>::PlaceholderConst: UnwindSafe,
<I as Interner>::PlaceholderRegion: UnwindSafe,
<I as Interner>::PlaceholderTy: UnwindSafe,
<I as Interner>::Ty: UnwindSafe,
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
Layout§
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.