walrus marked an inline comment as done.
walrus added inline comments.
================
Comment at: clang/lib/AST/StmtPrinter.cpp:2011
+ Expr *Init = D->getInit();
+ if (D->getInitStyle() == VarDecl::CallInit && !isa<ParenListExpr>(Init))
+ OS << "(";
----------------
kadircet wrote:
> what about having a `Pre` and `Post` print blocks, set to `"(" and ")"` or `"
> = ` and ""` respectively?
>
> that way we could get rid of the second if block below.
>
>
> also i don't follow why blacklisting for parenlistexpr is needed here (i can
> see that it will end up printing double parens, but so is `ParenExpr`s, and I
> think both of them shouldn't be showing up as initializer exprs of captured
> variables), could you elaborate with a comment and a test case?
I think you're right that skipping `ParenListExpr` is wrong here. I took this
part of code from DeclPrinter. The `ParenListExpr`s are skipped when printing
variable declarations, but I think it is not applicable when printing lambda
expression captures.
Honestly, I didn't get about `Pre` and `Post` blocks. I know it is supported
when printing types, but I could not find how to do this for expressions.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D83855/new/
https://reviews.llvm.org/D83855
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits