// passed to this function.
for (i, e) in self.args.into_iter().enumerate() {
let name = self.ecx.ident_of(&format!("__arg{}", i));
- let span = Span {
- ctxt: e.span.ctxt.apply_mark(self.ecx.current_expansion.mark),
- ..DUMMY_SP
- };
+ let span =
+ DUMMY_SP.with_ctxt(e.span.ctxt().apply_mark(self.ecx.current_expansion.mark));
pats.push(self.ecx.pat_ident(span, name));
for ref arg_ty in self.arg_unique_types[i].iter() {
locals.push(Context::format_arg(self.ecx, self.macsp, e.span, arg_ty, name));
ty: &ArgumentType,
arg: ast::Ident)
-> P<ast::Expr> {
- sp.ctxt = sp.ctxt.apply_mark(ecx.current_expansion.mark);
+ sp = sp.with_ctxt(sp.ctxt().apply_mark(ecx.current_expansion.mark));
let arg = ecx.expr_ident(sp, arg);
let trait_ = match *ty {
Placeholder(ref tyname) => {
mut sp: Span,
tts: &[tokenstream::TokenTree])
-> Box<base::MacResult + 'cx> {
- sp.ctxt = sp.ctxt.apply_mark(ecx.current_expansion.mark);
+ sp = sp.with_ctxt(sp.ctxt().apply_mark(ecx.current_expansion.mark));
match parse_args(ecx, sp, tts) {
Some((efmt, args, names)) => {
MacEager::expr(expand_preparsed_format_args(ecx, sp, efmt, args, names))
let arg_types: Vec<_> = (0..args.len()).map(|_| Vec::new()).collect();
let arg_unique_types: Vec<_> = (0..args.len()).map(|_| Vec::new()).collect();
let mut macsp = ecx.call_site();
- macsp.ctxt = macsp.ctxt.apply_mark(ecx.current_expansion.mark);
+ macsp = macsp.with_ctxt(macsp.ctxt().apply_mark(ecx.current_expansion.mark));
let msg = "format argument must be a string literal.";
let fmt = match expr_to_spanned_string(ecx, efmt, msg) {
Some(fmt) => fmt,