]> git.lizzy.rs Git - rust.git/commitdiff
Fix handling of `hir::GenericArg::Infer` in `wrong_number_of_generic_args.rs`
authorFabian Wolff <fabian.wolff@alumni.ethz.ch>
Tue, 14 Sep 2021 22:11:18 +0000 (00:11 +0200)
committerFabian Wolff <fabian.wolff@alumni.ethz.ch>
Tue, 14 Sep 2021 23:25:51 +0000 (01:25 +0200)
compiler/rustc_typeck/src/structured_errors/wrong_number_of_generic_args.rs

index bccc19774e0d94048c6dcaa71d24b989d8103065..7e69ad21d034326a9c1fac72b80946e96a0c6fe8 100644 (file)
@@ -136,10 +136,7 @@ fn num_provided_lifetime_args(&self) -> usize {
             AngleBrackets::Missing => 0,
             // Only lifetime arguments can be implied
             AngleBrackets::Implied => self.gen_args.args.len(),
-            AngleBrackets::Available => self.gen_args.args.iter().fold(0, |acc, arg| match arg {
-                hir::GenericArg::Lifetime(_) => acc + 1,
-                _ => acc,
-            }),
+            AngleBrackets::Available => self.gen_args.num_lifetime_params(),
         }
     }
 
@@ -148,10 +145,7 @@ fn num_provided_type_or_const_args(&self) -> usize {
             AngleBrackets::Missing => 0,
             // Only lifetime arguments can be implied
             AngleBrackets::Implied => 0,
-            AngleBrackets::Available => self.gen_args.args.iter().fold(0, |acc, arg| match arg {
-                hir::GenericArg::Type(_) | hir::GenericArg::Const(_) => acc + 1,
-                _ => acc,
-            }),
+            AngleBrackets::Available => self.gen_args.num_generic_params(),
         }
     }
 
@@ -651,7 +645,9 @@ fn suggest_removing_args_or_generics(&self, err: &mut DiagnosticBuilder<'_>) {
             let mut found_redundant = false;
             for arg in self.gen_args.args {
                 match arg {
-                    hir::GenericArg::Type(_) | hir::GenericArg::Const(_) => {
+                    hir::GenericArg::Type(_)
+                    | hir::GenericArg::Const(_)
+                    | hir::GenericArg::Infer(_) => {
                         gen_arg_spans.push(arg.span());
                         if gen_arg_spans.len() > self.num_expected_type_or_const_args() {
                             found_redundant = true;