Why can't pat_param be followed by a colon in macro_rules?
Rust Internals [Unofficial]
June 13, 2026
My suspicion is it's a holdover from when pat_param was split off from pat, which itself (at the time) needed to handle type ascription.
Discussion in the ATmosphere