// Make sure that we check that impl trait types implement the traits that they // claim to. #![feature(type_alias_impl_trait)] type X = impl Clone; fn f(t: T) -> X { t //~^ ERROR the trait bound `T: Clone` is not satisfied } fn g(o: Option>) -> Option> { o.clone() } fn main() { g(None::>); }