changyu added a comment.

I moved some template param checks from 
`Parser::ParseTemplateDeclarationOrSpecialization` to 
`Parser::ParseConceptDefinition` and `Sema::ActOnConceptDefinition`.



================
Comment at: lib/Parse/ParseTemplate.cpp:181
+    TemplateParameterList *TPL = ParamLists[0];
+    if (TPL->getLAngleLoc().getLocWithOffset(1) == TPL->getRAngleLoc()) {
+      Diag(TPL->getTemplateLoc(),
----------------
faisalv wrote:
> changyu wrote:
> > There's one problem here.
> > 
> > ​I added this `if` in attempt to catch the following case (but it's wrong)
> > ```
> >     ​template<> concept D1 = true;  // expected-error {{expected template 
> > parameter}}
> > ```
> > The problem is I'm not sure how to differentiate between the above 
> > situation and the following
> > ```
> >     ​template<concept T> concept D1 = true; // expected-error {{expected 
> > template parameter}}
> > ```
> > Both have an empty template parameter list​. The latter case has diagnostic 
> > printed by `ParseNonTypeTemplateParameter` while the former has not (so we 
> > try to catch it here).
> > 
> > What should we do?
> > 
> 
> I was thinking that we would just emit a (redundant in the case of a bad 
> template parameter) message in Sema if the template-parameters are empty that 
> explicit specializations are not allowed here.  while it would be a little 
> misleading in the invalid template parameter case - to fix this robustly 
> would require some fine-tuning and correcting some of the 
> handshaking/error-propagation between the parsing of the template parameters 
> and the code that calls it, I think.  I would vote for not holding up this 
> patch for that, unless you feel strongly you'd like to fix that behavior - 
> then we can try and work on that first?
> 
> Thoughts?
> 
> 
Sure, let's fix that in another patch. I added a note for this in 
cxx2a-concept-declaration.cpp.


https://reviews.llvm.org/D40381



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to