| // check-pass | |
| // compile-flags: -Zsave-analysis | |
| // edition:2018 | |
| // Async desugaring for return types in (associated) functions introduces a | |
| // separate definition internally, which we need to take into account | |
| // (or else we ICE). | |
| trait Trait { type Assoc; } | |
| struct Struct; | |
| async fn foobar<T: Trait>() -> T::Assoc { | |
| unimplemented!() | |
| } | |
| impl Struct { | |
| async fn foo<T: Trait>(&self) -> T::Assoc { | |
| unimplemented!() | |
| } | |
| } | |
| fn main() {} |