]> git.lizzy.rs Git - rust.git/blob - src/tools/clippy/tests/ui/numbered_fields.rs
Auto merge of #95685 - oxidecomputer:restore-static-dwarf, r=pnkfelix
[rust.git] / src / tools / clippy / tests / ui / numbered_fields.rs
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 {
19         0: 1u32,
20         1: 42,
21         2: 23u8,
22     };
23
24     // This should also lint and order the fields correctly
25     let _ = TupleStruct {
26         0: 1u32,
27         2: 2u8,
28         1: 3u32,
29     };
30
31     // Ok because of default initializer
32     let _ = TupleStruct { 0: 42, ..tuple_struct };
33
34     let _ = TupleStruct {
35         1: 23,
36         ..TupleStruct::default()
37     };
38
39     // Ok because it's in macro
40     let _ = tuple_struct_init!();
41
42     type Alias = TupleStruct;
43
44     // Aliases can't be tuple constructed #8638
45     let _ = Alias { 0: 0, 1: 1, 2: 2 };
46 }