// edition:2018
+// compile-flags:-Cincremental=tmp/issue-72442
use std::fs::File;
use std::future::Future;
{
let path = std::path::Path::new(".");
let mut f = File::open(path.to_str())?;
- //~^ ERROR the trait bound `std::option::Option<&str>: std::convert::AsRef<std::path::Path>` is not satisfied
+ //~^ ERROR the trait bound
let mut src = String::new();
f.read_to_string(&mut src)?;
Ok(())
--- /dev/null
+error[E0277]: the trait bound `std::option::Option<&str>: std::convert::AsRef<std::path::Path>` is not satisfied
+ --> $DIR/issue-72442.rs:12:36
+ |
+LL | let mut f = File::open(path.to_str())?;
+ | ^^^^^^^^^^^^^ the trait `std::convert::AsRef<std::path::Path>` is not implemented for `std::option::Option<&str>`
+ |
+ ::: $SRC_DIR/libstd/fs.rs:LL:COL
+ |
+LL | pub fn open<P: AsRef<Path>>(path: P) -> io::Result<File> {
+ | ----------- required by this bound in `std::fs::File::open`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.