@@ -149,7 +149,7 @@ fn parse_args<'a>(
149149 return Err ( err) ;
150150 } else {
151151 // ...after that delegate to `expect` to also include the other expected tokens.
152- return Err ( p. expect ( & token:: Comma ) . err ( ) . unwrap ( ) ) ;
152+ let _ = p. expect ( & token:: Comma ) ? ;
153153 }
154154 }
155155 first = false ;
@@ -359,24 +359,18 @@ impl<'a, 'b> Context<'a, 'b> {
359359 // for `println!("{7:7$}", 1);`
360360 refs. sort ( ) ;
361361 refs. dedup ( ) ;
362- let ( arg_list, mut sp) = if refs. len ( ) == 1 {
363- let spans: Vec < _ > = spans. into_iter ( ) . filter_map ( |sp| sp. copied ( ) ) . collect ( ) ;
364- (
365- format ! ( "argument {}" , refs[ 0 ] ) ,
366- if spans. is_empty ( ) {
367- MultiSpan :: from_span ( self . fmtsp )
368- } else {
369- MultiSpan :: from_spans ( spans)
370- } ,
371- )
362+ let spans: Vec < _ > = spans. into_iter ( ) . filter_map ( |sp| sp. copied ( ) ) . collect ( ) ;
363+ let sp = if self . arg_spans . is_empty ( ) || spans. is_empty ( ) {
364+ MultiSpan :: from_span ( self . fmtsp )
365+ } else {
366+ MultiSpan :: from_spans ( spans)
367+ } ;
368+ let arg_list = if refs. len ( ) == 1 {
369+ format ! ( "argument {}" , refs[ 0 ] )
372370 } else {
373- let pos = MultiSpan :: from_spans ( spans. into_iter ( ) . map ( |s| * s. unwrap ( ) ) . collect ( ) ) ;
374371 let reg = refs. pop ( ) . unwrap ( ) ;
375- ( format ! ( "arguments {head} and {tail}" , head = refs. join( ", " ) , tail = reg, ) , pos )
372+ format ! ( "arguments {head} and {tail}" , head = refs. join( ", " ) , tail = reg)
376373 } ;
377- if self . arg_spans . is_empty ( ) {
378- sp = MultiSpan :: from_span ( self . fmtsp ) ;
379- }
380374
381375 e = self . ecx . struct_span_err (
382376 sp,
@@ -1067,10 +1061,9 @@ pub fn expand_preparsed_format_args(
10671061 let args_unused = errs_len;
10681062
10691063 let mut diag = {
1070- if errs_len == 1 {
1071- let ( sp, msg) = errs. into_iter ( ) . next ( ) . unwrap ( ) ;
1072- let mut diag = cx. ecx . struct_span_err ( sp, msg) ;
1073- diag. span_label ( sp, msg) ;
1064+ if let [ ( sp, msg) ] = & errs[ ..] {
1065+ let mut diag = cx. ecx . struct_span_err ( * sp, * msg) ;
1066+ diag. span_label ( * sp, * msg) ;
10741067 diag
10751068 } else {
10761069 let mut diag = cx. ecx . struct_span_err (
0 commit comments