pub fn expansion_cause(mut self) -> Option<Span> {
        let mut last_macro = None;
        loop {
            let expn_data = self.expn_data();
            // Stop going up the backtrace once include! is encountered
            if expn_data.is_root()
                || expn_data.kind == ExpnKind::Macro(MacroKind::Bang, sym::include)
            {
                break;
            }
            self = expn_data.call_site.ctxt().outer_expn();
            last_macro = Some(expn_data.call_site);
        }
        last_macro
    }
/// Returns span for the macro which originally caused this expansion to happen.
///
/// Stops backtracing at include! boundary.
Returns span for the macro which originally caused this expansion to happen.
Stops backtracing at include. boundary.
Returns span for the macro which originally caused this expansion to happen . Stops backtracing at include . boundary .
pub fn expansion_cause(mut self) -> Option<Span> {
        let mut last_macro = None;
        loop {
            let expn_data = self.expn_data();
            // Stop going up the backtrace once include! is encountered
            if expn_data.is_root()
                || expn_data.kind == ExpnKind::Macro(MacroKind::Bang, sym::include)
            {
                break;
            }
            self = expn_data.call_site.ctxt().outer_expn();
            last_macro = Some(expn_data.call_site);
        }
        last_macro
    }
pub fn expansion_cause ( mut self ) -> Option < Span > { let mut last_macro = None ; loop { let expn_data = self . expn_data ( ) ; // Stop going up the backtrace once include! is encountered if expn_data . is_root ( ) || expn_data . kind == ExpnKind :: Macro ( MacroKind :: Bang , sym :: include ) { break ; } self = expn_data . call_site . ctxt ( ) . outer_expn ( ) ; last_macro = Some ( expn_data . call_site ) ; } last_macro }
Returns span for the macro which originally caused this expansion to happen.
Returns span for the macro which originally caused this expansion to happen .
mut self
mut self