Skip to content

Commit f31d82e

Browse files
committed
Added error when implementing PinnedDrop without #[pin_project(PinnedDrop)]
1 parent ce8409b commit f31d82e

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

rust/kernel/init.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -628,7 +628,7 @@ where
628628
/// ```rust
629629
/// # use kernel::sync::Mutex;
630630
/// use kernel::macros::pinned_drop;
631-
/// #[pin_project]
631+
/// #[pin_project(PinnedDrop)]
632632
/// struct Foo {
633633
/// #[pin]
634634
/// mtx: Mutex<usize>,

rust/kernel/init/pin_project.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,13 @@ macro_rules! pin_project {
288288
impl<$($impl_generics)*> MustNotImplDrop for $name<$($ty_generics)*>
289289
where $($whr)*
290290
{}
291+
#[allow(non_camel_case_types)]
292+
trait UselessPinnedDropImpl_you_need_to_specify_PinnedDrop {}
293+
impl<T: $crate::init::PinnedDrop> UselessPinnedDropImpl_you_need_to_specify_PinnedDrop for T {}
294+
impl<$($impl_generics)*> UselessPinnedDropImpl_you_need_to_specify_PinnedDrop for $name<$($ty_generics)*>
295+
where
296+
$($whr)*
297+
{}
291298
};
292299
(drop_prevention:
293300
@name($name:ident),

0 commit comments

Comments
 (0)