@@ -1839,25 +1839,28 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
1839
1839
}
1840
1840
} )
1841
1841
. partition ( |field| field. 2 ) ;
1842
- let remaining_private_fields_len = remaining_private_fields. len ( ) ;
1843
- let names = match & remaining_private_fields
1844
- . iter ( )
1845
- . map ( |( name, _, _) | name. to_string ( ) )
1846
- . collect :: < Vec < _ > > ( ) [ ..]
1847
- {
1848
- _ if remaining_private_fields_len > 6 => String :: new ( ) ,
1849
- [ name] => format ! ( "`{name}` " ) ,
1850
- [ names @ .., last] => {
1851
- let names = names. iter ( ) . map ( |name| format ! ( "`{name}`" ) ) . collect :: < Vec < _ > > ( ) ;
1852
- format ! ( "{} and `{last}` " , names. join( ", " ) )
1853
- }
1854
- [ ] => unreachable ! ( ) ,
1855
- } ;
1856
1842
err. span_labels ( used_private_fields. iter ( ) . map ( |( _, span, _) | * span) , "private field" ) ;
1857
- err. note ( format ! (
1858
- "... and other private field{s} {names}that were not provided" ,
1859
- s = pluralize!( remaining_private_fields_len) ,
1860
- ) ) ;
1843
+ if !remaining_private_fields. is_empty ( ) {
1844
+ let remaining_private_fields_len = remaining_private_fields. len ( ) ;
1845
+ let names = match & remaining_private_fields
1846
+ . iter ( )
1847
+ . map ( |( name, _, _) | name. to_string ( ) )
1848
+ . collect :: < Vec < _ > > ( ) [ ..]
1849
+ {
1850
+ _ if remaining_private_fields_len > 6 => String :: new ( ) ,
1851
+ [ name] => format ! ( "`{name}` " ) ,
1852
+ [ names @ .., last] => {
1853
+ let names = names. iter ( ) . map ( |name| format ! ( "`{name}`" ) ) . collect :: < Vec < _ > > ( ) ;
1854
+ format ! ( "{} and `{last}` " , names. join( ", " ) )
1855
+ }
1856
+ [ ] => unreachable ! ( ) ,
1857
+ } ;
1858
+ err. note ( format ! (
1859
+ "... and other private field{s} {names}that {were} not provided" ,
1860
+ s = pluralize!( remaining_private_fields_len) ,
1861
+ were = pluralize!( "was" , remaining_private_fields_len) ,
1862
+ ) ) ;
1863
+ }
1861
1864
err. emit ( ) ;
1862
1865
}
1863
1866
0 commit comments