diff options
Diffstat (limited to 'tests/ui/lint/missing-debug-implementations-lint.rs')
| -rw-r--r-- | tests/ui/lint/missing-debug-implementations-lint.rs | 40 |
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); |
