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; }))); +} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits