@@ -4659,9 +4659,12 @@ pub fn instantiate_path<'a, 'tcx>(fcx: &FnCtxt<'a, 'tcx>,
4659
4659
} else if i == type_count {
4660
4660
span_err ! ( fcx. tcx( ) . sess, typ. span, E0087 ,
4661
4661
"too many type parameters provided: \
4662
- expected at most {} parameter(s), \
4663
- found {} parameter(s)",
4664
- type_count, data. types. len( ) ) ;
4662
+ expected at most {} parameter{}, \
4663
+ found {} parameter{}",
4664
+ type_count,
4665
+ if type_count == 1 { "" } else { "s" } ,
4666
+ data. types. len( ) ,
4667
+ if data. types. len( ) == 1 { "" } else { "s" } ) ;
4665
4668
substs. types . truncate ( space, 0 ) ;
4666
4669
break ;
4667
4670
}
@@ -4684,9 +4687,11 @@ pub fn instantiate_path<'a, 'tcx>(fcx: &FnCtxt<'a, 'tcx>,
4684
4687
} else if i == region_count {
4685
4688
span_err ! ( fcx. tcx( ) . sess, lifetime. span, E0088 ,
4686
4689
"too many lifetime parameters provided: \
4687
- expected {} parameter(s) , found {} parameter(s) ",
4690
+ expected {} parameter{} , found {} parameter{} ",
4688
4691
region_count,
4689
- data. lifetimes. len( ) ) ;
4692
+ if region_count == 1 { "" } else { "s" } ,
4693
+ data. lifetimes. len( ) ,
4694
+ if data. lifetimes. len( ) == 1 { "" } else { "s" } ) ;
4690
4695
substs. mut_regions ( ) . truncate ( space, 0 ) ;
4691
4696
break ;
4692
4697
}
@@ -4776,9 +4781,12 @@ pub fn instantiate_path<'a, 'tcx>(fcx: &FnCtxt<'a, 'tcx>,
4776
4781
let qualifier =
4777
4782
if desired. len ( ) != required_len { "at least " } else { "" } ;
4778
4783
span_err ! ( fcx. tcx( ) . sess, span, E0089 ,
4779
- "too few type parameters provided: expected {}{} parameter(s) \
4780
- , found {} parameter(s)",
4781
- qualifier, required_len, provided_len) ;
4784
+ "too few type parameters provided: expected {}{} parameter{}, \
4785
+ found {} parameter{}",
4786
+ qualifier, required_len,
4787
+ if required_len == 1 { "" } else { "s" } ,
4788
+ provided_len,
4789
+ if provided_len == 1 { "" } else { "s" } ) ;
4782
4790
substs. types . replace ( space, repeat ( fcx. tcx ( ) . types . err ) . take ( desired. len ( ) ) . collect ( ) ) ;
4783
4791
return ;
4784
4792
}
@@ -4829,9 +4837,12 @@ pub fn instantiate_path<'a, 'tcx>(fcx: &FnCtxt<'a, 'tcx>,
4829
4837
// Otherwise, too few were provided. Report an error and then
4830
4838
// use inference variables.
4831
4839
span_err ! ( fcx. tcx( ) . sess, span, E0090 ,
4832
- "too few lifetime parameters provided: expected {} parameter(s), \
4833
- found {} parameter(s)",
4834
- desired. len( ) , provided_len) ;
4840
+ "too few lifetime parameters provided: expected {} parameter{}, \
4841
+ found {} parameter{}",
4842
+ desired. len( ) ,
4843
+ if desired. len( ) == 1 { "" } else { "s" } ,
4844
+ provided_len,
4845
+ if provided_len == 1 { "" } else { "s" } ) ;
4835
4846
4836
4847
substs. mut_regions ( ) . replace (
4837
4848
space,
0 commit comments