Add E0036 error explanation

This commit is contained in:
Guillaume Gomez 2015-06-19 13:54:57 +02:00
parent 2f5683913c
commit 98205afe0b

View File

@ -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