// Copyright 2018 The Rust Project Developers. See the COPYRIGHT // file at the top-level directory of this distribution and at // http://rust-lang.org/COPYRIGHT. // // Licensed under the Apache License, Version 2.0 or the MIT license // , at your // option. This file may not be copied, modified, or distributed // except according to those terms. 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"]/*/code' "impl<'a, T, K: \ // ?Sized> Send for NotOuter<'a, T, K> where 'a: 'static, K: for<'b> Fn((&'b bool, &'a u8)) \ // -> &'b i8, >::MyItem: Copy, T: MyTrait<'a>" 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, /* for<'b> */ R: for<'b> Fn((&'b bool, &'a u8)) -> &'b i8, Foo: Send, { }