pub type CanonicalVarKind<'tcx> = CanonicalVarKind<TyCtxt<'tcx>>;Aliased Type§
pub enum CanonicalVarKind<'tcx> {
Ty {
ui: UniverseIndex,
sub_root: BoundVar,
},
Int,
Float,
PlaceholderTy(Placeholder<BoundTy>),
Region(UniverseIndex),
PlaceholderRegion(Placeholder<BoundRegion>),
Const(UniverseIndex),
PlaceholderConst(Placeholder<BoundConst>),
}Variants§
Ty
General type variable ?T that can be unified with arbitrary types.
We also store the index of the first type variable which is sub-unified
with this one. If there is no inference variable related to this one,
its sub_root just points to itself.
Int
Integral type variable ?I (that can only be unified with integral types).
Float
Floating-point type variable ?F (that can only be unified with float types).
PlaceholderTy(Placeholder<BoundTy>)
A “placeholder” that represents “any type”.
Region(UniverseIndex)
Region variable '?R.
PlaceholderRegion(Placeholder<BoundRegion>)
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)
Some kind of const inference variable.
PlaceholderConst(Placeholder<BoundConst>)
A “placeholder” that represents “any const”.
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.