pub(super) fn try_match_macro<'matcher, T: Tracker<'matcher>>(
    psess: &ParseSess,
    name: Ident,
    arg: &TokenStream,
    rules: &'matcher [MacroRule],
    track: &mut T,
) -> Result<(usize, &'matcher MacroRule, FxHashMap<MacroRulesNormalizedIdent, NamedMatch>), CanRetry>Expand description
Try expanding the macro. Returns the index of the successful arm and its named_matches if it was successful,
and nothing if it failed. On failure, it’s the callers job to use track accordingly to record all errors
correctly.