Add E0036 error explanation
This commit is contained in:
parent
2f5683913c
commit
98205afe0b
@ -211,6 +211,53 @@ Reference:
|
||||
http://doc.rust-lang.org/reference.html#trait-objects
|
||||
"##,
|
||||
|
||||
E0036: r##"
|
||||
This error occurred when you pass too many or not enough type parameters to a
|
||||
method. Example:
|
||||
|
||||
```
|
||||
struct Test;
|
||||
|
||||
impl Test {
|
||||
fn method<T>(&self, v: &[T]) -> usize {
|
||||
v.len()
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let x = Test;
|
||||
let v = &[0i32];
|
||||
|
||||
x.method::<i32, i32>(v); // error: only one type parameter is expected!
|
||||
}
|
||||
```
|
||||
|
||||
To fix it, just specify a correct number of type parameters:
|
||||
|
||||
```
|
||||
struct Test;
|
||||
|
||||
impl Test {
|
||||
fn method<T>(&self, v: &[T]) -> usize {
|
||||
v.len()
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let x = Test;
|
||||
let v = &[0i32];
|
||||
|
||||
x.method::<i32>(v); // OK, we're good!
|
||||
}
|
||||
```
|
||||
|
||||
Please note on the last example that we could have called `method` like this:
|
||||
|
||||
```
|
||||
x.method(v);
|
||||
```
|
||||
"##,
|
||||
|
||||
E0040: r##"
|
||||
It is not allowed to manually call destructors in Rust. It is also not
|
||||
necessary to do this since `drop` is called automatically whenever a value goes
|
||||
|
Loading…
x
Reference in New Issue
Block a user