[−][src]Struct rustc_span::hygiene::HygieneData

pub struct HygieneData {
    expn_data: Vec<Option<ExpnData>>,
    syntax_context_data: Vec<SyntaxContextData>,
    syntax_context_map: FxHashMap<(SyntaxContext, ExpnId, Transparency), SyntaxContext>,
}

Fields

expn_data: Vec<Option<ExpnData>>

Each expansion should have an associated expansion data, but sometimes there's a delay between creation of an expansion ID and obtaining its data (e.g. macros are collected first and then resolved later), so we use an Option here.

syntax_context_data: Vec<SyntaxContextData>syntax_context_map: FxHashMap<(SyntaxContext, ExpnId, Transparency), SyntaxContext>

Implementations

impl HygieneData[src]

pub(crate) fn new(edition: Edition) -> Self[src]

pub fn with<T, F: FnOnce(&mut HygieneData) -> T>(f: F) -> T[src]

pub(in hygiene) fn fresh_expn(
    &mut self,
    expn_data: Option<ExpnData>
) -> ExpnId
[src]

pub(in hygiene) fn expn_data(
    &self,
    expn_id: ExpnId
) -> &ExpnData
[src]

pub(in hygiene) fn is_descendant_of(
    &self,
    expn_id: ExpnId,
    ancestor: ExpnId
) -> bool
[src]

pub(in hygiene) fn normalize_to_macros_2_0(
    &self,
    ctxt: SyntaxContext
) -> SyntaxContext
[src]

pub(in hygiene) fn normalize_to_macro_rules(
    &self,
    ctxt: SyntaxContext
) -> SyntaxContext
[src]

pub(in hygiene) fn outer_expn(
    &self,
    ctxt: SyntaxContext
) -> ExpnId
[src]

pub(in hygiene) fn outer_mark(
    &self,
    ctxt: SyntaxContext
) -> (ExpnId, Transparency)
[src]

pub(in hygiene) fn parent_ctxt(
    &self,
    ctxt: SyntaxContext
) -> SyntaxContext
[src]

pub(in hygiene) fn remove_mark(
    &self,
    ctxt: &mut SyntaxContext
) -> (ExpnId, Transparency)
[src]

pub(in hygiene) fn marks(
    &self,
    ctxt: SyntaxContext
) -> Vec<(ExpnId, Transparency)>
[src]

pub(in hygiene) fn walk_chain(
    &self,
    span: Span,
    to: SyntaxContext
) -> Span
[src]

pub(in hygiene) fn adjust(
    &self,
    ctxt: &mut SyntaxContext,
    expn_id: ExpnId
) -> Option<ExpnId>
[src]

pub(in hygiene) fn apply_mark(
    &mut self,
    ctxt: SyntaxContext,
    expn_id: ExpnId,
    transparency: Transparency
) -> SyntaxContext
[src]

pub(in hygiene) fn apply_mark_internal(
    &mut self,
    ctxt: SyntaxContext,
    expn_id: ExpnId,
    transparency: Transparency
) -> SyntaxContext
[src]

Trait Implementations

impl Debug for HygieneData[src]

Auto Trait Implementations

impl !RefUnwindSafe for HygieneData

impl !Send for HygieneData

impl !Sync for HygieneData

impl Unpin for HygieneData

impl UnwindSafe for HygieneData

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<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[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.