]> granicus.if.org Git - clang/commitdiff
NFC: Implement GenericSelectionExpr::Association dump with Visitor
authorStephen Kelly <steveire@gmail.com>
Tue, 29 Jan 2019 22:22:55 +0000 (22:22 +0000)
committerStephen Kelly <steveire@gmail.com>
Tue, 29 Jan 2019 22:22:55 +0000 (22:22 +0000)
Reviewers: aaron.ballman

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D56960

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@352552 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/AST/TextNodeDumper.h
lib/AST/ASTDumper.cpp
lib/AST/TextNodeDumper.cpp

index d368de1ce17f8ebcb7b1a269c68008643c6c81cb..d772d7f60267f5541d52b40a8de31f2d91026656 100644 (file)
@@ -172,6 +172,8 @@ public:
 
   void Visit(const BlockDecl::Capture &C);
 
+  void Visit(const GenericSelectionExpr::ConstAssociation &A);
+
   void dumpPointer(const void *Ptr);
   void dumpLocation(SourceLocation Loc);
   void dumpSourceRange(SourceRange R);
index 5c99dab356fa0bbcc57fb4b1332f5abfc099cf06..03da41143fa530435ae401abac25c5afcd1c3882 100644 (file)
@@ -297,6 +297,7 @@ namespace  {
     void VisitInitListExpr(const InitListExpr *ILE);
     void VisitBlockExpr(const BlockExpr *Node);
     void VisitOpaqueValueExpr(const OpaqueValueExpr *Node);
+    void Visit(const GenericSelectionExpr::ConstAssociation &A);
     void VisitGenericSelectionExpr(const GenericSelectionExpr *E);
 
     // C++
@@ -1456,6 +1457,15 @@ void ASTDumper::VisitOpaqueValueExpr(const OpaqueValueExpr *Node) {
     dumpStmt(Source);
 }
 
+void ASTDumper::Visit(const GenericSelectionExpr::ConstAssociation &A) {
+  dumpChild([=] {
+    NodeDumper.Visit(A);
+    if (const TypeSourceInfo *TSI = A.getTypeSourceInfo())
+      dumpTypeAsChild(TSI->getType());
+    dumpStmt(A.getAssociationExpr());
+  });
+}
+
 void ASTDumper::VisitGenericSelectionExpr(const GenericSelectionExpr *E) {
   if (E->isResultDependent())
     OS << " result_dependent";
@@ -1463,21 +1473,7 @@ void ASTDumper::VisitGenericSelectionExpr(const GenericSelectionExpr *E) {
   dumpTypeAsChild(E->getControllingExpr()->getType()); // FIXME: remove
 
   for (const auto &Assoc : E->associations()) {
-    dumpChild([=] {
-      if (const TypeSourceInfo *TSI = Assoc.getTypeSourceInfo()) {
-        OS << "case ";
-        NodeDumper.dumpType(TSI->getType());
-      } else {
-        OS << "default";
-      }
-
-      if (Assoc.isSelected())
-        OS << " selected";
-
-      if (const TypeSourceInfo *TSI = Assoc.getTypeSourceInfo())
-        dumpTypeAsChild(TSI->getType());
-      dumpStmt(Assoc.getAssociationExpr());
-    });
+    Visit(Assoc);
   }
 }
 
index 06beb77f7a92e58dca7ababf1da68dbcd33cd1da..63e3184eab85c738d003c623a4f9c113f60f2014 100644 (file)
@@ -312,6 +312,19 @@ void TextNodeDumper::Visit(const OMPClause *C) {
     OS << " <implicit>";
 }
 
+void TextNodeDumper::Visit(const GenericSelectionExpr::ConstAssociation &A) {
+  const TypeSourceInfo *TSI = A.getTypeSourceInfo();
+  if (TSI) {
+    OS << "case ";
+    dumpType(TSI->getType());
+  } else {
+    OS << "default";
+  }
+
+  if (A.isSelected())
+    OS << " selected";
+}
+
 void TextNodeDumper::dumpPointer(const void *Ptr) {
   ColorScope Color(OS, ShowColors, AddressColor);
   OS << ' ' << Ptr;