It's possible we could get away with leaving macros alone. The sequence `$e:expr $b:block` would presumably interpret `Foo { bar }` as the start of a struct literal for `$e:expr` (and then subsequently error out because it's not correct). That said, it seems a shame to not allow macros to parse `$e:expr $b:block` the same way `for`/`if` do.