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: SyntaxExtensionKindExpand description
A syntax extension kind.
span: SpanExpand description
Span of the macro definition.
allow_internal_unstable: Option<Lrc<[Symbol]>>Expand description
List of unstable features that are treated as stable inside this macro.
allow_internal_unsafe: boolExpand description
Suppresses the unsafe_code lint for code produced by this macro.
local_inner_macros: boolExpand description
Enables the macro helper hack (ident!(...) -> $crate::ident!(...)) for this macro.
stability: Option<Stability>Expand description
The macro’s stability info.
deprecation: Option<Deprecation>Expand description
The macro’s deprecation info.
helper_attrs: Vec<Symbol>Expand description
Names of helper attributes registered by this macro.
edition: EditionExpand description
Edition of the crate in which this macro is defined.
builtin_name: Option<Symbol>Expand description
Built-in macros have a couple of special properties like availability
in #[no_implicit_prelude] modules, so we have to keep this flag.
Implementations
impl SyntaxExtension[src]
impl SyntaxExtension[src]pub fn macro_kind(&self) -> MacroKind[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]
pub fn default(kind: SyntaxExtensionKind, edition: Edition) -> SyntaxExtension[src]Constructs a syntax extension with default properties.
pub fn new(
sess: &Session,
kind: SyntaxExtensionKind,
span: Span,
helper_attrs: Vec<Symbol>,
edition: Edition,
name: Symbol,
attrs: &[Attribute]
) -> SyntaxExtension[src]
pub fn new(
sess: &Session,
kind: SyntaxExtensionKind,
span: Span,
helper_attrs: Vec<Symbol>,
edition: Edition,
name: Symbol,
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,
macro_def_id: Option<DefId>
) -> ExpnData[src]
&self,
parent: ExpnId,
call_site: Span,
descr: Symbol,
macro_def_id: Option<DefId>
) -> ExpnData