This required changing a bit of how attributes/types are parsed. A new
KeywordSwitch class was added to AsmParser that provides a StringSwitch
like API for parsing keywords with a set of potential matches. It intends to
both provide a cleaner API, and enable injection for code completion. This
required changing the API of generated(Attr|Type)Parser to handle the
parsing of the keyword, instead of having the user do it. Most upstream
dialects use the autogenerated handling and didn't require a direct update.
Depends on D129184
I would have made this a separate commit as this is a nice feature not LSP related.