Fix typo and improve documentation for E0632
This commit is contained in:
25
compiler/rustc_error_codes/src/error_codes/E0632.md
Normal file
25
compiler/rustc_error_codes/src/error_codes/E0632.md
Normal 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());
|
||||
```
|
||||
Reference in New Issue
Block a user