mod foo { pub trait MyTrait<'a> { type MyItem: ?Sized; } pub struct Inner<'a, Q, R: ?Sized> { field: Q, field3: &'a u8, my_foo: Foo, field2: R, } pub struct Outer<'a, T, K: ?Sized> { my_inner: Inner<'a, T, K>, } pub struct Foo { myfield: T, } } //@ has complex/struct.NotOuter.html //@ has - '//*[@id="synthetic-implementations-list"]//*[@class="impl"]//h3[@class="code-header"]' \ // "impl<'a, T, K> Send for Outer<'a, T, K>where 'a: 'static, T: MyTrait<'a>, \ // K: for<'b> Fn((&'b bool, &'a u8)) -> &'b i8 + ?Sized, >::MyItem: Copy," pub use foo::{Foo, Inner as NotInner, MyTrait as NotMyTrait, Outer as NotOuter}; unsafe impl Send for Foo where T: NotMyTrait<'static>, { } unsafe impl<'a, Q, R: ?Sized> Send for NotInner<'a, Q, R> where Q: NotMyTrait<'a>, >::MyItem: Copy, R: for<'b> Fn((&'b bool, &'a u8)) -> &'b i8, Foo: Send, { }