diff options
Diffstat (limited to 'tests/proper_unpin.rs')
-rw-r--r-- | tests/proper_unpin.rs | 42 |
1 files changed, 28 insertions, 14 deletions
diff --git a/tests/proper_unpin.rs b/tests/proper_unpin.rs index ce2a6c8..8873572 100644 --- a/tests/proper_unpin.rs +++ b/tests/proper_unpin.rs @@ -16,16 +16,30 @@ pub mod default { assert_not_unpin!(Inner<PhantomPinned>); #[pin_project] - struct Foo<T, U> { + struct Struct<T, U> { #[pin] f1: Inner<T>, f2: U, } - assert_unpin!(Foo<(), ()>); - assert_unpin!(Foo<(), PhantomPinned>); - assert_not_unpin!(Foo<PhantomPinned, ()>); - assert_not_unpin!(Foo<PhantomPinned, PhantomPinned>); + assert_unpin!(Struct<(), ()>); + assert_unpin!(Struct<(), PhantomPinned>); + assert_not_unpin!(Struct<PhantomPinned, ()>); + assert_not_unpin!(Struct<PhantomPinned, PhantomPinned>); + + #[pin_project(project = EnumProj, project_ref = EnumProjRef)] + enum Enum<T, U> { + V1 { + #[pin] + f1: Inner<T>, + f2: U, + }, + } + + assert_unpin!(Enum<(), ()>); + assert_unpin!(Enum<(), PhantomPinned>); + assert_not_unpin!(Enum<PhantomPinned, ()>); + assert_not_unpin!(Enum<PhantomPinned, PhantomPinned>); #[pin_project] struct TrivialBounds { @@ -36,13 +50,13 @@ pub mod default { assert_not_unpin!(TrivialBounds); #[pin_project] - struct Bar<'a, T, U> { + struct PinRef<'a, T, U> { #[pin] f1: &'a mut Inner<T>, f2: U, } - assert_unpin!(Bar<'_, PhantomPinned, PhantomPinned>); + assert_unpin!(PinRef<'_, PhantomPinned, PhantomPinned>); } pub mod cfg { @@ -105,16 +119,16 @@ pub mod not_unpin { } #[pin_project(!Unpin)] - struct Foo<T, U> { + struct Struct<T, U> { #[pin] inner: Inner<T>, other: U, } - assert_not_unpin!(Foo<(), ()>); - assert_not_unpin!(Foo<(), PhantomPinned>); - assert_not_unpin!(Foo<PhantomPinned, ()>); - assert_not_unpin!(Foo<PhantomPinned, PhantomPinned>); + assert_not_unpin!(Struct<(), ()>); + assert_not_unpin!(Struct<(), PhantomPinned>); + assert_not_unpin!(Struct<PhantomPinned, ()>); + assert_not_unpin!(Struct<PhantomPinned, PhantomPinned>); #[pin_project(!Unpin)] struct TrivialBounds { @@ -125,11 +139,11 @@ pub mod not_unpin { assert_not_unpin!(TrivialBounds); #[pin_project(!Unpin)] - struct Bar<'a, T, U> { + struct PinRef<'a, T, U> { #[pin] inner: &'a mut Inner<T>, other: U, } - assert_not_unpin!(Bar<'_, (), ()>); + assert_not_unpin!(PinRef<'_, (), ()>); } |