// 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 {<S as T>::Future, ()} | |
//@ check-pass | |
//@ edition:2018 | |
use std::future::Future; | |
pub trait T { | |
type Future: Future<Output = String>; | |
fn bar() -> Self::Future; | |
} | |
pub async fn foo<S>() where S: T { | |
S::bar().await; | |
S::bar().await; | |
} | |
pub fn main() {} |