blob: 8a93f052f9c82448f893ffca7f7c0be4d69642c3 [file] [log] [blame]
//! 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);