Full name of submitter (unless configured in github; will be published with the issue): Peter Bindels
Reference (section label): expr.prim.req.type
Link to reflector thread (if any): - (discussion on Mattermost exists in CWG channel)
Issue description: Both current CD and P2996 have the following grammar:
type-requirement :
typename nested-name-specifieropt type-name ;
typename splice-specifier
typename splice-specialization-specifier
Below that is the example
typename [:T::r1:]; // fails if T::r1 is not a reflection of a type
typename [:T::r2:]<int>; // fails if T::r2 is not a reflection of a template Z for which Z<int> is a type
The grammar does not allow for the semicolon at the end of the lines as indicated in the example.
Suggested resolution: Add ; at the end of the second and third line in type-requirement's grammar.
One of the authors of P2996 remarked on Mattermost: "Yeah, those should probably have semis."