Skip to content

Commit 4de42a7

Browse files
authoredOct 20, 2019
Rollup merge of rust-lang#65614 - varkor:apit-explicit-generics, r=matthewjasper
Improve error message for APIT with explicit generic arguments This is disallowed with type or const generics. cc rust-lang#61410.
2 parents c9c32a7 + 2f7c9a2 commit 4de42a7

8 files changed

+14
-14
lines changed
 

‎src/librustc_typeck/astconv.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -232,8 +232,8 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
232232
tcx.sess,
233233
span,
234234
E0632,
235-
"cannot provide explicit type parameters when `impl Trait` is \
236-
used in argument position."
235+
"cannot provide explicit generic arguments when `impl Trait` is \
236+
used in argument position"
237237
};
238238

239239
err.emit();

‎src/librustc_typeck/error_codes.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -5048,8 +5048,8 @@ the future, [RFC 2091] prohibits their implementation without a follow-up RFC.
50485048
// E0612, // merged into E0609
50495049
// E0613, // Removed (merged with E0609)
50505050
E0627, // yield statement outside of generator literal
5051-
E0632, // cannot provide explicit type parameters when `impl Trait` is used
5052-
// in argument position.
5051+
E0632, // cannot provide explicit generic arguments when `impl Trait` is
5052+
// used in argument position
50535053
E0634, // type has conflicting packed representaton hints
50545054
E0640, // infer outlives requirements
50555055
E0641, // cannot cast to/from a pointer with an unknown kind

‎src/test/ui/impl-trait/issues/universal-issue-48703.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@ use std::fmt::Debug;
55
fn foo<T>(x: impl Debug) { }
66

77
fn main() {
8-
foo::<String>('a'); //~ ERROR cannot provide explicit type parameters
8+
foo::<String>('a'); //~ ERROR cannot provide explicit generic arguments
99
}

‎src/test/ui/impl-trait/issues/universal-issue-48703.stderr

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
error[E0632]: cannot provide explicit type parameters when `impl Trait` is used in argument position.
1+
error[E0632]: cannot provide explicit generic arguments when `impl Trait` is used in argument position
22
--> $DIR/universal-issue-48703.rs:8:5
33
|
44
LL | foo::<String>('a');

‎src/test/ui/impl-trait/issues/universal-turbofish-in-method-issue-50950.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@ struct TestEvent(i32);
1212
fn main() {
1313
let mut evt = EventHandler {};
1414
evt.handle_event::<TestEvent, fn(TestEvent)>(|_evt| {
15-
//~^ ERROR cannot provide explicit type parameters
15+
//~^ ERROR cannot provide explicit generic arguments
1616
});
1717
}

‎src/test/ui/impl-trait/issues/universal-turbofish-in-method-issue-50950.stderr

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
error[E0632]: cannot provide explicit type parameters when `impl Trait` is used in argument position.
1+
error[E0632]: cannot provide explicit generic arguments when `impl Trait` is used in argument position
22
--> $DIR/universal-turbofish-in-method-issue-50950.rs:14:9
33
|
44
LL | evt.handle_event::<TestEvent, fn(TestEvent)>(|_evt| {

‎src/test/ui/synthetic-param.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ impl<S> Bar<S> {
1717
}
1818

1919
fn main() {
20-
func::<u8>(42); //~ ERROR cannot provide explicit type parameters
20+
func::<u8>(42); //~ ERROR cannot provide explicit generic arguments
2121
func(42); // Ok
2222

23-
Foo::func::<u8>(42); //~ ERROR cannot provide explicit type parameters
23+
Foo::func::<u8>(42); //~ ERROR cannot provide explicit generic arguments
2424
Foo::func(42); // Ok
2525

26-
Bar::<i8>::func::<u8>(42); //~ ERROR cannot provide explicit type parameters
26+
Bar::<i8>::func::<u8>(42); //~ ERROR cannot provide explicit generic arguments
2727
Bar::<i8>::func(42); // Ok
2828
}

‎src/test/ui/synthetic-param.stderr

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
error[E0632]: cannot provide explicit type parameters when `impl Trait` is used in argument position.
1+
error[E0632]: cannot provide explicit generic arguments when `impl Trait` is used in argument position
22
--> $DIR/synthetic-param.rs:20:5
33
|
44
LL | func::<u8>(42);
55
| ^^^^^^^^^^
66

7-
error[E0632]: cannot provide explicit type parameters when `impl Trait` is used in argument position.
7+
error[E0632]: cannot provide explicit generic arguments when `impl Trait` is used in argument position
88
--> $DIR/synthetic-param.rs:23:5
99
|
1010
LL | Foo::func::<u8>(42);
1111
| ^^^^^^^^^^^^^^^
1212

13-
error[E0632]: cannot provide explicit type parameters when `impl Trait` is used in argument position.
13+
error[E0632]: cannot provide explicit generic arguments when `impl Trait` is used in argument position
1414
--> $DIR/synthetic-param.rs:26:5
1515
|
1616
LL | Bar::<i8>::func::<u8>(42);

0 commit comments

Comments
 (0)
Please sign in to comment.