]>
Commit | Line | Data |
---|---|---|
a2a8927a XL |
1 | //run-rustfix |
2 | #![warn(clippy::init_numbered_fields)] | |
3 | ||
4 | #[derive(Default)] | |
5 | struct TupleStruct(u32, u32, u8); | |
6 | ||
7 | // This shouldn't lint because it's in a macro | |
8 | macro_rules! tuple_struct_init { | |
9 | () => { | |
10 | TupleStruct { 0: 0, 1: 1, 2: 2 } | |
11 | }; | |
12 | } | |
13 | ||
14 | fn main() { | |
15 | let tuple_struct = TupleStruct::default(); | |
16 | ||
17 | // This should lint | |
18 | let _ = TupleStruct(1u32, 42, 23u8); | |
19 | ||
20 | // This should also lint and order the fields correctly | |
21 | let _ = TupleStruct(1u32, 3u32, 2u8); | |
22 | ||
23 | // Ok because of default initializer | |
24 | let _ = TupleStruct { 0: 42, ..tuple_struct }; | |
25 | ||
26 | let _ = TupleStruct { | |
27 | 1: 23, | |
28 | ..TupleStruct::default() | |
29 | }; | |
30 | ||
31 | // Ok because it's in macro | |
32 | let _ = tuple_struct_init!(); | |
04454e1e FG |
33 | |
34 | type Alias = TupleStruct; | |
35 | ||
36 | // Aliases can't be tuple constructed #8638 | |
37 | let _ = Alias { 0: 0, 1: 1, 2: 2 }; | |
a2a8927a | 38 | } |