clean up E0107 error explanation
This commit is contained in:
parent
481b18acd0
commit
c911bb1a2e
@ -1,4 +1,6 @@
|
||||
This error means that an incorrect number of generic arguments were provided:
|
||||
An incorrect number of generic arguments were provided.
|
||||
|
||||
Erroneous code example:
|
||||
|
||||
```compile_fail,E0107
|
||||
struct Foo<T> { x: T }
|
||||
@ -9,6 +11,7 @@ struct Baz<S, T> { x: Foo<S, T> } // error: wrong number of type arguments:
|
||||
// expected 1, found 2
|
||||
|
||||
fn foo<T, U>(x: T, y: U) {}
|
||||
fn f() {}
|
||||
|
||||
fn main() {
|
||||
let x: bool = true;
|
||||
@ -16,12 +19,26 @@ fn main() {
|
||||
// expected 2, found 1
|
||||
foo::<bool, i32, i32>(x, 2, 4); // error: wrong number of type arguments:
|
||||
// expected 2, found 3
|
||||
f::<'static>(); // error: wrong number of lifetime arguments
|
||||
// expected 0, found 1
|
||||
}
|
||||
```
|
||||
|
||||
When using/declaring an item with generic arguments, you must provide the exact
|
||||
same number:
|
||||
|
||||
```
|
||||
struct Foo<T> { x: T }
|
||||
|
||||
struct Bar<T> { x: Foo<T> } // ok!
|
||||
struct Baz<S, T> { x: Foo<S>, y: Foo<T> } // ok!
|
||||
|
||||
fn foo<T, U>(x: T, y: U) {}
|
||||
fn f() {}
|
||||
|
||||
fn main() {
|
||||
f::<'static>(); // error: wrong number of lifetime arguments:
|
||||
// expected 0, found 1
|
||||
let x: bool = true;
|
||||
foo::<bool, u32>(x, 12); // ok!
|
||||
f(); // ok!
|
||||
}
|
||||
```
|
||||
|
Loading…
x
Reference in New Issue
Block a user