Author: paulhoad Date: Tue Mar 5 14:20:25 2019 New Revision: 355450 URL: http://llvm.org/viewvc/llvm-project?rev=355450&view=rev Log: [clang-format] broken after lambda with return type template with boolean literal
Summary: A Lamdba with a return type template with a boolean literal (true,false) behaves differently to an integer literal https://bugs.llvm.org/show_bug.cgi?id=40910 Reviewers: klimek, djasper, JonasToth, alexfh, krasimir, jkorous Reviewed By: jkorous Subscribers: jkorous, cfe-commits Tags: #clang-tools-extra Differential Revision: https://reviews.llvm.org/D58922 Modified: cfe/trunk/lib/Format/UnwrappedLineParser.cpp cfe/trunk/unittests/Format/FormatTest.cpp Modified: cfe/trunk/lib/Format/UnwrappedLineParser.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/UnwrappedLineParser.cpp?rev=355450&r1=355449&r2=355450&view=diff ============================================================================== --- cfe/trunk/lib/Format/UnwrappedLineParser.cpp (original) +++ cfe/trunk/lib/Format/UnwrappedLineParser.cpp Tue Mar 5 14:20:25 2019 @@ -1442,6 +1442,8 @@ bool UnwrappedLineParser::tryToParseLamb case tok::lessequal: case tok::question: case tok::colon: + case tok::kw_true: + case tok::kw_false: nextToken(); break; case tok::arrow: Modified: cfe/trunk/unittests/Format/FormatTest.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Format/FormatTest.cpp?rev=355450&r1=355449&r2=355450&view=diff ============================================================================== --- cfe/trunk/unittests/Format/FormatTest.cpp (original) +++ cfe/trunk/unittests/Format/FormatTest.cpp Tue Mar 5 14:20:25 2019 @@ -11936,6 +11936,21 @@ TEST_F(FormatTest, FormatsLambdas) { "// broken:\n" "auto foo{[]() -> foo<2 ? 1 : 0> { return {}; }};\n" "} // namespace bar"); + verifyFormat("[]() -> a<1> {};"); + verifyFormat("[]() -> a<1> { ; };"); + verifyFormat("[]() -> a<1> { ; }();"); + verifyFormat("[a, a]() -> a<true> {};"); + verifyFormat("[]() -> a<true> {};"); + verifyFormat("[]() -> a<true> { ; };"); + verifyFormat("[]() -> a<true> { ; }();"); + verifyFormat("[a, a]() -> a<false> {};"); + verifyFormat("[]() -> a<false> {};"); + verifyFormat("[]() -> a<false> { ; };"); + verifyFormat("[]() -> a<false> { ; }();"); + verifyFormat("auto foo{[]() -> foo<false> { ; }};"); + verifyFormat("namespace bar {\n" + "auto foo{[]() -> foo<false> { ; }};\n" + "} // namespace bar"); verifyFormat("auto aaaaaaaa = [](int i, // break for some reason\n" " int j) -> int {\n" " return ffffffffffffffffffffffffffffffffffffffffffff(i * j);\n" _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits