diff options
Diffstat (limited to '')
-rw-r--r-- | src/tools/clippy/tests/ui/numbered_fields.fixed | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/tools/clippy/tests/ui/numbered_fields.fixed b/src/tools/clippy/tests/ui/numbered_fields.fixed new file mode 100644 index 000000000..68c987eb4 --- /dev/null +++ b/src/tools/clippy/tests/ui/numbered_fields.fixed @@ -0,0 +1,39 @@ +//run-rustfix +#![warn(clippy::init_numbered_fields)] +#![allow(unused_tuple_struct_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 }; +} |