mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-21 17:52:12 +03:00
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:
@@ -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
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user