Struct rustc_hir::TypeBinding
source · pub struct TypeBinding<'hir> {
pub hir_id: HirId,
pub ident: Ident,
pub gen_args: &'hir GenericArgs<'hir>,
pub kind: TypeBindingKind<'hir>,
pub span: Span,
}
Expand description
Bind a type to an associated type (i.e., A = Foo
).
Bindings like A: Debug
are represented as a special type A = $::Debug
that is understood by the astconv code.
FIXME(alexreg): why have a separate type for the binding case,
wouldn’t it be better to make the ty
field an enum like the
following?
ⓘ
enum TypeBindingKind {
Equals(...),
Binding(...),
}
Fields§
§hir_id: HirId
§ident: Ident
§gen_args: &'hir GenericArgs<'hir>
§kind: TypeBindingKind<'hir>
§span: Span
Implementations§
Trait Implementations§
source§impl<'tcx> ArenaAllocatable<'tcx, IsNotCopy> for TypeBinding<'tcx>
impl<'tcx> ArenaAllocatable<'tcx, IsNotCopy> for TypeBinding<'tcx>
fn allocate_on<'a>(self, arena: &'a Arena<'tcx>) -> &'a mut Self
fn allocate_from_iter<'a>(
arena: &'a Arena<'tcx>,
iter: impl IntoIterator<Item = Self>
) -> &'a mut [Self] ⓘ
source§impl<'hir> Debug for TypeBinding<'hir>
impl<'hir> Debug for TypeBinding<'hir>
source§impl<'hir, __CTX> HashStable<__CTX> for TypeBinding<'hir>where
__CTX: HashStableContext,
impl<'hir, __CTX> HashStable<__CTX> for TypeBinding<'hir>where
__CTX: HashStableContext,
fn hash_stable(&self, __hcx: &mut __CTX, __hasher: &mut StableHasher)
Auto Trait Implementations§
impl<'hir> RefUnwindSafe for TypeBinding<'hir>
impl<'hir> !Send for TypeBinding<'hir>
impl<'hir> !Sync for TypeBinding<'hir>
impl<'hir> Unpin for TypeBinding<'hir>
impl<'hir> UnwindSafe for TypeBinding<'hir>
Blanket Implementations§
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 64 bytes