]> git.lizzy.rs Git - rust.git/blobdiff - src/libsyntax_ext/format.rs
Make fields of `Span` private
[rust.git] / src / libsyntax_ext / format.rs
index 764cedfcf2061924fb3edb8e25ba37a49decbfda..3e20bc481bde8a5083fadaffd0adfb48fd35ed7f 100644 (file)
@@ -558,10 +558,8 @@ fn into_expr(self) -> P<ast::Expr> {
         // 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));
@@ -642,7 +640,7 @@ fn format_arg(ecx: &ExtCtxt,
                   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) => {
@@ -679,7 +677,7 @@ pub fn expand_format_args<'cx>(ecx: &'cx mut ExtCtxt,
                                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))
@@ -701,7 +699,7 @@ pub fn expand_preparsed_format_args(ecx: &mut ExtCtxt,
     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,