| #![warn(clippy::print_in_format_impl)] | |
| use std::fmt::{Debug, Display, Error, Formatter}; | |
| //@no-rustfix | |
| macro_rules! indirect { | |
| () => {{ println!() }}; | |
| } | |
| macro_rules! nested { | |
| ($($tt:tt)*) => { | |
| $($tt)* | |
| }; | |
| } | |
| struct Foo; | |
| impl Debug for Foo { | |
| fn fmt(&self, f: &mut Formatter) -> Result<(), Error> { | |
| static WORKS_WITH_NESTED_ITEMS: bool = true; | |
| print!("{}", 1); | |
| //~^ print_in_format_impl | |
| println!("{}", 2); | |
| //~^ print_in_format_impl | |
| eprint!("{}", 3); | |
| //~^ print_in_format_impl | |
| eprintln!("{}", 4); | |
| //~^ print_in_format_impl | |
| nested! { | |
| println!("nested"); | |
| //~^ print_in_format_impl | |
| }; | |
| write!(f, "{}", 5); | |
| writeln!(f, "{}", 6); | |
| indirect!(); | |
| Ok(()) | |
| } | |
| } | |
| impl Display for Foo { | |
| fn fmt(&self, f: &mut Formatter) -> Result<(), Error> { | |
| print!("Display"); | |
| //~^ print_in_format_impl | |
| write!(f, "Display"); | |
| Ok(()) | |
| } | |
| } | |
| struct UnnamedFormatter; | |
| impl Debug for UnnamedFormatter { | |
| fn fmt(&self, _: &mut Formatter) -> Result<(), Error> { | |
| println!("UnnamedFormatter"); | |
| //~^ print_in_format_impl | |
| Ok(()) | |
| } | |
| } | |
| fn main() { | |
| print!("outside fmt"); | |
| println!("outside fmt"); | |
| eprint!("outside fmt"); | |
| eprintln!("outside fmt"); | |
| } |