#![warn(rust_2018_idioms, single_use_lifetimes)]
#![allow(dead_code)]

#[macro_use]
mod auxiliary;

use std::marker::PhantomPinned;

use pin_project::{pin_project, UnsafeUnpin};

#[pin_project(UnsafeUnpin)]
pub struct Blah<T, U> {
    f1: U,
    #[pin]
    f2: T,
}

unsafe impl<T: Unpin, U> UnsafeUnpin for Blah<T, U> {}

assert_unpin!(Blah<(), ()>);
assert_unpin!(Blah<(), PhantomPinned>);
assert_not_unpin!(Blah<PhantomPinned, ()>);
assert_not_unpin!(Blah<PhantomPinned, PhantomPinned>);

#[pin_project(UnsafeUnpin)]
struct OverlappingLifetimeNames<'pin, T, U> {
    #[pin]
    f1: U,
    #[pin]
    f2: Option<T>,
    f3: &'pin (),
}

unsafe impl<T: Unpin, U: Unpin> UnsafeUnpin for OverlappingLifetimeNames<'_, T, U> {}

assert_unpin!(OverlappingLifetimeNames<'_, (), ()>);
assert_not_unpin!(OverlappingLifetimeNames<'_, PhantomPinned, ()>);
assert_not_unpin!(OverlappingLifetimeNames<'_, (), PhantomPinned>);
assert_not_unpin!(OverlappingLifetimeNames<'_, PhantomPinned, PhantomPinned>);

#[test]
fn trivial_bounds() {
    #[pin_project(UnsafeUnpin)]
    pub struct NotImplementUnsafeUnpin {
        #[pin]
        f: PhantomPinned,
    }

    assert_not_unpin!(NotImplementUnsafeUnpin);
}
