| mod foo { | |
| pub trait MyTrait<'a> { | |
| type MyItem: ?Sized; | |
| } | |
| pub struct Inner<'a, Q, R: ?Sized> { | |
| field: Q, | |
| field3: &'a u8, | |
| my_foo: Foo<Q>, | |
| field2: R, | |
| } | |
| pub struct Outer<'a, T, K: ?Sized> { | |
| my_inner: Inner<'a, T, K>, | |
| } | |
| pub struct Foo<T> { | |
| 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, <T as MyTrait<'a>>::MyItem: Copy," | |
| pub use foo::{Foo, Inner as NotInner, MyTrait as NotMyTrait, Outer as NotOuter}; | |
| unsafe impl<T> Send for Foo<T> | |
| where | |
| T: NotMyTrait<'static>, | |
| { | |
| } | |
| unsafe impl<'a, Q, R: ?Sized> Send for NotInner<'a, Q, R> | |
| where | |
| Q: NotMyTrait<'a>, | |
| <Q as NotMyTrait<'a>>::MyItem: Copy, | |
| R: for<'b> Fn((&'b bool, &'a u8)) -> &'b i8, | |
| Foo<Q>: Send, | |
| { | |
| } |