| // Regression test for #62517. We used to ICE when you had an `async | |
| // fn` with an `impl Trait` return that mentioned a `dyn Bar` with no | |
| // explicit lifetime bound. | |
| // | |
| // edition:2018 | |
| // check-pass | |
| trait FirstTrait {} | |
| trait SecondTrait { | |
| type Item: ?Sized; | |
| } | |
| async fn foo(x: &str) -> impl SecondTrait<Item = dyn FirstTrait> { | |
| } | |
| impl<T> SecondTrait for T { | |
| type Item = dyn FirstTrait; | |
| } | |
| fn main() { } |