2024-11-16 20:18:13 +00:00
|
|
|
//@ edition: 2021
|
2025-03-18 16:17:18 +00:00
|
|
|
//@ known-bug: #133119
|
2024-11-16 20:18:13 +00:00
|
|
|
|
|
|
|
#![feature(async_fn_in_dyn_trait)]
|
|
|
|
|
|
|
|
use std::future::Future;
|
|
|
|
|
|
|
|
trait AsyncTrait {
|
|
|
|
async fn async_dispatch(&self);
|
|
|
|
}
|
|
|
|
|
|
|
|
impl AsyncTrait for &'static str {
|
|
|
|
fn async_dispatch(&self) -> impl Future<Output = ()> {
|
|
|
|
async move {
|
|
|
|
// The implementor must box the future...
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
let x: &dyn AsyncTrait = &"hello, world!";
|
2025-03-18 16:17:18 +00:00
|
|
|
// FIXME ~^ ERROR `impl Future<Output = ()>` needs to have the same ABI as a pointer
|
2024-11-16 20:18:13 +00:00
|
|
|
}
|