| #![warn(clippy::unnecessary_debug_formatting)] | |
| #![allow(clippy::uninlined_format_args)] | |
| use std::ffi::{OsStr, OsString}; | |
| use std::ops::Deref; | |
| use std::path::{Path, PathBuf}; | |
| struct DerefPath<'a> { | |
| path: &'a Path, | |
| } | |
| impl Deref for DerefPath<'_> { | |
| type Target = Path; | |
| fn deref(&self) -> &Self::Target { | |
| self.path | |
| } | |
| } | |
| fn main() { | |
| let path = Path::new("/a/b/c"); | |
| let path_buf = path.to_path_buf(); | |
| let os_str = OsStr::new("abc"); | |
| let os_string = os_str.to_os_string(); | |
| // negative tests | |
| println!("{}", path.display()); | |
| println!("{}", path_buf.display()); | |
| // positive tests | |
| println!("{:?}", os_str); //~ unnecessary_debug_formatting | |
| println!("{:?}", os_string); //~ unnecessary_debug_formatting | |
| println!("{:?}", path); //~ unnecessary_debug_formatting | |
| println!("{:?}", path_buf); //~ unnecessary_debug_formatting | |
| println!("{path:?}"); //~ unnecessary_debug_formatting | |
| println!("{path_buf:?}"); //~ unnecessary_debug_formatting | |
| let _: String = format!("{:?}", path); //~ unnecessary_debug_formatting | |
| let _: String = format!("{:?}", path_buf); //~ unnecessary_debug_formatting | |
| let deref_path = DerefPath { path }; | |
| println!("{:?}", &*deref_path); //~ unnecessary_debug_formatting | |
| } | |
| #[test] | |
| fn issue_14345() { | |
| let input = std::path::Path::new("/foo/bar"); | |
| assert!(input.ends_with("baz"), "{input:?}"); | |
| } |