blob: 7de2d1140fb5d6fac4f24e66a0b8309a1239920c [file] [edit]
// rustfmt-use_field_init_shorthand: true
foo!(Foo { a: a });
fn main() {
foo!(Foo { a: a });
foo![Foo { a: a }];
foo! { Foo { a: a } }
seq!(Task { a });
seq!(Task { a: b });
seq!(Task { a: 1 });
seq!(Task { a: a, ..base });
seq!(Task {
#[attr]
a: a
});
seq!(Task { a: Inner { b: b } });
seq!(Task { a: a }.build());
let _ = Foo {
a: seq!(Task { b: b }),
};
// `vec!` is formatted as an array, so the shorthand still applies.
vec![Foo { a }];
vec![vec![Foo { a }]];
foo!(vec![Foo { a: a }]);
// std/core prelude macros, where the shorthand would be safe.
assert_eq!(Foo { a: a }, x);
debug_assert_eq!(Foo { a: a }, x);
matches!(v, Foo { a: a });
assert_matches!(v, Foo { a: a });
assert!(matches!(v, Foo { a: a }));
// A shorthand already written by hand is kept.
assert_eq!(Foo { a }, x);
debug_assert_eq!(Foo { a }, x);
matches!(v, Foo { a });
assert_matches!(v, Foo { a });
assert!(matches!(v, Foo { a }));
let _ = Foo { a };
let _ = Foo { a: Inner { b } };
}