-
Notifications
You must be signed in to change notification settings - Fork 13.2k
/
Copy pathcomplex.rs
42 lines (35 loc) · 1004 Bytes
/
complex.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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,
{
}