@@ -14,8 +14,7 @@ use self::Position::*;
14
14
use fmt_macros as parse;
15
15
16
16
use syntax:: ast;
17
- use syntax:: ext:: base;
18
- use syntax:: ext:: base:: * ;
17
+ use syntax:: ext:: base:: { self , * } ;
19
18
use syntax:: ext:: build:: AstBuilder ;
20
19
use syntax:: feature_gate;
21
20
use syntax:: parse:: token;
@@ -24,6 +23,7 @@ use syntax::symbol::Symbol;
24
23
use syntax:: tokenstream;
25
24
use syntax_pos:: { MultiSpan , Span , DUMMY_SP } ;
26
25
26
+ use std:: borrow:: Cow ;
27
27
use std:: collections:: hash_map:: Entry ;
28
28
use std:: collections:: { HashMap , HashSet } ;
29
29
@@ -143,8 +143,10 @@ fn parse_args(ecx: &mut ExtCtxt,
143
143
ecx. span_err ( sp, "requires at least a format string argument" ) ;
144
144
return None ;
145
145
}
146
+
146
147
let fmtstr = panictry ! ( p. parse_expr( ) ) ;
147
148
let mut named = false ;
149
+
148
150
while p. token != token:: Eof {
149
151
if !p. eat ( & token:: Comma ) {
150
152
ecx. span_err ( p. span , "expected token: `,`" ) ;
@@ -264,11 +266,11 @@ impl<'a, 'b> Context<'a, 'b> {
264
266
}
265
267
}
266
268
267
- fn describe_num_args ( & self ) -> String {
269
+ fn describe_num_args ( & self ) -> Cow < str > {
268
270
match self . args . len ( ) {
269
- 0 => "no arguments were given" . to_string ( ) ,
270
- 1 => "there is 1 argument" . to_string ( ) ,
271
- x => format ! ( "there are {} arguments" , x) ,
271
+ 0 => "no arguments were given" . into ( ) ,
272
+ 1 => "there is 1 argument" . into ( ) ,
273
+ x => format ! ( "there are {} arguments" , x) . into ( ) ,
272
274
}
273
275
}
274
276
0 commit comments