r182362 - Allow breaking before a trailing const.
Daniel Jasper
djasper at google.com
Tue May 21 12:15:15 PDT 2013
Plus, looking through many of the other cases, clang-format would format
them quite the same way. This formatting change addresses a reasonably rare
edge case. If we agree on wanting a different behavior for LLVM, I am happy
to change that, but it needs to be implemented in a different way.
Previously, 'const' was kept on the same line merely by accident and might
even have caused a column limit violation in certain cases.
On Tue, May 21, 2013 at 9:08 PM, Daniel Jasper <djasper at google.com> wrote:
> Not sure where you are getting your data from, but e.g. ASTContext.h alone
> has 4 such cases.
>
>
> On Tue, May 21, 2013 at 9:05 PM, Richard Smith <richard at metafoo.co.uk>wrote:
>
>> More data:
>>
>> /^ *const;/ has 12 matches in llvm/lib and 0 in clang/lib
>> /^ *[^(,]*) const;/ has 769 matches in llvm/lib and 221 matches in
>> clang/lib
>>
>> /^ *const {/ has 108 matches in llvm/lib + 2 in include/llvm, 6 matches
>> in clang/lib + 1 in include/clang
>> /^ *[^(,]*) const {/ has 1371 matches in llvm/lib + 208 in include/llvm,
>> 743 matches in clang/lib + 73 in include/clang
>>
>>
>> On Tue, May 21, 2013 at 12:01 PM, Richard Smith <richard at metafoo.co.uk>wrote:
>>
>>> We should probably turn this off for LLVM style:
>>>
>>> /^ *const;/ has only 1 match in include/llvm and 5 matches in
>>> include/clang.
>>> /^ *[^(,]*) const;/ has 251 matches in include/llvm and 191 matches in
>>> include/clang.
>>>
>>>
>>> On Tue, May 21, 2013 at 2:16 AM, Daniel Jasper <djasper at google.com>wrote:
>>>
>>>> Author: djasper
>>>> Date: Tue May 21 04:16:31 2013
>>>> New Revision: 182362
>>>>
>>>> URL: http://llvm.org/viewvc/llvm-project?rev=182362&view=rev
>>>> Log:
>>>> Allow breaking before a trailing const.
>>>>
>>>> Before:
>>>> void someLongFunction(
>>>> int someLongParameter) const;
>>>>
>>>> After:
>>>> void someLongFunction(int someLongParameter)
>>>> const;
>>>>
>>>> Also slightly cleanup tests.
>>>>
>>>> Modified:
>>>> cfe/trunk/lib/Format/TokenAnnotator.cpp
>>>> cfe/trunk/unittests/Format/FormatTest.cpp
>>>>
>>>> Modified: cfe/trunk/lib/Format/TokenAnnotator.cpp
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/TokenAnnotator.cpp?rev=182362&r1=182361&r2=182362&view=diff
>>>>
>>>> ==============================================================================
>>>> --- cfe/trunk/lib/Format/TokenAnnotator.cpp (original)
>>>> +++ cfe/trunk/lib/Format/TokenAnnotator.cpp Tue May 21 04:16:31 2013
>>>> @@ -1187,7 +1187,7 @@ bool TokenAnnotator::canBreakBefore(cons
>>>> tok::kw_class, tok::kw_struct) ||
>>>> Right.isOneOf(tok::lessless, tok::arrow, tok::period,
>>>> tok::colon) ||
>>>> (Left.is(tok::r_paren) && Left.Type != TT_CastRParen &&
>>>> - Right.isOneOf(tok::identifier, tok::kw___attribute)) ||
>>>> + Right.isOneOf(tok::identifier, tok::kw_const,
>>>> tok::kw___attribute)) ||
>>>> (Left.is(tok::l_paren) && !Right.is(tok::r_paren)) ||
>>>> (Left.is(tok::l_square) && !Right.is(tok::r_square));
>>>> }
>>>>
>>>> Modified: cfe/trunk/unittests/Format/FormatTest.cpp
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Format/FormatTest.cpp?rev=182362&r1=182361&r2=182362&view=diff
>>>>
>>>> ==============================================================================
>>>> --- cfe/trunk/unittests/Format/FormatTest.cpp (original)
>>>> +++ cfe/trunk/unittests/Format/FormatTest.cpp Tue May 21 04:16:31 2013
>>>> @@ -1628,12 +1628,6 @@ TEST_F(FormatTest, PutEmptyBlocksIntoOne
>>>> // Line break tests.
>>>>
>>>> //===----------------------------------------------------------------------===//
>>>>
>>>> -TEST_F(FormatTest, FormatsFunctionDefinition) {
>>>> - verifyFormat("void f(int a, int b, int c, int d, int e, int f, int
>>>> g,"
>>>> - " int h, int j, int f,\n"
>>>> - " int c, int ddddddddddddd) {}");
>>>> -}
>>>> -
>>>> TEST_F(FormatTest, FormatsAwesomeMethodCall) {
>>>> verifyFormat(
>>>>
>>>> "SomeLongMethodName(SomeReallyLongMethod(CallOtherReallyLongMethod(\n"
>>>> @@ -1914,6 +1908,30 @@ TEST_F(FormatTest, BreaksFunctionDeclara
>>>> " bbbb bbbb);");
>>>> }
>>>>
>>>> +TEST_F(FormatTest, BreaksFunctionDeclarationsWithTrailingTokens) {
>>>> + verifyFormat("void someLongFunction(int someLongParameter)\n"
>>>> + " const;",
>>>> + getLLVMStyleWithColumns(45));
>>>> +
>>>> + verifyFormat("void aaaaaaaaaaaa(int
>>>> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)\n"
>>>> + " LOCKS_EXCLUDED(aaaaaaaaaaaaa);");
>>>> + verifyFormat("void aaaaaaaaaaaa(int
>>>> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) const\n"
>>>> + " LOCKS_EXCLUDED(aaaaaaaaaaaaa);");
>>>> + verifyFormat("void aaaaaaaaaaaa(int
>>>> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) const\n"
>>>> + " LOCKS_EXCLUDED(aaaaaaaaaaaaa) {}");
>>>> +
>>>> + verifyFormat(
>>>> + "void aaaaaaaaaaaaaaaaaa()\n"
>>>> + " __attribute__((aaaaaaaaaaaaaaaaaaaaaaaaa,
>>>> aaaaaaaaaaaaaaaaaaaaaaa,\n"
>>>> + " aaaaaaaaaaaaaaaaaaaaaaaaa));");
>>>> + verifyFormat("bool
>>>> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n"
>>>> + " __attribute__((unused));");
>>>> + verifyFormat(
>>>> + "bool aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n"
>>>> + " GUARDED_BY(aaaaaaaaaaaa);");
>>>> +}
>>>> +
>>>> +
>>>> TEST_F(FormatTest, BreaksDesireably) {
>>>> verifyFormat("if (aaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaa) ||\n"
>>>> " aaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaa) ||\n"
>>>> @@ -2051,24 +2069,6 @@ TEST_F(FormatTest, FormatsBuilderPattern
>>>> " ->aaaaaaaaaaaaaaaaa();");
>>>> }
>>>>
>>>> -TEST_F(FormatTest, DoesNotBreakTrailingAnnotation) {
>>>> - verifyFormat("void aaaaaaaaaaaa(int
>>>> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)\n"
>>>> - " LOCKS_EXCLUDED(aaaaaaaaaaaaa);");
>>>> - verifyFormat("void aaaaaaaaaaaa(int
>>>> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) const\n"
>>>> - " LOCKS_EXCLUDED(aaaaaaaaaaaaa);");
>>>> - verifyFormat("void aaaaaaaaaaaa(int
>>>> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) const\n"
>>>> - " LOCKS_EXCLUDED(aaaaaaaaaaaaa) {}");
>>>> - verifyFormat(
>>>> - "void aaaaaaaaaaaaaaaaaa()\n"
>>>> - " __attribute__((aaaaaaaaaaaaaaaaaaaaaaaaa,
>>>> aaaaaaaaaaaaaaaaaaaaaaa,\n"
>>>> - " aaaaaaaaaaaaaaaaaaaaaaaaa));");
>>>> - verifyFormat("bool
>>>> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n"
>>>> - " __attribute__((unused));");
>>>> - verifyFormat(
>>>> - "bool aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n"
>>>> - " GUARDED_BY(aaaaaaaaaaaa);");
>>>> -}
>>>> -
>>>> TEST_F(FormatTest, BreaksAccordingToOperatorPrecedence) {
>>>> verifyFormat(
>>>> "if (aaaaaaaaaaaaaaaaaaaaaaaaa ||\n"
>>>>
>>>>
>>>> _______________________________________________
>>>> cfe-commits mailing list
>>>> cfe-commits at cs.uiuc.edu
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>>>
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130521/004b4165/attachment.html>
More information about the cfe-commits
mailing list