#![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 }; // Issue #12367 struct TupleStructVec(Vec); let _ = TupleStructVec(vec![0, 1, 2, 3]); { struct S(i32, i32); let mut iter = [1i32, 1i32].into_iter(); let _ = S { 1: iter.next().unwrap(), 0: iter.next().unwrap(), }; } }