Struct rustc_ap_rustc_span::hygiene::ExpnData [−][src]
pub struct ExpnData {
pub kind: ExpnKind,
pub parent: ExpnId,
pub call_site: Span,
pub def_site: Span,
pub allow_internal_unstable: Option<Lrc<[Symbol]>>,
pub allow_internal_unsafe: bool,
pub local_inner_macros: bool,
pub edition: Edition,
pub macro_def_id: Option<DefId>,
// some fields omitted
}Expand description
A subset of properties from both macro definition and macro call available through global data. Avoid using this if you have access to the original definition or call structures.
Fields
kind: ExpnKindThe kind of this expansion - macro or compiler desugaring.
parent: ExpnIdThe expansion that produced this expansion.
call_site: SpanThe location of the actual macro invocation or syntax sugar , e.g.
let x = foo!(); or if let Some(y) = x {}
This may recursively refer to other macro invocations, e.g., if
foo!() invoked bar!() internally, and there was an
expression inside bar!; the call_site of the expression in
the expansion would point to the bar! invocation; that
call_site span would have its own ExpnData, with the call_site
pointing to the foo! invocation.
def_site: SpanThe span of the macro definition (possibly dummy). This span serves only informational purpose and is not used for resolution.
allow_internal_unstable: Option<Lrc<[Symbol]>>List of #[unstable]/feature-gated features that the macro is allowed to use
internally without forcing the whole crate to opt-in
to them.
allow_internal_unsafe: boolWhether the macro is allowed to use unsafe internally
even if the user crate has #![forbid(unsafe_code)].
local_inner_macros: boolEnables the macro helper hack (ident!(...) -> $crate::ident!(...))
for a given macro.
edition: EditionEdition of the crate in which the macro is defined.
macro_def_id: Option<DefId>The DefId of the macro being invoked,
if this ExpnData corresponds to a macro invocation
Implementations
pub fn new(
kind: ExpnKind,
parent: ExpnId,
call_site: Span,
def_site: Span,
allow_internal_unstable: Option<Lrc<[Symbol]>>,
allow_internal_unsafe: bool,
local_inner_macros: bool,
edition: Edition,
macro_def_id: Option<DefId>
) -> ExpnData[src]Constructs expansion data with default properties.
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for ExpnDataimpl UnwindSafe for ExpnDataBlanket Implementations
Mutably borrows from an owned value. Read more
Instruments this type with the provided Span, returning an
Instrumented wrapper. Read more
type Output = T
type Output = TShould always be Self
pub fn vzip(self) -> V