From: Daniel Jasper Date: Mon, 28 Jul 2014 12:08:06 +0000 (+0000) Subject: clang-format: Fix formatting of lock annotations in lambda definitions. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b1a732ef65e6306e0b0386cfb3cc7036f2065192;p=clang clang-format: Fix formatting of lock annotations in lambda definitions. Before: SomeFunction([](int i)LOCKS_EXCLUDED(a) {}); After: SomeFunction([](int i) LOCKS_EXCLUDED(a) {}); git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214069 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Format/TokenAnnotator.cpp b/lib/Format/TokenAnnotator.cpp index 017afe1a37..5f8ce79746 100644 --- a/lib/Format/TokenAnnotator.cpp +++ b/lib/Format/TokenAnnotator.cpp @@ -842,6 +842,10 @@ private: LeftOfParens = Tok.MatchingParen->getPreviousNonComment(); if (LeftOfParens && LeftOfParens->is(tok::r_paren)) return false; + if (LeftOfParens && LeftOfParens->is(tok::r_square) && + LeftOfParens->MatchingParen && + LeftOfParens->MatchingParen->Type == TT_LambdaLSquare) + return false; bool IsCast = false; bool ParensAreEmpty = Tok.Previous == Tok.MatchingParen; bool ParensAreType = !Tok.Previous || diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index 21bc862754..1fdbe4d092 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -3513,6 +3513,7 @@ TEST_F(FormatTest, BreaksFunctionDeclarationsWithTrailingTokens) { " LOCKS_EXCLUDED(aaaaaaaaaaaaa) {}"); verifyGoogleFormat("void aaaaaaaaaaaaaa(aaaaaaaa aaa) override\n" " AAAAAAAAAAAAAAAAAAAAAAAA(aaaaaaaaaaaaaaa);"); + verifyFormat("SomeFunction([](int i) LOCKS_EXCLUDED(a) {});"); verifyFormat( "void aaaaaaaaaaaaaaaaaa()\n"