mirror of https://github.com/rust-lang/rust
43 lines
1004 B
Rust
43 lines
1004 B
Rust
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,
|
|
{
|
|
}
|