| error[E0308]: mismatched types | |
| --> $DIR/return-impl-trait.rs:15:5 | |
| | | |
| LL | fn bar<T: Trait + std::marker::Sync>() -> 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 `()` | |
| = note: the caller chooses a type for `T` which can be different from `()` | |
| error[E0308]: mismatched types | |
| --> $DIR/return-impl-trait.rs:23:5 | |
| | | |
| LL | fn other_bounds<T>() -> 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 `()` | |
| = note: the caller chooses a type for `T` which can be different from `()` | |
| error: aborting due to 2 previous errors | |
| For more information about this error, try `rustc --explain E0308`. |