@@ -4688,9 +4688,12 @@ pub fn instantiate_path<'a, 'tcx>(fcx: &FnCtxt<'a, 'tcx>,
4688
4688
} else if i == type_count {
4689
4689
span_err ! ( fcx. tcx( ) . sess, typ. span, E0087 ,
4690
4690
"too many type parameters provided: \
4691
- expected at most {} parameter(s), \
4692
- found {} parameter(s)",
4693
- type_count, data. types. len( ) ) ;
4691
+ expected at most {} parameter{}, \
4692
+ found {} parameter{}",
4693
+ type_count,
4694
+ if type_count == 1 { "" } else { "s" } ,
4695
+ data. types. len( ) ,
4696
+ if data. types. len( ) == 1 { "" } else { "s" } ) ;
4694
4697
substs. types . truncate ( space, 0 ) ;
4695
4698
break ;
4696
4699
}
@@ -4713,9 +4716,11 @@ pub fn instantiate_path<'a, 'tcx>(fcx: &FnCtxt<'a, 'tcx>,
4713
4716
} else if i == region_count {
4714
4717
span_err ! ( fcx. tcx( ) . sess, lifetime. span, E0088 ,
4715
4718
"too many lifetime parameters provided: \
4716
- expected {} parameter(s) , found {} parameter(s) ",
4719
+ expected {} parameter{} , found {} parameter{} ",
4717
4720
region_count,
4718
- data. lifetimes. len( ) ) ;
4721
+ if region_count == 1 { "" } else { "s" } ,
4722
+ data. lifetimes. len( ) ,
4723
+ if data. lifetimes. len( ) == 1 { "" } else { "s" } ) ;
4719
4724
substs. mut_regions ( ) . truncate ( space, 0 ) ;
4720
4725
break ;
4721
4726
}
@@ -4805,9 +4810,12 @@ pub fn instantiate_path<'a, 'tcx>(fcx: &FnCtxt<'a, 'tcx>,
4805
4810
let qualifier =
4806
4811
if desired. len ( ) != required_len { "at least " } else { "" } ;
4807
4812
span_err ! ( fcx. tcx( ) . sess, span, E0089 ,
4808
- "too few type parameters provided: expected {}{} parameter(s) \
4809
- , found {} parameter(s)",
4810
- qualifier, required_len, provided_len) ;
4813
+ "too few type parameters provided: expected {}{} parameter{}, \
4814
+ found {} parameter{}",
4815
+ qualifier, required_len,
4816
+ if required_len == 1 { "" } else { "s" } ,
4817
+ provided_len,
4818
+ if provided_len == 1 { "" } else { "s" } ) ;
4811
4819
substs. types . replace ( space, repeat ( fcx. tcx ( ) . types . err ) . take ( desired. len ( ) ) . collect ( ) ) ;
4812
4820
return ;
4813
4821
}
@@ -4858,9 +4866,12 @@ pub fn instantiate_path<'a, 'tcx>(fcx: &FnCtxt<'a, 'tcx>,
4858
4866
// Otherwise, too few were provided. Report an error and then
4859
4867
// use inference variables.
4860
4868
span_err ! ( fcx. tcx( ) . sess, span, E0090 ,
4861
- "too few lifetime parameters provided: expected {} parameter(s), \
4862
- found {} parameter(s)",
4863
- desired. len( ) , provided_len) ;
4869
+ "too few lifetime parameters provided: expected {} parameter{}, \
4870
+ found {} parameter{}",
4871
+ desired. len( ) ,
4872
+ if desired. len( ) == 1 { "" } else { "s" } ,
4873
+ provided_len,
4874
+ if provided_len == 1 { "" } else { "s" } ) ;
4864
4875
4865
4876
substs. mut_regions ( ) . replace (
4866
4877
space,
0 commit comments