Struct rustc_expand::base::SyntaxExtension[][src]

pub struct SyntaxExtension {
    pub kind: SyntaxExtensionKind,
    pub span: Span,
    pub allow_internal_unstable: Option<Lrc<[Symbol]>>,
    pub allow_internal_unsafe: bool,
    pub local_inner_macros: bool,
    pub stability: Option<Stability>,
    pub deprecation: Option<Deprecation>,
    pub helper_attrs: Vec<Symbol>,
    pub edition: Edition,
    pub builtin_name: Option<Symbol>,
}
Expand description

A struct representing a macro definition in “lowered” form ready for expansion.

Fields

kind: SyntaxExtensionKind

A syntax extension kind.

span: Span

Span of the macro definition.

allow_internal_unstable: Option<Lrc<[Symbol]>>

List of unstable features that are treated as stable inside this macro.

allow_internal_unsafe: bool

Suppresses the unsafe_code lint for code produced by this macro.

local_inner_macros: bool

Enables the macro helper hack (ident!(...) -> $crate::ident!(...)) for this macro.

stability: Option<Stability>

The macro’s stability info.

deprecation: Option<Deprecation>

The macro’s deprecation info.

helper_attrs: Vec<Symbol>

Names of helper attributes registered by this macro.

edition: Edition

Edition of the crate in which this macro is defined.

builtin_name: Option<Symbol>

Built-in macros have a couple of special properties like availability in #[no_implicit_prelude] modules, so we have to keep this flag.

Implementations

Returns which kind of macro calls this syntax extension.

Constructs a syntax extension with default properties.

Constructs a syntax extension with the given properties and other properties converted from attributes.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

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