Although I don't plan to bring over new assertions wholesale
into the current qualification branch, it's entirely possible
that various minor changes in main will use the new assertions;
having this basic support in the release branch will simplify that.
(This is why I'm adding the includes as a separate pass from
rewriting the individual assertions)
First step in preparation to unify different matchers which
is effectively no-op because function parameters do not have
labels.
- Common prefix/suffix should account for presence of labels
- Labeled parameters cannot appear in the region absorbed by
a pack expansion type.
Don't emit a match with a PackExpansionType on one side and a
PackType on the other; always unwrap the PackExpansionType
to get its underlying pattern.