Rollup merge of #56761 - estebank:path-display, r=zackmdavis
Suggest using `.display()` when trying to print a `Path` Fix #38997.
This commit is contained in:
commit
c52a13dcdf
3 changed files with 28 additions and 2 deletions
|
|
@ -609,10 +609,15 @@ pub trait Debug {
|
|||
/// println!("The origin is: {}", origin);
|
||||
/// ```
|
||||
#[rustc_on_unimplemented(
|
||||
on(
|
||||
_Self="std::path::Path",
|
||||
label="`{Self}` cannot be formatted with the default formatter; call `.display()` on it",
|
||||
note="call `.display()` or `.to_string_lossy()` to safely print paths, \
|
||||
as they may contain non-Unicode data"
|
||||
),
|
||||
message="`{Self}` doesn't implement `{Display}`",
|
||||
label="`{Self}` cannot be formatted with the default formatter",
|
||||
note="in format strings you may be able to use `{{:?}}` \
|
||||
(or {{:#?}} for pretty-print) instead",
|
||||
note="in format strings you may be able to use `{{:?}}` (or {{:#?}} for pretty-print) instead",
|
||||
)]
|
||||
#[doc(alias = "{}")]
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
|
|
|
|||
7
src/test/ui/suggestions/path-display.rs
Normal file
7
src/test/ui/suggestions/path-display.rs
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
use std::path::Path;
|
||||
|
||||
fn main() {
|
||||
let path = Path::new("/tmp/foo/bar.txt");
|
||||
println!("{}", path);
|
||||
//~^ ERROR E0277
|
||||
}
|
||||
14
src/test/ui/suggestions/path-display.stderr
Normal file
14
src/test/ui/suggestions/path-display.stderr
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
error[E0277]: `std::path::Path` doesn't implement `std::fmt::Display`
|
||||
--> $DIR/path-display.rs:5:20
|
||||
|
|
||||
LL | println!("{}", path);
|
||||
| ^^^^ `std::path::Path` cannot be formatted with the default formatter; call `.display()` on it
|
||||
|
|
||||
= help: the trait `std::fmt::Display` is not implemented for `std::path::Path`
|
||||
= note: call `.display()` or `.to_string_lossy()` to safely print paths, as they may contain non-Unicode data
|
||||
= note: required because of the requirements on the impl of `std::fmt::Display` for `&std::path::Path`
|
||||
= note: required by `std::fmt::Display::fmt`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0277`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue