[][src]Struct rustc_ap_rustc_expand::base::SyntaxExtension

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 is_builtin: bool,
    pub is_derive_copy: bool,
}

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]>>

Whitelist 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.

is_builtin: bool

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

is_derive_copy: bool

We have to identify macros providing a Copy impl early for compatibility reasons.

Methods

impl SyntaxExtension[src]

pub fn macro_kind(&self) -> MacroKind[src]

Returns which kind of macro calls this syntax extension.

pub fn default(kind: SyntaxExtensionKind, edition: Edition) -> SyntaxExtension[src]

Constructs a syntax extension with default properties.

pub fn new(
    sess: &ParseSess,
    kind: SyntaxExtensionKind,
    span: Span,
    helper_attrs: Vec<Symbol>,
    edition: Edition,
    name: Name,
    attrs: &[Attribute]
) -> SyntaxExtension
[src]

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

pub fn dummy_bang(edition: Edition) -> SyntaxExtension[src]

pub fn dummy_derive(edition: Edition) -> SyntaxExtension[src]

pub fn non_macro_attr(mark_used: bool, edition: Edition) -> SyntaxExtension[src]

pub fn expn_data(
    &self,
    parent: ExpnId,
    call_site: Span,
    descr: Symbol
) -> ExpnData
[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<'a, T> Captures<'a> for T where
    T: ?Sized
[src]

impl<T> Erased for T[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> MaybeResult<T> for T[src]

type Error = !

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<E> SpecializationError for E[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.