| #![warn(clippy::empty_structs_with_brackets)] |
| #![allow(dead_code)] |
| |
| pub struct MyEmptyStruct; // should trigger lint |
| //~^ empty_structs_with_brackets |
| struct MyEmptyTupleStruct; // should trigger lint |
| //~^ empty_structs_with_brackets |
| |
| // should not trigger lint |
| struct MyCfgStruct { |
| #[cfg(feature = "thisisneverenabled")] |
| field: u8, |
| } |
| |
| // should not trigger lint |
| struct MyCfgTupleStruct(#[cfg(feature = "thisisneverenabled")] u8); |
| |
| // should not trigger lint |
| struct MyStruct { |
| field: u8, |
| } |
| struct MyTupleStruct(usize, String); // should not trigger lint |
| struct MySingleTupleStruct(usize); // should not trigger lint |
| struct MyUnitLikeStruct; // should not trigger lint |
| |
| macro_rules! empty_struct { |
| ($s:ident) => { |
| struct $s {} |
| }; |
| } |
| |
| empty_struct!(FromMacro); |
| |
| fn main() {} |
| |
| mod issue15349 { |
| trait Bar<T> {} |
| impl<T> Bar<T> for [u8; 7] {} |
| |
| struct Foo<const N: usize>; |
| //~^ empty_structs_with_brackets |
| impl<const N: usize> Foo<N> |
| where |
| [u8; N]: Bar<[(); N]>, |
| { |
| fn foo() {} |
| } |
| } |