about summary refs log tree commit diff
path: root/tests/ui/lint/missing-debug-implementations-lint.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2025-06-30 14:28:58 +0000
committerbors <bors@rust-lang.org>2025-06-30 14:28:58 +0000
commitc65dccabacdfd6c8a7f7439eba13422fdd89b91e (patch)
tree6ebe9f9850150cd48069e0bad639dc5d55660e99 /tests/ui/lint/missing-debug-implementations-lint.rs
parentad3b7257615c28aaf8212a189ec032b8af75de51 (diff)
parentc2904f7476b4558633a301aec9bbfedb0af0b501 (diff)
Auto merge of #143233 - dianqk:rollup-lcx3278, r=dianqk
Rollup of 14 pull requests

Successful merges:

 - rust-lang/rust#142429 (`tests/ui`: A New Order [13/N])
 - rust-lang/rust#142514 (Miri: handling of SNaN inputs in `f*::pow` operations)
 - rust-lang/rust#143066 (Use let chains in the new solver)
 - rust-lang/rust#143090 (Workaround for memory unsafety in third party DLLs)
 - rust-lang/rust#143118 (`tests/ui`: A New Order [15/N])
 - rust-lang/rust#143159 (Do not freshen `ReError`)
 - rust-lang/rust#143168 (`tests/ui`: A New Order [16/N])
 - rust-lang/rust#143176 (fix typos and improve clarity in documentation)
 - rust-lang/rust#143187 (Add my work email to mailmap)
 - rust-lang/rust#143190 (Use the `new` method for `BasicBlockData` and `Statement`)
 - rust-lang/rust#143195 (`tests/ui`: A New Order [17/N])
 - rust-lang/rust#143196 (Port #[link_section] to the new attribute parsing infrastructure)
 - rust-lang/rust#143199 (Re-disable `tests/run-make/short-ice` on Windows MSVC again)
 - rust-lang/rust#143219 (Show auto trait and blanket impls for `!`)

r? `@ghost`
`@rustbot` modify labels: rollup
Diffstat (limited to 'tests/ui/lint/missing-debug-implementations-lint.rs')
-rw-r--r--tests/ui/lint/missing-debug-implementations-lint.rs40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/ui/lint/missing-debug-implementations-lint.rs b/tests/ui/lint/missing-debug-implementations-lint.rs
new file mode 100644
index 00000000000..8a93f052f9c
--- /dev/null
+++ b/tests/ui/lint/missing-debug-implementations-lint.rs
@@ -0,0 +1,40 @@
+//! Test the `missing_debug_implementations` lint that warns about public types without Debug.
+//!
+//! See https://github.com/rust-lang/rust/issues/20855
+
+//@ compile-flags: --crate-type lib
+#![deny(missing_debug_implementations)]
+#![allow(unused)]
+
+use std::fmt;
+
+pub enum A {} //~ ERROR type does not implement `Debug`
+
+#[derive(Debug)]
+pub enum B {}
+
+pub enum C {}
+impl fmt::Debug for C {
+    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
+        Ok(())
+    }
+}
+
+pub struct Foo; //~ ERROR type does not implement `Debug`
+
+#[derive(Debug)]
+pub struct Bar;
+
+pub struct Baz;
+impl fmt::Debug for Baz {
+    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
+        Ok(())
+    }
+}
+
+// Private types should not trigger the lint
+struct PrivateStruct;
+enum PrivateEnum {}
+
+#[derive(Debug)]
+pub struct GenericType<T>(T);