Fix macro call site spans
This commit is contained in:
parent
8b012ed142
commit
4259fba7e6
2 changed files with 1 additions and 23 deletions
|
|
@ -602,22 +602,6 @@ impl<'a> ExtCtxt<'a> {
|
|||
}
|
||||
pub fn backtrace(&self) -> ExpnId { self.backtrace }
|
||||
|
||||
/// Original span that caused the current exapnsion to happen.
|
||||
pub fn original_span(&self) -> Span {
|
||||
let mut expn_id = self.backtrace;
|
||||
let mut call_site = None;
|
||||
loop {
|
||||
match self.codemap().with_expn_info(expn_id, |ei| ei.map(|ei| ei.call_site)) {
|
||||
None => break,
|
||||
Some(cs) => {
|
||||
call_site = Some(cs);
|
||||
expn_id = cs.expn_id;
|
||||
}
|
||||
}
|
||||
}
|
||||
call_site.expect("missing expansion backtrace")
|
||||
}
|
||||
|
||||
/// Returns span for the macro which originally caused the current expansion to happen.
|
||||
///
|
||||
/// Stops backtracing at include! boundary.
|
||||
|
|
|
|||
|
|
@ -237,14 +237,8 @@ fn expand_mac_invoc<T>(mac: ast::Mac, ident: Option<Ident>, attrs: Vec<ast::Attr
|
|||
},
|
||||
});
|
||||
|
||||
// The span that we pass to the expanders we want to
|
||||
// be the root of the call stack. That's the most
|
||||
// relevant span and it's the actual invocation of
|
||||
// the macro.
|
||||
let mac_span = fld.cx.original_span();
|
||||
|
||||
let marked_tts = mark_tts(&tts[..], mark);
|
||||
Some(expandfun.expand(fld.cx, mac_span, &marked_tts))
|
||||
Some(expandfun.expand(fld.cx, call_site, &marked_tts))
|
||||
}
|
||||
|
||||
IdentTT(ref expander, tt_span, allow_internal_unstable) => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue