Type Alias rustc_ast::ast::AssocItem

source ·
pub type AssocItem = Item<AssocItemKind>;
Expand description

Represents associated items. These include items in impl and trait definitions.

Aliased Type§

struct AssocItem {
    pub attrs: ThinVec<Attribute>,
    pub id: NodeId,
    pub span: Span,
    pub vis: Visibility,
    pub ident: Ident,
    pub kind: AssocItemKind,
    pub tokens: Option<LazyAttrTokenStream>,
}

Fields§

§attrs: ThinVec<Attribute>§id: NodeId§span: Span§vis: Visibility§ident: Ident

The name of the item. It might be a dummy name in case of anonymous items.

§kind: AssocItemKind§tokens: Option<LazyAttrTokenStream>

Original tokens this item was parsed from. This isn’t necessarily available for all items, although over time more and more items should have this be Some. Right now this is primarily used for procedural macros, notably custom attributes.

Note that the tokens here do not include the outer attributes, but will include inner attributes.

Trait Implementations§

source§

impl !AstDeref for AssocItem

§

type Target

source§

fn ast_deref(&self) -> &Self::Target

source§

fn ast_deref_mut(&mut self) -> &mut Self::Target

source§

impl HasAttrs for AssocItem

source§

const SUPPORTS_CUSTOM_INNER_ATTRS: bool = true

This is true if this HasAttrs might support ‘custom’ (proc-macro) inner attributes. Attributes like #![cfg] and #![cfg_attr] are not considered ‘custom’ attributes. Read more
source§

fn attrs(&self) -> &[Attribute]

source§

fn visit_attrs(&mut self, f: impl FnOnce(&mut AttrVec))

source§

impl HasNodeId for AssocItem

source§

fn node_id(&self) -> NodeId

source§

fn node_id_mut(&mut self) -> &mut NodeId

source§

impl HasSpan for AssocItem

source§

fn span(&self) -> Span

source§

impl HasTokens for AssocItem

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: 88 bytes