Rollup merge of #68958 - GuillaumeGomez:clean-up-e0277-e0282, r=Dylan-DPC

Clean up E0277 and E0282 explanations

r? @Dylan-DPC
This commit is contained in:
Dylan DPC 2020-02-09 00:53:58 +01:00 committed by GitHub
commit 8333115100
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 8 deletions

View file

@ -1,5 +1,7 @@
You tried to use a type which doesn't implement some trait in a place which
expected that trait. Erroneous code example:
expected that trait.
Erroneous code example:
```compile_fail,E0277
// here we declare the Foo trait with a bar method

View file

@ -1,3 +1,11 @@
The compiler could not infer a type and asked for a type annotation.
Erroneous code example:
```compile_fail,E0282
let x = "hello".chars().rev().collect();
```
This error indicates that type inference did not result in one unique possible
type, and extra information is required. In most cases this can be provided
by adding a type annotation. Sometimes you need to specify a generic type
@ -8,13 +16,9 @@ parameter with a `FromIterator` bound, which for a `char` iterator is
implemented by `Vec` and `String` among others. Consider the following snippet
that reverses the characters of a string:
```compile_fail,E0282
let x = "hello".chars().rev().collect();
```
In this case, the compiler cannot infer what the type of `x` should be:
`Vec<char>` and `String` are both suitable candidates. To specify which type to
use, you can use a type annotation on `x`:
In the first code example, the compiler cannot infer what the type of `x` should
be: `Vec<char>` and `String` are both suitable candidates. To specify which type
to use, you can use a type annotation on `x`:
```
let x: Vec<char> = "hello".chars().rev().collect();