| //@ revisions: current next |
| //@ ignore-compare-mode-next-solver (explicit revisions) |
| //@[next] compile-flags: -Znext-solver |
| // This test verifies that we do not create a query cycle when typechecking has several inference |
| // variables that point to the same coroutine interior type. |
| use std::task::{Context, Poll}; |
| type ChannelTask = Pin<Box<dyn Future<Output = ()> + Send>>; |
| pub fn register_message_type() -> ChannelTask { |
| let f = |__cx: &mut Context<'_>| Poll::<()>::Pending; |
| impl<F> Unpin for PollFn<F> {} |
| impl<T, F> Future for PollFn<F> |
| F: FnMut(&mut Context<'_>) -> Poll<T>, |
| fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<T> { |