summaryrefslogtreecommitdiffstats
path: root/src/tools/clippy/tests/ui/dbg_macro
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/clippy/tests/ui/dbg_macro')
-rw-r--r--src/tools/clippy/tests/ui/dbg_macro/auxiliary/submodule.rs3
-rw-r--r--src/tools/clippy/tests/ui/dbg_macro/dbg_macro.rs109
-rw-r--r--src/tools/clippy/tests/ui/dbg_macro/dbg_macro.stderr215
3 files changed, 327 insertions, 0 deletions
diff --git a/src/tools/clippy/tests/ui/dbg_macro/auxiliary/submodule.rs b/src/tools/clippy/tests/ui/dbg_macro/auxiliary/submodule.rs
new file mode 100644
index 000000000..b1df24737
--- /dev/null
+++ b/src/tools/clippy/tests/ui/dbg_macro/auxiliary/submodule.rs
@@ -0,0 +1,3 @@
+fn f() {
+ dbg!();
+}
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
+ }
+}
diff --git a/src/tools/clippy/tests/ui/dbg_macro/dbg_macro.stderr b/src/tools/clippy/tests/ui/dbg_macro/dbg_macro.stderr
new file mode 100644
index 000000000..4d00421c7
--- /dev/null
+++ b/src/tools/clippy/tests/ui/dbg_macro/dbg_macro.stderr
@@ -0,0 +1,215 @@
+error: the `dbg!` macro is intended as a debugging tool
+ --> $DIR/auxiliary/submodule.rs:2:5
+ |
+LL | dbg!();
+ | ^^^^^^^
+ |
+ = note: `-D clippy::dbg-macro` implied by `-D warnings`
+ = help: to override `-D warnings` add `#[allow(clippy::dbg_macro)]`
+help: remove the invocation before committing it to a version control system
+ |
+LL - dbg!();
+LL +
+ |
+
+error: the `dbg!` macro is intended as a debugging tool
+ --> $DIR/dbg_macro.rs:9:22
+ |
+LL | if let Some(n) = dbg!(n.checked_sub(4)) { n } else { n }
+ | ^^^^^^^^^^^^^^^^^^^^^^
+ |
+help: remove the invocation before committing it to a version control system
+ |
+LL | if let Some(n) = n.checked_sub(4) { n } else { n }
+ | ~~~~~~~~~~~~~~~~
+
+error: the `dbg!` macro is intended as a debugging tool
+ --> $DIR/dbg_macro.rs:15:8
+ |
+LL | if dbg!(n <= 1) {
+ | ^^^^^^^^^^^^
+ |
+help: remove the invocation before committing it to a version control system
+ |
+LL | if n <= 1 {
+ | ~~~~~~
+
+error: the `dbg!` macro is intended as a debugging tool
+ --> $DIR/dbg_macro.rs:17:9
+ |
+LL | dbg!(1)
+ | ^^^^^^^
+ |
+help: remove the invocation before committing it to a version control system
+ |
+LL | 1
+ |
+
+error: the `dbg!` macro is intended as a debugging tool
+ --> $DIR/dbg_macro.rs:20:9
+ |
+LL | dbg!(n * factorial(n - 1))
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^
+ |
+help: remove the invocation before committing it to a version control system
+ |
+LL | n * factorial(n - 1)
+ |
+
+error: the `dbg!` macro is intended as a debugging tool
+ --> $DIR/dbg_macro.rs:26:5
+ |
+LL | dbg!(42);
+ | ^^^^^^^^
+ |
+help: remove the invocation before committing it to a version control system
+ |
+LL | 42;
+ | ~~
+
+error: the `dbg!` macro is intended as a debugging tool
+ --> $DIR/dbg_macro.rs:28:5
+ |
+LL | dbg!(dbg!(dbg!(42)));
+ | ^^^^^^^^^^^^^^^^^^^^
+ |
+help: remove the invocation before committing it to a version control system
+ |
+LL | dbg!(dbg!(42));
+ | ~~~~~~~~~~~~~~
+
+error: the `dbg!` macro is intended as a debugging tool
+ --> $DIR/dbg_macro.rs:30:14
+ |
+LL | foo(3) + dbg!(factorial(4));
+ | ^^^^^^^^^^^^^^^^^^
+ |
+help: remove the invocation before committing it to a version control system
+ |
+LL | foo(3) + factorial(4);
+ | ~~~~~~~~~~~~
+
+error: the `dbg!` macro is intended as a debugging tool
+ --> $DIR/dbg_macro.rs:32:5
+ |
+LL | dbg!(1, 2, dbg!(3, 4));
+ | ^^^^^^^^^^^^^^^^^^^^^^
+ |
+help: remove the invocation before committing it to a version control system
+ |
+LL | (1, 2, dbg!(3, 4));
+ | ~~~~~~~~~~~~~~~~~~
+
+error: the `dbg!` macro is intended as a debugging tool
+ --> $DIR/dbg_macro.rs:34:5
+ |
+LL | dbg!(1, 2, 3, 4, 5);
+ | ^^^^^^^^^^^^^^^^^^^
+ |
+help: remove the invocation before committing it to a version control system
+ |
+LL | (1, 2, 3, 4, 5);
+ | ~~~~~~~~~~~~~~~
+
+error: the `dbg!` macro is intended as a debugging tool
+ --> $DIR/dbg_macro.rs:55:5
+ |
+LL | dbg!();
+ | ^^^^^^^
+ |
+help: remove the invocation before committing it to a version control system
+ |
+LL - dbg!();
+LL +
+ |
+
+error: the `dbg!` macro is intended as a debugging tool
+ --> $DIR/dbg_macro.rs:58:13
+ |
+LL | let _ = dbg!();
+ | ^^^^^^
+ |
+help: remove the invocation before committing it to a version control system
+ |
+LL | let _ = ();
+ | ~~
+
+error: the `dbg!` macro is intended as a debugging tool
+ --> $DIR/dbg_macro.rs:60:9
+ |
+LL | bar(dbg!());
+ | ^^^^^^
+ |
+help: remove the invocation before committing it to a version control system
+ |
+LL | bar(());
+ | ~~
+
+error: the `dbg!` macro is intended as a debugging tool
+ --> $DIR/dbg_macro.rs:62:10
+ |
+LL | foo!(dbg!());
+ | ^^^^^^
+ |
+help: remove the invocation before committing it to a version control system
+ |
+LL | foo!(());
+ | ~~
+
+error: the `dbg!` macro is intended as a debugging tool
+ --> $DIR/dbg_macro.rs:64:16
+ |
+LL | foo2!(foo!(dbg!()));
+ | ^^^^^^
+ |
+help: remove the invocation before committing it to a version control system
+ |
+LL | foo2!(foo!(()));
+ | ~~
+
+error: the `dbg!` macro is intended as a debugging tool
+ --> $DIR/dbg_macro.rs:86:9
+ |
+LL | dbg!(2);
+ | ^^^^^^^
+ |
+help: remove the invocation before committing it to a version control system
+ |
+LL | 2;
+ | ~
+
+error: the `dbg!` macro is intended as a debugging tool
+ --> $DIR/dbg_macro.rs:93:5
+ |
+LL | dbg!(1);
+ | ^^^^^^^
+ |
+help: remove the invocation before committing it to a version control system
+ |
+LL | 1;
+ | ~
+
+error: the `dbg!` macro is intended as a debugging tool
+ --> $DIR/dbg_macro.rs:99:5
+ |
+LL | dbg!(1);
+ | ^^^^^^^
+ |
+help: remove the invocation before committing it to a version control system
+ |
+LL | 1;
+ | ~
+
+error: the `dbg!` macro is intended as a debugging tool
+ --> $DIR/dbg_macro.rs:106:9
+ |
+LL | dbg!(1);
+ | ^^^^^^^
+ |
+help: remove the invocation before committing it to a version control system
+ |
+LL | 1;
+ | ~
+
+error: aborting due to 19 previous errors
+