r348794 - Change InitListExpr dump to label and pointer

Stephen Kelly via cfe-commits cfe-commits at lists.llvm.org
Mon Dec 10 13:19:54 PST 2018


I'll revert it to allow for further discussion.

On 10/12/2018 21:12, Richard Smith wrote:
> On Mon, 10 Dec 2018 at 12:56, Stephen Kelly via cfe-commits 
> <cfe-commits at lists.llvm.org <mailto:cfe-commits at lists.llvm.org>> wrote:
>
>     Author: steveire
>     Date: Mon Dec 10 12:53:32 2018
>     New Revision: 348794
>
>     URL: http://llvm.org/viewvc/llvm-project?rev=348794&view=rev
>     Log:
>     Change InitListExpr dump to label and pointer
>
>     Summary: Don't add a child just for the label.
>
>     Reviewers: aaron.ballman
>
>     Subscribers: cfe-commits
>
>     Differential Revision: https://reviews.llvm.org/D55495
>
>     Modified:
>         cfe/trunk/lib/AST/ASTDumper.cpp
>         cfe/trunk/test/AST/ast-dump-stmt.cpp
>
>     Modified: cfe/trunk/lib/AST/ASTDumper.cpp
>     URL:
>     http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ASTDumper.cpp?rev=348794&r1=348793&r2=348794&view=diff
>     ==============================================================================
>     --- cfe/trunk/lib/AST/ASTDumper.cpp (original)
>     +++ cfe/trunk/lib/AST/ASTDumper.cpp Mon Dec 10 12:53:32 2018
>     @@ -1951,11 +1951,12 @@ void ASTDumper::VisitInitListExpr(const
>          OS << " field ";
>          NodeDumper.dumpBareDeclRef(Field);
>        }
>     +
>        if (auto *Filler = ILE->getArrayFiller()) {
>     -    dumpChild([=] {
>     -      OS << "array filler";
>     -      dumpStmt(Filler);
>     -    });
>     +    OS << " array_filler";
>     +    NodeDumper.dumpPointer(Filler);
>     +
>     +    dumpStmt(Filler);
>        }
>      }
>
>
>     Modified: cfe/trunk/test/AST/ast-dump-stmt.cpp
>     URL:
>     http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-stmt.cpp?rev=348794&r1=348793&r2=348794&view=diff
>     ==============================================================================
>     --- cfe/trunk/test/AST/ast-dump-stmt.cpp (original)
>     +++ cfe/trunk/test/AST/ast-dump-stmt.cpp Mon Dec 10 12:53:32 2018
>     @@ -90,9 +90,8 @@ void TestUnionInitList()
>      {
>        U us[3] = {1};
>      // CHECK: VarDecl {{.+}} <col:3, col:15> col:5 us 'U [3]' cinit
>     -// CHECK-NEXT: `-InitListExpr {{.+}} <col:13, col:15> 'U [3]'
>     -// CHECK-NEXT:   |-array filler
>     -// CHECK-NEXT:   | `-InitListExpr {{.+}} <col:15> 'U' field Field
>     {{.+}} 'i' 'int'
>     +// CHECK-NEXT: `-InitListExpr {{.+}} <col:13, col:15> 'U [3]'
>     array_filler 0x{{.+}}
>     +// CHECK-NEXT:   |-InitListExpr {{.+}} <col:15> 'U' field Field
>     {{.+}} 'i' 'int'
>      // CHECK-NEXT:   `-InitListExpr {{.+}} <col:14> 'U' field Field
>     {{.+}} 'i' 'int'
>      // CHECK-NEXT:     `-IntegerLiteral {{.+}} <col:14> 'int' 1
>      }
>
>
> I'm pretty strongly against this particular change. I think this makes 
> this form of InitListExpr dump *vastly* harder to read. The 
> incredibly-easy-to-miss "array_filler" marker on the outer 
> InitListExpr completely changes the meaning of the rest of the dump.
>
> The old dump form was much more readable. If you want to save vertical 
> space, you could consider making the "array filler" label a prefix for 
> the child:
>
> // CHECK: VarDecl {{.+}} <col:3, col:15> col:5 us 'U [3]' cinit
> // CHECK-NEXT: `-InitListExpr {{.+}} <col:13, col:15> 'U [3]'
> // CHECK-NEXT:   |-array filler: InitListExpr {{.+}} <col:15> 'U' 
> field Field {{.+}} 'i' 'int'
> // CHECK-NEXT:   `-InitListExpr {{.+}} <col:14> 'U' field Field {{.+}} 
> 'i' 'int'
> // CHECK-NEXT:     `-IntegerLiteral {{.+}} <col:14> 'int' 1
>
> ... but I think the approach of this patch is not acceptable: it harms 
> the primary purpose of -ast-dump, which is to form a human-readable 
> dump of the AST.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20181210/6c3a39c2/attachment.html>


More information about the cfe-commits mailing list