diff options
| author | Fabian Wolff <fabian.wolff@alumni.ethz.ch> | 2021-09-15 00:11:18 +0200 |
|---|---|---|
| committer | Fabian Wolff <fabian.wolff@alumni.ethz.ch> | 2021-09-15 01:25:51 +0200 |
| commit | 2a2bfd1e59e9f84d2f68c0587bd7d7c93a237a46 (patch) | |
| tree | 522f361f7638ef17fa42ed2189f0d46e17003791 /compiler | |
| parent | c3c0f80d6081092faff801542dd82f0e2420152b (diff) | |
| download | rust-2a2bfd1e59e9f84d2f68c0587bd7d7c93a237a46.tar.gz rust-2a2bfd1e59e9f84d2f68c0587bd7d7c93a237a46.zip | |
Fix handling of `hir::GenericArg::Infer` in `wrong_number_of_generic_args.rs`
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/rustc_typeck/src/structured_errors/wrong_number_of_generic_args.rs | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/compiler/rustc_typeck/src/structured_errors/wrong_number_of_generic_args.rs b/compiler/rustc_typeck/src/structured_errors/wrong_number_of_generic_args.rs index bccc19774e0..7e69ad21d03 100644 --- a/compiler/rustc_typeck/src/structured_errors/wrong_number_of_generic_args.rs +++ b/compiler/rustc_typeck/src/structured_errors/wrong_number_of_generic_args.rs @@ -136,10 +136,7 @@ impl<'a, 'tcx> WrongNumberOfGenericArgs<'a, 'tcx> { 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 @@ impl<'a, 'tcx> WrongNumberOfGenericArgs<'a, 'tcx> { 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 @@ impl<'a, 'tcx> WrongNumberOfGenericArgs<'a, 'tcx> { 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; |
