// notify the expansion info that it is unhygienic
let mark = Mark::fresh(mark);
mark.set_expn_info(expn_info);
- let span = syntax_pos::Span {
- ctxt: SyntaxContext::empty().apply_mark(mark),
- ..call_site
- };
+ let span = call_site.with_ctxt(SyntaxContext::empty().apply_mark(mark));
let stream = parse::parse_stream_from_source_str(name, src, sess, Some(span));
Ok(__internal::token_stream_wrap(stream))
})
#[unstable(feature = "proc_macro", issue = "38356")]
impl Default for Span {
fn default() -> Span {
- ::__internal::with_sess(|(_, mark)| Span(syntax_pos::Span {
- ctxt: SyntaxContext::empty().apply_mark(mark),
- ..mark.expn_info().unwrap().call_site
- }))
+ ::__internal::with_sess(|(_, mark)| {
+ let call_site = mark.expn_info().unwrap().call_site;
+ Span(call_site.with_ctxt(SyntaxContext::empty().apply_mark(mark)))
+ })
}
}
}).into();
},
TokenNode::Term(symbol) => {
- let ident = ast::Ident { name: symbol.0, ctxt: self.span.0.ctxt };
+ let ident = ast::Ident { name: symbol.0, ctxt: self.span.0.ctxt() };
let token =
if symbol.0.as_str().starts_with("'") { Lifetime(ident) } else { Ident(ident) };
return TokenTree::Token(self.span.0, token).into();