error[E0308]: mismatched types --> $DIR/return-impl-trait.rs:15:5 | LL | fn bar() -> T | - - | | | | | expected `T` because of return type | expected this type parameter help: consider using an impl return type: `impl Trait + std::marker::Sync + Send` ... LL | () | ^^ expected type parameter `T`, found `()` | = note: expected type parameter `T` found unit type `()` error[E0308]: mismatched types --> $DIR/return-impl-trait.rs:23:5 | LL | fn other_bounds() -> T | - - | | | | | expected `T` because of return type | | help: consider using an impl return type: `impl Trait` | expected this type parameter ... LL | () | ^^ expected type parameter `T`, found `()` | = note: expected type parameter `T` found unit type `()` error: aborting due to 2 previous errors For more information about this error, try `rustc --explain E0308`.