// check-pass

#![feature(type_alias_impl_trait)]

struct Send<T> {
    i: InnerSend<T>,
}

type InnerSend<T> = impl Sized;

fn constrain<T>() -> InnerSend<T> {
    ()
}

trait SendMustNotImplDrop {}

#[allow(drop_bounds)]
impl<T: Drop> SendMustNotImplDrop for T {}

impl<T> SendMustNotImplDrop for Send<T> {}

fn main() {}