Lines Matching full:pinned
72 //! This macro is used to specify which fields are structurally pinned and which fields are not. It
153 //! // Now we only want to implement `Unpin` for `Bar` when every structurally pinned field is
154 //! // `Unpin`. In other words, whether `Bar` is `Unpin` only depends on structurally pinned
178 //! // access to `&mut self` inside of `drop` even if the struct was pinned. This could lead to
394 //! let pinned = unsafe { ::core::pin::Pin::new_unchecked(self) };
398 //! ::kernel::init::PinnedDrop::drop(pinned, token);
526 /// This macro first parses the struct definition such that it separates pinned and not pinned
545 // identify fields marked with `#[pin]`, these fields are the 'pinned fields'. The user
546 // wants these to be structurally pinned. The rest of the fields are the
547 // 'not pinned fields'. Additionally we collect all fields, since we need them in the right
572 // The pinned fields.
573 @pinned(),
574 // The not pinned fields.
594 // We found a PhantomPinned field, this should generally be pinned!
596 @pinned($($pinned:tt)*),
600 // This field is not pinned.
618 @pinned($($pinned)* $($accum)* $field: ::core::marker::PhantomPinned,),
636 @pinned($($pinned:tt)*),
640 // This field is pinned.
653 @pinned($($pinned)* $($accum)* $field: $type,),
671 @pinned($($pinned:tt)*),
675 // This field is not pinned.
688 @pinned($($pinned)*),
706 @pinned($($pinned:tt)*),
724 @pinned($($pinned)*),
744 @pinned($($pinned:tt)*),
760 @pinned($($pinned)*),
778 @pinned($($pinned:tt)*),
794 @pinned($($pinned)*),
813 @pinned($($pinned:tt)*),
858 @pinned($($pinned)*),
882 // This struct will be used for the unpin analysis. Since only structurally pinned
892 // Only the pinned fields.
893 $($pinned)*
955 let pinned = unsafe { ::core::pin::Pin::new_unchecked(self) }; localVariable
957 // pinned destructor of this type.
959 $crate::init::PinnedDrop::drop(pinned, token);
981 @pinned($($(#[$($p_attr:tt)*])* $pvis:vis $p_field:ident : $p_type:ty),* $(,)?),
985 // field is structurally pinned, then it must be initialized via `PinInit`, if it is not
986 // structurally pinned, then it can be initialized via `Init`.