[clang] [Clang] Implement C++26’s P2893R3 ‘Variadic friends’ (PR #101448)
via cfe-commits
cfe-commits at lists.llvm.org
Tue Aug 6 09:08:01 PDT 2024
================
@@ -862,13 +881,21 @@ void DeclPrinter::VisitFunctionDecl(FunctionDecl *D) {
}
}
-void DeclPrinter::VisitFriendDecl(FriendDecl *D) {
+void DeclPrinter::VisitFriendDecl(FriendDecl *D, bool FirstInGroup) {
if (TypeSourceInfo *TSI = D->getFriendType()) {
unsigned NumTPLists = D->getFriendTypeNumTemplateParameterLists();
for (unsigned i = 0; i < NumTPLists; ++i)
printTemplateParameters(D->getFriendTypeTemplateParameterList(i));
- Out << "friend ";
- Out << " " << TSI->getType().getAsString(Policy);
+
+ // Hack to print friend declarations declared as a group, e.g.
+ // 'friend int, long;', instead of printing them as two separate
+ // FriendDecls, which they are in the AST.
+ if (FirstInGroup)
+ Out << "friend ";
+ else
+ Out << ", ";
+
----------------
cor3ntin wrote:
Can we use ListSeparator here?
https://github.com/llvm/llvm-project/pull/101448
More information about the cfe-commits
mailing list