aaron.ballman added inline comments.

================
Comment at: include/clang/AST/ASTDumperUtils.h:115
+  template <typename Fn>
+  void addChild(const std::string &label, Fn doAddChild) {
+    if (label.empty())
----------------
label -> Label
doAddChild -> DoAddChild


================
Comment at: include/clang/AST/ASTDumperUtils.h:117
+    if (label.empty())
+      return addChild(doAddChild);
+    addChild([=] {
----------------
While correct, this is a bit too clever -- can you switch to using a more 
idiomatic return statement?


================
Comment at: lib/AST/ASTDumper.cpp:66
+    template <typename Fn>
+    void dumpChild(const std::string &label, Fn doDumpChild) {
+      TreeStructure.addChild(label, doDumpChild);
----------------
Label, DoDumpChild


================
Comment at: lib/AST/ASTDumper.cpp:89
     void dumpDecl(const Decl *D);
-    void dumpStmt(const Stmt *S);
+    void dumpStmt(const Stmt *S, const std::string &label = {});
 
----------------
Label

Rather than using `{}`, how about `""` (same behavior, but looks more 
idiomatic).

Why `std::string` instead of `StringRef`? I expect this will be called mostly 
with string literals, which saves an allocation. The other labels are using 
`const char *`, which would be another reasonable option. Whatever we go with, 
it'd be nice to make the label types agree across the calls.


================
Comment at: lib/AST/ASTDumper.cpp:1692
 
-void ASTDumper::dumpStmt(const Stmt *S) {
-  dumpChild([=] {
+void ASTDumper::dumpStmt(const Stmt *S, const std::string &label) {
+  dumpChild(label, [=] {
----------------
label -> Label


Repository:
  rC Clang

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

https://reviews.llvm.org/D55488



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

Reply via email to