···7474 // this is safe because futures_core::Future are isolated
7575 // from core::future::Future impls and guaranteed to have
7676 // their cx.wakers represented in the nonstandard format
7777- unsafe { wake_array.register_parent(futures_compat::waker_to_guard(cx.waker())) }
7777+ wake_array.register_parent(unsafe { futures_compat::waker_to_guard(cx.waker()) });
78787979 let mut ready = true;
8080···86868787 // ready if MaybeDone is Done or just completed (converted to Done)
8888 // unsafe / against Future api contract to poll after Gone/Future is finished
8989- ready &= if unsafe { wake_array.take_woken(index).unwrap_unchecked() } {
8989+ ready &= if unsafe { dbg!(wake_array.take_woken(index).unwrap_unchecked()) } {
9090 $F.as_mut().poll(&mut child_cx).is_ready()
9191 } else {
9292 $F.is_terminated()
···150150 use crate::wake::{DummyWaker, wake_bespoke_waker};
151151152152 use super::*;
153153- use std::cell::Cell;
153153+154154 use std::future::poll_fn;
155155 use std::pin;
156156 use std::ptr::NonNull;
···189189 )
190190 }
191191 .join();
192192- let mut pinned = unsafe { Pin::new_unchecked(&mut join) };
192192+ let mut pinned = pin::pin!(join);
193193 for _ in 0..4 {
194194 assert_eq!(pinned.as_mut().poll(&mut cx), Poll::Pending);
195195 }