Struct syntax_pos::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 edition: Edition,
}

Extra information for tracking spans of macro and syntax sugar expansion

Fields

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.

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.

The format with which the macro was invoked.

Whether the macro is allowed to use #[unstable]/feature-gated features internally without forcing the whole crate to opt-in to them.

Whether the macro is allowed to use unsafe internally even if the user crate has #![forbid(unsafe_code)].

Edition of the crate in which the macro is defined.

Trait Implementations

impl Clone for ExpnInfo
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl Hash for ExpnInfo
[src]

Feeds this value into the given [Hasher]. Read more

Feeds a slice of this type into the given [Hasher]. Read more

impl Debug for ExpnInfo
[src]

Formats the value using the given formatter. Read more

impl Encodable for ExpnInfo
[src]

impl Decodable for ExpnInfo
[src]

Auto Trait Implementations

impl !Send for ExpnInfo

impl !Sync for ExpnInfo