// `impl Trait` is treated as a normal generic parameter internally,
// but we don't allow users to specify the parameter's value
// explicitly, so we have to do some error-checking here.
- suppress_errors.insert(index, AstConv::check_generic_arg_count_for_call(
+ let suppress = AstConv::check_generic_arg_count_for_call(
self.tcx,
span,
&generics,
&seg,
false, // `is_method_call`
- ));
+ );
+ if suppress {
+ self.set_tainted_by_errors(); // See issue #53251.
+ }
+ suppress_errors.insert(index, suppress);
}
let has_self = path_segs.last().map(|PathSeg(def_id, _)| {
-error[E0601]: `main` function not found in crate `issue_53251`
- |
- = note: consider adding a `main` function to `$DIR/issue-53251.rs`
-
-error[E0087]: too many type parameters provided: expected at most 0 type parameters, found 1 type parameter
- --> $DIR/issue-53251.rs:21:24
+error[E0087]: wrong number of type arguments: expected 0, found 1
+ --> $DIR/issue-53251.rs:21:17
|
LL | S::f::<i64>();
- | ^^^ expected 0 type parameters
+ | ^^^^^^^^^^^ unexpected type argument
...
LL | impl_add!(a b);
| --------------- in this macro invocation
-error: aborting due to 2 previous errors
+error: aborting due to previous error
-Some errors occurred: E0087, E0601.
-For more information about an error, try `rustc --explain E0087`.
+For more information about this error, try `rustc --explain E0087`.