3aac307ca6
When encountering an unsatisfied trait bound, if there are no other suggestions, mention all the types that *do* implement that trait: ``` error[E0277]: the trait bound `f32: Foo` is not satisfied --> $DIR/impl_wf.rs:22:6 | LL | impl Baz<f32> for f32 { } | ^^^^^^^^ the trait `Foo` is not implemented for `f32` | = help: the following other types implement trait `Foo`: Option<T> i32 str note: required by a bound in `Baz` --> $DIR/impl_wf.rs:18:31 | LL | trait Baz<U: ?Sized> where U: Foo { } | ^^^ required by this bound in `Baz` ``` Mention implementers of traits in `ImplObligation`s. Do not mention other `impl`s for closures, ranges and `?`.
32 lines
1.4 KiB
Plaintext
32 lines
1.4 KiB
Plaintext
error: expected one of `,`, `:`, or `>`, found `=`
|
|
--> $DIR/issue-34334.rs:2:29
|
|
|
|
|
LL | let sr: Vec<(u32, _, _) = vec![];
|
|
| -- - ^ expected one of `,`, `:`, or `>`
|
|
| | |
|
|
| | maybe try to close unmatched angle bracket
|
|
| while parsing the type for `sr`
|
|
|
|
|
help: you might have meant to end the type parameters here
|
|
|
|
|
LL | let sr: Vec<(u32, _, _)> = vec![];
|
|
| +
|
|
|
|
error[E0277]: a value of type `Vec<(u32, _, _)>` cannot be built from an iterator over elements of type `()`
|
|
--> $DIR/issue-34334.rs:5:87
|
|
|
|
|
LL | let sr2: Vec<(u32, _, _)> = sr.iter().map(|(faction, th_sender, th_receiver)| {}).collect();
|
|
| ^^^^^^^ value of type `Vec<(u32, _, _)>` cannot be built from `std::iter::Iterator<Item=()>`
|
|
|
|
|
= help: the trait `FromIterator<()>` is not implemented for `Vec<(u32, _, _)>`
|
|
= help: the trait `FromIterator<T>` is implemented for `Vec<T>`
|
|
note: required by a bound in `collect`
|
|
--> $SRC_DIR/core/src/iter/traits/iterator.rs:LL:COL
|
|
|
|
|
LL | fn collect<B: FromIterator<Self::Item>>(self) -> B
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `collect`
|
|
|
|
error: aborting due to 2 previous errors
|
|
|
|
For more information about this error, try `rustc --explain E0277`.
|