Bless tests.
This commit is contained in:
parent
60e04d1e8c
commit
0e52a671d4
86 changed files with 644 additions and 1694 deletions
37
tests/ui/async-await/send-bound-async-closure.rs
Normal file
37
tests/ui/async-await/send-bound-async-closure.rs
Normal file
|
@ -0,0 +1,37 @@
|
|||
// edition: 2021
|
||||
// check-pass
|
||||
|
||||
// This test verifies that we do not create a query cycle when typechecking has several inference
|
||||
// variables that point to the same generator interior type.
|
||||
|
||||
use std::future::Future;
|
||||
use std::pin::Pin;
|
||||
use std::task::{Context, Poll};
|
||||
|
||||
type ChannelTask = Pin<Box<dyn Future<Output = ()> + Send>>;
|
||||
|
||||
pub fn register_message_type() -> ChannelTask {
|
||||
Box::pin(async move {
|
||||
let f = |__cx: &mut Context<'_>| Poll::<()>::Pending;
|
||||
PollFn { f }.await
|
||||
})
|
||||
}
|
||||
|
||||
struct PollFn<F> {
|
||||
f: F,
|
||||
}
|
||||
|
||||
impl<F> Unpin for PollFn<F> {}
|
||||
|
||||
impl<T, F> Future for PollFn<F>
|
||||
where
|
||||
F: FnMut(&mut Context<'_>) -> Poll<T>,
|
||||
{
|
||||
type Output = T;
|
||||
|
||||
fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<T> {
|
||||
(&mut self.f)(cx)
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {}
|
Loading…
Add table
Add a link
Reference in a new issue