Fix typo and improve documentation for E0632

This commit is contained in:
Fabian Wolff
2021-05-23 13:31:04 +02:00
parent a435b49e86
commit 4e08bb5225
3 changed files with 27 additions and 3 deletions

View File

@@ -0,0 +1,25 @@
An explicit generic argument was provided when calling a function that
uses `impl Trait` in argument position.
Erroneous code example:
```compile_fail,E0632
fn foo<T: Copy>(a: T, b: impl Clone) {}
foo::<i32>(0i32, "abc".to_string());
```
Either all generic arguments should be inferred at the call site, or
the function definition should use an explicit generic type parameter
instead of `impl Trait`. Example:
```
fn foo<T: Copy>(a: T, b: impl Clone) {}
fn bar<T: Copy, U: Clone>(a: T, b: U) {}
foo(0i32, "abc".to_string());
bar::<i32, String>(0i32, "abc".to_string());
bar::<_, _>(0i32, "abc".to_string());
bar(0i32, "abc".to_string());
```