summaryrefslogtreecommitdiffstats
path: root/src/test/ui/associated-types/impl-trait-return-missing-constraint.stderr
blob: fbd76a64c1e9273b9a7eeae22331e4b08048f978 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
error[E0271]: type mismatch resolving `<impl Bar as Foo>::Item == i32`
  --> $DIR/impl-trait-return-missing-constraint.rs:25:13
   |
LL | fn bar() -> impl Bar {
   |             -------- the expected opaque type
...
LL | fn baz() -> impl Bar<Item = i32> {
   |             ^^^^^^^^^^^^^^^^^^^^ expected associated type, found `i32`
LL |
LL |     bar()
   |     ----- return type was inferred to be `impl Bar` here
   |
   = note: expected associated type `<impl Bar as Foo>::Item`
                         found type `i32`
   = help: consider constraining the associated type `<impl Bar as Foo>::Item` to `i32` or calling a method that returns `<impl Bar as Foo>::Item`
   = note: for more information, visit https://doc.rust-lang.org/book/ch19-03-advanced-traits.html
help: consider constraining the associated type `<impl Bar as Foo>::Item` to `i32`
   |
LL | fn bar() -> impl Bar<Item = i32> {
   |                     ++++++++++++

error: aborting due to previous error

For more information about this error, try `rustc --explain E0271`.