//@ check-pass | |
#![feature(type_alias_impl_trait)] | |
struct Outer<T: ?Sized> { | |
i: InnerSend<T>, | |
} | |
type InnerSend<T: ?Sized> = impl Send; | |
fn constrain<T: ?Sized>() -> InnerSend<T> { | |
() | |
} | |
trait SendMustNotImplDrop {} | |
#[allow(drop_bounds)] | |
impl<T: ?Sized + Send + Drop> SendMustNotImplDrop for T {} | |
impl<T: ?Sized> SendMustNotImplDrop for Outer<T> {} | |
fn main() {} |