@@ -336,16 +336,15 @@ struct TemplateParameterListBuilder {
336336 }
337337
338338 /*
339- The concept specialization expression (CSE) constructed below is constructed
340- so that it matches the CSE that is constructed when parsing
341- the below C++ code:
339+ The concept specialization expression (CSE) constructed in
340+ constructConceptSpecializationExpr is constructed so that it
341+ matches the CSE that is constructed when parsing the below C++ code:
342342
343343 template<typename T>
344- concept is_typed_resource_element_compatible =sizeof(T) <= 16;
344+ concept is_typed_resource_element_compatible = sizeof(T) <= 16;
345345
346346 template<typename element_type> requires
347347 is_typed_resource_element_compatible<element_type>
348-
349348 struct RWBuffer {
350349 element_type Val;
351350 };
@@ -393,12 +392,14 @@ struct TemplateParameterListBuilder {
393392
394393 QualType ConceptTType = Context.getTypeDeclType (ConceptTTPD);
395394
396- // this is the 2nd template argument node in the AST above
395+ // this is the 2nd template argument node, on which
396+ // the concept constraint is actually being applied, 'element_type'
397397 TemplateArgument ConceptTA = TemplateArgument (ConceptTType);
398398
399399 QualType CSETType = Context.getTypeDeclType (T);
400400
401- // this is the 1st template argument node in the AST above
401+ // this is the 1st template argument node, which represents
402+ // the abstract type that a concept would refer to, 'T'
402403 TemplateArgument CSETA = TemplateArgument (CSETType);
403404
404405 ImplicitConceptSpecializationDecl *ImplicitCSEDecl =
0 commit comments