summaryrefslogtreecommitdiffstats
path: root/src/tools/clippy/tests/ui/dbg_macro/dbg_macro.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/clippy/tests/ui/dbg_macro/dbg_macro.rs')
-rw-r--r--src/tools/clippy/tests/ui/dbg_macro/dbg_macro.rs109
1 files changed, 109 insertions, 0 deletions
diff --git a/src/tools/clippy/tests/ui/dbg_macro/dbg_macro.rs b/src/tools/clippy/tests/ui/dbg_macro/dbg_macro.rs
new file mode 100644
index 000000000..3f4770c63
--- /dev/null
+++ b/src/tools/clippy/tests/ui/dbg_macro/dbg_macro.rs
@@ -0,0 +1,109 @@
+//@no-rustfix
+
+#![warn(clippy::dbg_macro)]
+
+#[path = "auxiliary/submodule.rs"]
+mod submodule;
+
+fn foo(n: u32) -> u32 {
+ if let Some(n) = dbg!(n.checked_sub(4)) { n } else { n }
+ //~^ ERROR: the `dbg!` macro is intended as a debugging tool
+}
+fn bar(_: ()) {}
+
+fn factorial(n: u32) -> u32 {
+ if dbg!(n <= 1) {
+ //~^ ERROR: the `dbg!` macro is intended as a debugging tool
+ dbg!(1)
+ //~^ ERROR: the `dbg!` macro is intended as a debugging tool
+ } else {
+ dbg!(n * factorial(n - 1))
+ //~^ ERROR: the `dbg!` macro is intended as a debugging tool
+ }
+}
+
+fn main() {
+ dbg!(42);
+ //~^ ERROR: the `dbg!` macro is intended as a debugging tool
+ dbg!(dbg!(dbg!(42)));
+ //~^ ERROR: the `dbg!` macro is intended as a debugging tool
+ foo(3) + dbg!(factorial(4));
+ //~^ ERROR: the `dbg!` macro is intended as a debugging tool
+ dbg!(1, 2, dbg!(3, 4));
+ //~^ ERROR: the `dbg!` macro is intended as a debugging tool
+ dbg!(1, 2, 3, 4, 5);
+ //~^ ERROR: the `dbg!` macro is intended as a debugging tool
+}
+
+fn issue9914() {
+ macro_rules! foo {
+ ($x:expr) => {
+ $x;
+ };
+ }
+ macro_rules! foo2 {
+ ($x:expr) => {
+ $x;
+ };
+ }
+ macro_rules! expand_to_dbg {
+ () => {
+ dbg!();
+ };
+ }
+
+ dbg!();
+ //~^ ERROR: the `dbg!` macro is intended as a debugging tool
+ #[allow(clippy::let_unit_value)]
+ let _ = dbg!();
+ //~^ ERROR: the `dbg!` macro is intended as a debugging tool
+ bar(dbg!());
+ //~^ ERROR: the `dbg!` macro is intended as a debugging tool
+ foo!(dbg!());
+ //~^ ERROR: the `dbg!` macro is intended as a debugging tool
+ foo2!(foo!(dbg!()));
+ //~^ ERROR: the `dbg!` macro is intended as a debugging tool
+ expand_to_dbg!();
+}
+
+mod issue7274 {
+ trait Thing<'b> {
+ fn foo(&self);
+ }
+
+ macro_rules! define_thing {
+ ($thing:ident, $body:expr) => {
+ impl<'a> Thing<'a> for $thing {
+ fn foo<'b>(&self) {
+ $body
+ }
+ }
+ };
+ }
+
+ struct MyThing;
+ define_thing!(MyThing, {
+ dbg!(2);
+ //~^ ERROR: the `dbg!` macro is intended as a debugging tool
+ });
+}
+
+#[test]
+pub fn issue8481() {
+ dbg!(1);
+ //~^ ERROR: the `dbg!` macro is intended as a debugging tool
+}
+
+#[cfg(test)]
+fn foo2() {
+ dbg!(1);
+ //~^ ERROR: the `dbg!` macro is intended as a debugging tool
+}
+
+#[cfg(test)]
+mod mod1 {
+ fn func() {
+ dbg!(1);
+ //~^ ERROR: the `dbg!` macro is intended as a debugging tool
+ }
+}