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<'hir> Clone for TypeBinding<'hir>
impl<'hir> Clone for TypeBinding<'hir>
source§fn clone(&self) -> TypeBinding<'hir>
fn clone(&self) -> TypeBinding<'hir>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§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)
impl<'hir> Copy for TypeBinding<'hir>
Auto Trait Implementations§
impl<'hir> DynSend for TypeBinding<'hir>
impl<'hir> DynSync for TypeBinding<'hir>
impl<'hir> Freeze for TypeBinding<'hir>
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§
source§impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
fn allocate_on<'a>(self, arena: &'a Arena<'tcx>) -> &'a mut T
fn allocate_from_iter<'a>( arena: &'a Arena<'tcx>, iter: impl IntoIterator<Item = T> ) -> &'a mut [T]
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
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
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