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
sourceimpl<'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]ⓘNotable traits for &[u8]impl Read for &[u8]impl Write for &mut [u8]
sourceimpl<'hir> Debug for TypeBinding<'hir>
impl<'hir> Debug for TypeBinding<'hir>
sourceimpl<'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
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
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