//@ edition:2018 //@ incremental use std::fs::File; use std::future::Future; use std::io::prelude::*; fn main() -> Result<(), Box> { block_on(async { { let path = std::path::Path::new("."); let mut f = File::open(path.to_str())?; //~^ ERROR the trait bound let mut src = String::new(); f.read_to_string(&mut src)?; Ok(()) } }) } fn block_on(f: F) -> F::Output where F: Future>>, { Ok(()) }