curdeius added a comment.

> This fix tries to avoid that issue by determining that a ";" between the < 
> and > would not be a template (I couldn't think of an example where that 
> would be the case, but I'm sure there are..

For what is worth, with lambdas in unevaluated context (C++20), you can get a 
semicolon between template opener/closer easily:

  some_templated_type<decltype([](int i) { return i; })>

But I'm not sure if it's something that may break anything here.

Another idea in which a semicolon occurs between <> would be a macro X(;).



================
Comment at: clang/lib/Format/TokenAnnotator.cpp:40
 /// keyword as a potential Objective-C selector component.
 static bool canBeObjCSelectorComponent(const FormatToken &Tok) {
   return Tok.Tok.getIdentifierInfo() != nullptr;
----------------
I know you haven't changed this, but...
Static function (internal linkage) in anonymous namespace?


================
Comment at: clang/lib/Format/TokenAnnotator.cpp:46
 /// `[...]<...>(`, where the [ opens a lambda capture list.
 static bool isLambdaParameterList(const FormatToken *Left) {
   // Skip <...> if present.
----------------
Ditto (static).


================
Comment at: clang/lib/Format/TokenAnnotator.cpp:1987
   llvm::SmallPtrSet<FormatToken *, 16> NonTemplateLess;
-};
+}; // namespace
 
----------------
There should be no comment, it's the ending brace of a class.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D79293/new/

https://reviews.llvm.org/D79293



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

Reply via email to