diff options
Diffstat (limited to 'tests/forbid_unsafe.rs')
-rw-r--r-- | tests/forbid_unsafe.rs | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/tests/forbid_unsafe.rs b/tests/forbid_unsafe.rs deleted file mode 100644 index 4b2e248..0000000 --- a/tests/forbid_unsafe.rs +++ /dev/null @@ -1,108 +0,0 @@ -#![forbid(unsafe_code)] -#![warn(rust_2018_idioms, single_use_lifetimes)] -#![allow(dead_code)] - -// default #[pin_project], PinnedDrop, Replace, and !Unpin are completely safe. - -use pin_project::{pin_project, pinned_drop}; -use std::pin::Pin; - -#[pin_project] -pub struct StructDefault<T, U> { - #[pin] - pub pinned: T, - pub unpinned: U, -} - -#[pin_project(PinnedDrop)] -pub struct StructPinnedDrop<T, U> { - #[pin] - pub pinned: T, - pub unpinned: U, -} - -#[pinned_drop] -impl<T, U> PinnedDrop for StructPinnedDrop<T, U> { - fn drop(self: Pin<&mut Self>) {} -} - -#[pin_project(Replace)] -pub struct StructReplace<T, U> { - #[pin] - pub pinned: T, - pub unpinned: U, -} - -// UnsafeUnpin without UnsafeUnpin impl is also safe -#[pin_project(UnsafeUnpin)] -pub struct StructUnsafeUnpin<T, U> { - #[pin] - pub pinned: T, - pub unpinned: U, -} - -#[pin_project(!Unpin)] -pub struct StructNotUnpin<T, U> { - #[pin] - pub pinned: T, - pub unpinned: U, -} - -#[pin_project] -pub enum EnumDefault<T, U> { - Struct { - #[pin] - pinned: T, - unpinned: U, - }, - Tuple(#[pin] T, U), -} - -#[pin_project(PinnedDrop)] -pub enum EnumPinnedDrop<T, U> { - Struct { - #[pin] - pinned: T, - unpinned: U, - }, - Tuple(#[pin] T, U), -} - -#[pinned_drop] -impl<T, U> PinnedDrop for EnumPinnedDrop<T, U> { - fn drop(self: Pin<&mut Self>) {} -} - -#[pin_project(Replace)] -pub enum EnumReplace<T, U> { - Struct { - #[pin] - pinned: T, - unpinned: U, - }, - Tuple(#[pin] T, U), -} - -// UnsafeUnpin without UnsafeUnpin impl is also safe -#[pin_project(UnsafeUnpin)] -pub enum EnumUnsafeUnpin<T, U> { - Struct { - #[pin] - pinned: T, - unpinned: U, - }, - Tuple(#[pin] T, U), -} - -#[pin_project(!Unpin)] -pub enum EnumNotUnpin<T, U> { - Struct { - #[pin] - pinned: T, - unpinned: U, - }, - Tuple(#[pin] T, U), -} - -#[test] -fn test() {} |