aboutsummaryrefslogtreecommitdiff
path: root/rtic-common/src
diff options
context:
space:
mode:
Diffstat (limited to 'rtic-common/src')
-rw-r--r--rtic-common/src/wait_queue.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/rtic-common/src/wait_queue.rs b/rtic-common/src/wait_queue.rs
index de27710..cd42fe2 100644
--- a/rtic-common/src/wait_queue.rs
+++ b/rtic-common/src/wait_queue.rs
@@ -289,6 +289,24 @@ impl<T: core::fmt::Debug + Clone> Link<T> {
}
}
+/// Test that the future returned by `wait_until` is not `Unpin`.
+/// ```compile_fail
+/// fn test_unpin(list: &rtic_common::wait_queue::DoublyLinkedList<core::task::Waker>, cx: &mut core::task::Context) {
+/// let mut wait_until_future = list.wait_until(|| None::<()>);
+/// let pinned = core::pin::Pin::new(&mut wait_until_future);
+/// core::future::Future::poll(pinned, cx);
+/// }
+/// ```
+/// This test will ensure that previous test failed because of `pin`.
+/// ```
+/// fn test_unpin(list: &rtic_common::wait_queue::DoublyLinkedList<core::task::Waker>, cx: &mut core::task::Context) {
+/// let mut wait_until_future = list.wait_until(|| None::<()>);
+/// let pinned = core::pin::pin!(wait_until_future);
+/// core::future::Future::poll(pinned, cx);
+/// }
+/// ```
+mod compile_fail_test {}
+
#[cfg(test)]
mod tests {
use super::*;