Author: djasper Date: Mon Jun 13 02:48:45 2016 New Revision: 272535 URL: http://llvm.org/viewvc/llvm-project?rev=272535&view=rev Log: clang-format: Don't indent lambda body relative to its return type.
Before: []() // -> int { return 1; // }; After: []() // -> int { return 1; // }; Modified: cfe/trunk/lib/Format/ContinuationIndenter.cpp cfe/trunk/unittests/Format/FormatTest.cpp Modified: cfe/trunk/lib/Format/ContinuationIndenter.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/ContinuationIndenter.cpp?rev=272535&r1=272534&r2=272535&view=diff ============================================================================== --- cfe/trunk/lib/Format/ContinuationIndenter.cpp (original) +++ cfe/trunk/lib/Format/ContinuationIndenter.cpp Mon Jun 13 02:48:45 2016 @@ -476,11 +476,13 @@ unsigned ContinuationIndenter::addTokenO // // code // } // - // is common and should be formatted like a free-standing function. - if (Style.Language != FormatStyle::LK_JavaScript || - Current.NestingLevel != 0 || !PreviousNonComment || - !PreviousNonComment->is(tok::equal) || - !Current.isOneOf(Keywords.kw_async, Keywords.kw_function)) + // is common and should be formatted like a free-standing function. The same + // goes for wrapping before the lambda return type arrow. + if (!Current.is(TT_LambdaArrow) && + (Style.Language != FormatStyle::LK_JavaScript || + Current.NestingLevel != 0 || !PreviousNonComment || + !PreviousNonComment->is(tok::equal) || + !Current.isOneOf(Keywords.kw_async, Keywords.kw_function))) State.Stack.back().NestedBlockIndent = State.Column; if (NextNonComment->isMemberAccess()) { Modified: cfe/trunk/unittests/Format/FormatTest.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Format/FormatTest.cpp?rev=272535&r1=272534&r2=272535&view=diff ============================================================================== --- cfe/trunk/unittests/Format/FormatTest.cpp (original) +++ cfe/trunk/unittests/Format/FormatTest.cpp Mon Jun 13 02:48:45 2016 @@ -10997,6 +10997,10 @@ TEST_F(FormatTest, FormatsLambdas) { " return aaaaaaaaaaaaaaaaa;\n" " });", getLLVMStyleWithColumns(70)); + verifyFormat("[]() //\n" + " -> int {\n" + " return 1; //\n" + "};"); // Multiple lambdas in the same parentheses change indentation rules. verifyFormat("SomeFunction(\n" _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits