// Checks that the impl trait can have where. use impl_trait::impl_trait; struct Foo(T); trait Bar { } impl_trait! { impl Foo { impl trait Bar where Self: From { } } } impl From<()> for Foo<()> { fn from(x: ()) -> Self { Self { 0: x } } } fn static_assert_1, U>(_t: T, _u: U) {} fn main() { static_assert_1(Foo(()), ()); }