| trait Trait {} | |
| impl Trait for () {} | |
| fn bad_echo<T>(_t: T) -> T { | |
| "this should not suggest impl Trait" //~ ERROR mismatched types | |
| } | |
| fn bad_echo_2<T: Trait>(_t: T) -> T { | |
| "this will not suggest it, because that would probably be wrong" //~ ERROR mismatched types | |
| } | |
| fn other_bounds_bad<T>() -> T | |
| where | |
| T: Send, | |
| Option<T>: Send, | |
| { | |
| "don't suggest this, because Option<T> places additional constraints" //~ ERROR mismatched types | |
| } | |
| // FIXME: implement this check | |
| trait GenericTrait<T> {} | |
| fn used_in_trait<T>() -> T | |
| where | |
| T: Send, | |
| (): GenericTrait<T>, | |
| { | |
| "don't suggest this, because the generic param is used in the bound." //~ ERROR mismatched types | |
| } | |
| fn main() {} |