#![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:?}"); }