fn check_matcher_core<'tt>(
    sess: &Session,
    def: &Item,
    first_sets: &FirstSets<'tt>,
    matcher: &'tt [TokenTree],
    follow: &TokenSet<'tt>
) -> Result<TokenSet<'tt>, ErrorGuaranteed>