r361771 - [clang] Respect TerseOutput when printing lambdas
Kadir Cetinkaya via cfe-commits
cfe-commits at lists.llvm.org
Mon May 27 09:20:45 PDT 2019
Author: kadircet
Date: Mon May 27 09:20:45 2019
New Revision: 361771
URL: http://llvm.org/viewvc/llvm-project?rev=361771&view=rev
Log:
[clang] Respect TerseOutput when printing lambdas
Reviewers: ilya-biryukov, hokein, sammccall
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62487
Modified:
cfe/trunk/lib/AST/StmtPrinter.cpp
cfe/trunk/unittests/AST/StmtPrinterTest.cpp
Modified: cfe/trunk/lib/AST/StmtPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/StmtPrinter.cpp?rev=361771&r1=361770&r2=361771&view=diff
==============================================================================
--- cfe/trunk/lib/AST/StmtPrinter.cpp (original)
+++ cfe/trunk/lib/AST/StmtPrinter.cpp Mon May 27 09:20:45 2019
@@ -1950,7 +1950,10 @@ void StmtPrinter::VisitLambdaExpr(Lambda
// Print the body.
OS << ' ';
- PrintRawCompoundStmt(Node->getBody());
+ if (Policy.TerseOutput)
+ OS << "{}";
+ else
+ PrintRawCompoundStmt(Node->getBody());
}
void StmtPrinter::VisitCXXScalarValueInitExpr(CXXScalarValueInitExpr *Node) {
Modified: cfe/trunk/unittests/AST/StmtPrinterTest.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/AST/StmtPrinterTest.cpp?rev=361771&r1=361770&r2=361771&view=diff
==============================================================================
--- cfe/trunk/unittests/AST/StmtPrinterTest.cpp (original)
+++ cfe/trunk/unittests/AST/StmtPrinterTest.cpp Mon May 27 09:20:45 2019
@@ -231,3 +231,17 @@ class A {
ASSERT_TRUE(PrintedStmtObjCMatches(ObjCSource, returnStmt().bind("id"),
"return self->ivar;\n"));
}
+
+TEST(StmtPrinter, TerseOutputWithLambdas) {
+ const char *CPPSource = "auto lamb = []{ return 0; };";
+
+ // body is printed when TerseOutput is off(default).
+ ASSERT_TRUE(PrintedStmtCXXMatches(StdVer::CXX11, CPPSource,
+ lambdaExpr(anything()).bind("id"),
+ "[] {\n return 0;\n}"));
+
+ // body not printed when TerseOutput is on.
+ ASSERT_TRUE(PrintedStmtCXXMatches(
+ StdVer::CXX11, CPPSource, lambdaExpr(anything()).bind("id"), "[] {}",
+ PolicyAdjusterType([](PrintingPolicy &PP) { PP.TerseOutput = true; })));
+}
More information about the cfe-commits
mailing list