| #![warn(clippy::init_numbered_fields)] |
| |
| #[derive(Default)] |
| struct TupleStruct(u32, u32, u8); |
| |
| // This shouldn't lint because it's in a macro |
| macro_rules! tuple_struct_init { |
| () => { |
| TupleStruct { 0: 0, 1: 1, 2: 2 } |
| }; |
| } |
| |
| fn main() { |
| let tuple_struct = TupleStruct::default(); |
| |
| // This should lint |
| let _ = TupleStruct(1u32, 42, 23u8); |
| |
| // This should also lint and order the fields correctly |
| let _ = TupleStruct(1u32, 3u32, 2u8); |
| |
| // Ok because of default initializer |
| let _ = TupleStruct { 0: 42, ..tuple_struct }; |
| |
| let _ = TupleStruct { |
| 1: 23, |
| ..TupleStruct::default() |
| }; |
| |
| // Ok because it's in macro |
| let _ = tuple_struct_init!(); |
| |
| type Alias = TupleStruct; |
| |
| // Aliases can't be tuple constructed #8638 |
| let _ = Alias { 0: 0, 1: 1, 2: 2 }; |
| } |