// Output = String caused an ICE whereas Output = &'static str compiled successfully. // Broken MIR: coroutine contains type std::string::String in MIR, // but typeck only knows about {::Future, ()} //@ check-pass //@ edition:2018 use std::future::Future; pub trait T { type Future: Future; fn bar() -> Self::Future; } pub async fn foo() where S: T { S::bar().await; S::bar().await; } pub fn main() {}