about summary refs log tree commit diff
path: root/tests/ui/lint/dead-code/unused-struct-derive-default.rs
blob: bfbdf57b0dcdc0b8e4dc26853707414944895f10 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#![deny(dead_code)] //~ NOTE the lint level is defined here

#[derive(Default)]
struct T; //~ ERROR struct `T` is never constructed

#[derive(Default)]
struct Used;

#[derive(Default)]
enum E { //~ NOTE variant in this enum
    #[default]
    A,
    B, //~ ERROR variant `B` is never constructed
}

// external crate can call T2::default() to construct T2,
// so that no warnings for pub adts
#[derive(Default)]
pub struct T2 {
    _unread: i32,
}

fn main() {
    let _x: Used = Default::default();
    let _e: E = Default::default();
}