error[E0271]: type mismatch resolving `::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 { | ^^^^^^^^^^^^^^^^^^^^ expected associated type, found `i32` LL | LL | bar() | ----- return type was inferred to be `impl Bar` here | = note: expected associated type `::Item` found type `i32` = help: consider constraining the associated type `::Item` to `i32` or calling a method that returns `::Item` = note: for more information, visit https://doc.rust-lang.org/book/ch19-03-advanced-traits.html help: consider constraining the associated type `::Item` to `i32` | LL | fn bar() -> impl Bar { | ++++++++++++ error: aborting due to previous error For more information about this error, try `rustc --explain E0271`.