Full list of `impl const Default` types: - () - bool - char - Cell - std::ascii::Char - usize - u8 - u16 - u32 - u64 - u128 - i8 - i16 - i32 - i64 - i128 - f16 - f32 - f64 - f128 - std::marker::PhantomData<T> - Option<T> - std::iter::Empty<T> - std::ptr::Alignment - &[T] - &mut [T] - &str - &mut str - String - Vec<T>
27 lines
538 B
Rust
27 lines
538 B
Rust
#![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();
|
|
}
|