9f03cfc207
This was previously needed because the indirection used to hide some unexplained lifetime errors, which it turned out were related to the `min_choice` algorithm. Removing the indirection also solves a couple of cycle errors, large moves and makes async blocks support the `#[track_caller]` annotation.
22 lines
304 B
Rust
22 lines
304 B
Rust
// edition:2021
|
|
// known-bug: #108304
|
|
|
|
#![feature(async_fn_in_trait, return_position_impl_trait_in_trait)]
|
|
#![allow(incomplete_features)]
|
|
|
|
use std::fmt::Debug;
|
|
|
|
trait Foo {
|
|
async fn baz(&self) -> impl Debug {
|
|
""
|
|
}
|
|
}
|
|
|
|
struct Bar;
|
|
|
|
impl Foo for Bar {}
|
|
|
|
fn main() {
|
|
let _ = Bar.baz();
|
|
}
|