error[E0308]: mismatched types --> $DIR/hidden_behind_projection_behind_struct_field.rs:19:22 | LL | type Assoc = impl std::fmt::Debug; | -------------------- the expected opaque type LL | fn foo() -> Foo { LL | Foo { field: () } | ^^ expected opaque type, found `()` | = note: expected opaque type `::Assoc` found unit type `()` note: this item must have the opaque type in its signature in order to be able to register hidden types --> $DIR/hidden_behind_projection_behind_struct_field.rs:18:8 | LL | fn foo() -> Foo { | ^^^ error: aborting due to 1 previous error For more information about this error, try `rustc --explain E0308`.