Struct syntax::codemap::hygiene::ExpnInfo [−][src]
pub struct ExpnInfo {
pub call_site: Span,
pub def_site: Option<Span>,
pub format: ExpnFormat,
pub allow_internal_unstable: bool,
pub allow_internal_unsafe: bool,
pub local_inner_macros: bool,
pub edition: Edition,
}🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Extra information for tracking spans of macro and syntax sugar expansion
Fields
call_site: Span
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
The 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 ExpnInfo, with the call_site
pointing to the foo! invocation.
def_site: Option<Span>
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
The span of the macro definition itself. The macro may not have a sensible definition span (e.g. something defined completely inside libsyntax) in which case this is None. This span serves only informational purpose and is not used for resolution.
format: ExpnFormat
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
The format with which the macro was invoked.
allow_internal_unstable: bool
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Whether the macro is allowed to use #[unstable]/feature-gated features internally without forcing the whole crate to opt-in to them.
allow_internal_unsafe: bool
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Whether the macro is allowed to use unsafe internally
even if the user crate has #![forbid(unsafe_code)].
local_inner_macros: bool
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Enables the macro helper hack (ident!(...) -> $crate::ident!(...))
for a given macro.
edition: Edition
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Edition of the crate in which the macro is defined.
Trait Implementations
impl Clone for ExpnInfo[src]
impl Clone for ExpnInfofn clone(&self) -> ExpnInfo[src]
fn clone(&self) -> ExpnInfoReturns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)1.0.0[src]
fn clone_from(&mut self, source: &Self)Performs copy-assignment from source. Read more
impl Debug for ExpnInfo[src]
impl Debug for ExpnInfofn fmt(&self, f: &mut Formatter) -> Result<(), Error>[src]
fn fmt(&self, f: &mut Formatter) -> Result<(), Error>Formats the value using the given formatter. Read more
impl Decodable for ExpnInfo[src]
impl Decodable for ExpnInfofn decode<__D>(d: &mut __D) -> Result<ExpnInfo, <__D as Decoder>::Error> where
__D: Decoder, [src]
fn decode<__D>(d: &mut __D) -> Result<ExpnInfo, <__D as Decoder>::Error> where
__D: Decoder, 🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
impl Hash for ExpnInfo[src]
impl Hash for ExpnInfofn hash<__H>(&self, state: &mut __H) where
__H: Hasher, [src]
fn hash<__H>(&self, state: &mut __H) where
__H: Hasher, Feeds this value into the given [Hasher]. Read more
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher, 1.3.0[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher, Feeds a slice of this type into the given [Hasher]. Read more
impl Encodable for ExpnInfo[src]
impl Encodable for ExpnInfo