rust/tests/ui/lint/missing-debug-implementations-lint.rs
2025-06-30 12:45:47 +05:00

41 lines
832 B
Rust

//! 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);