]> git.lizzy.rs Git - rust.git/blob - tests/ui/numbered_fields.rs
Move MSRV tests into the lint specific test files
[rust.git] / tests / ui / numbered_fields.rs
1 //run-rustfix
2 #![warn(clippy::init_numbered_fields)]
3 #![allow(unused_tuple_struct_fields)]
4
5 #[derive(Default)]
6 struct TupleStruct(u32, u32, u8);
7
8 // This shouldn't lint because it's in a macro
9 macro_rules! tuple_struct_init {
10     () => {
11         TupleStruct { 0: 0, 1: 1, 2: 2 }
12     };
13 }
14
15 fn main() {
16     let tuple_struct = TupleStruct::default();
17
18     // This should lint
19     let _ = TupleStruct {
20         0: 1u32,
21         1: 42,
22         2: 23u8,
23     };
24
25     // This should also lint and order the fields correctly
26     let _ = TupleStruct {
27         0: 1u32,
28         2: 2u8,
29         1: 3u32,
30     };
31
32     // Ok because of default initializer
33     let _ = TupleStruct { 0: 42, ..tuple_struct };
34
35     let _ = TupleStruct {
36         1: 23,
37         ..TupleStruct::default()
38     };
39
40     // Ok because it's in macro
41     let _ = tuple_struct_init!();
42
43     type Alias = TupleStruct;
44
45     // Aliases can't be tuple constructed #8638
46     let _ = Alias { 0: 0, 1: 1, 2: 2 };
47 }