]> git.proxmox.com Git - rustc.git/blame - src/tools/clippy/tests/ui/dbg_macro.rs
New upstream version 1.75.0+dfsg1
[rustc.git] / src / tools / clippy / tests / ui / dbg_macro.rs
CommitLineData
781aab86
FG
1//@no-rustfix
2
f20569fa
XL
3#![warn(clippy::dbg_macro)]
4
5fn foo(n: u32) -> u32 {
6 if let Some(n) = dbg!(n.checked_sub(4)) { n } else { n }
781aab86
FG
7 //~^ ERROR: the `dbg!` macro is intended as a debugging tool
8 //~| NOTE: `-D clippy::dbg-macro` implied by `-D warnings`
f20569fa 9}
49aad941 10fn bar(_: ()) {}
f20569fa
XL
11
12fn factorial(n: u32) -> u32 {
13 if dbg!(n <= 1) {
781aab86 14 //~^ ERROR: the `dbg!` macro is intended as a debugging tool
f20569fa 15 dbg!(1)
781aab86 16 //~^ ERROR: the `dbg!` macro is intended as a debugging tool
f20569fa
XL
17 } else {
18 dbg!(n * factorial(n - 1))
781aab86 19 //~^ ERROR: the `dbg!` macro is intended as a debugging tool
f20569fa
XL
20 }
21}
22
23fn main() {
24 dbg!(42);
781aab86 25 //~^ ERROR: the `dbg!` macro is intended as a debugging tool
f20569fa 26 dbg!(dbg!(dbg!(42)));
781aab86 27 //~^ ERROR: the `dbg!` macro is intended as a debugging tool
f20569fa 28 foo(3) + dbg!(factorial(4));
781aab86 29 //~^ ERROR: the `dbg!` macro is intended as a debugging tool
5e7ed085 30 dbg!(1, 2, dbg!(3, 4));
781aab86 31 //~^ ERROR: the `dbg!` macro is intended as a debugging tool
5e7ed085 32 dbg!(1, 2, 3, 4, 5);
781aab86 33 //~^ ERROR: the `dbg!` macro is intended as a debugging tool
5e7ed085
FG
34}
35
49aad941
FG
36fn issue9914() {
37 macro_rules! foo {
38 ($x:expr) => {
39 $x;
40 };
41 }
42 macro_rules! foo2 {
43 ($x:expr) => {
44 $x;
45 };
46 }
47 macro_rules! expand_to_dbg {
48 () => {
49 dbg!();
50 };
51 }
52
53 dbg!();
781aab86 54 //~^ ERROR: the `dbg!` macro is intended as a debugging tool
49aad941
FG
55 #[allow(clippy::let_unit_value)]
56 let _ = dbg!();
781aab86 57 //~^ ERROR: the `dbg!` macro is intended as a debugging tool
49aad941 58 bar(dbg!());
781aab86 59 //~^ ERROR: the `dbg!` macro is intended as a debugging tool
49aad941 60 foo!(dbg!());
781aab86 61 //~^ ERROR: the `dbg!` macro is intended as a debugging tool
49aad941 62 foo2!(foo!(dbg!()));
781aab86 63 //~^ ERROR: the `dbg!` macro is intended as a debugging tool
49aad941
FG
64 expand_to_dbg!();
65}
66
5e7ed085
FG
67mod issue7274 {
68 trait Thing<'b> {
69 fn foo(&self);
70 }
71
72 macro_rules! define_thing {
73 ($thing:ident, $body:expr) => {
74 impl<'a> Thing<'a> for $thing {
75 fn foo<'b>(&self) {
76 $body
77 }
78 }
79 };
80 }
81
82 struct MyThing;
83 define_thing!(MyThing, {
84 dbg!(2);
781aab86 85 //~^ ERROR: the `dbg!` macro is intended as a debugging tool
5e7ed085
FG
86 });
87}
88
89#[test]
90pub fn issue8481() {
91 dbg!(1);
781aab86 92 //~^ ERROR: the `dbg!` macro is intended as a debugging tool
f20569fa 93}
923072b8
FG
94
95#[cfg(test)]
96fn foo2() {
97 dbg!(1);
781aab86 98 //~^ ERROR: the `dbg!` macro is intended as a debugging tool
923072b8
FG
99}
100
101#[cfg(test)]
102mod mod1 {
103 fn func() {
104 dbg!(1);
781aab86 105 //~^ ERROR: the `dbg!` macro is intended as a debugging tool
923072b8
FG
106 }
107}