r182455 - Improve handling of trailing 'const'.
Daniel Jasper
djasper at google.com
Wed May 22 09:59:50 PDT 2013
Yeah .. C++11 support is not complete ...
On Wed, May 22, 2013 at 6:35 PM, Nico Weber <thakis at chromium.org> wrote:
> What about override and final? What about ')' followed by an identifier
> (say `void f() OVERRIDE`)?
>
>
> On Wed, May 22, 2013 at 1:28 AM, Daniel Jasper <djasper at google.com> wrote:
>
>> Author: djasper
>> Date: Wed May 22 03:28:26 2013
>> New Revision: 182455
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=182455&view=rev
>> Log:
>> Improve handling of trailing 'const'.
>>
>> Reduce the preference for breaking before a trailing 'const' according
>> to review comments on r182362.
>>
>> 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=182455&r1=182454&r2=182455&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/lib/Format/TokenAnnotator.cpp (original)
>> +++ cfe/trunk/lib/Format/TokenAnnotator.cpp Wed May 22 03:28:26 2013
>> @@ -959,6 +959,10 @@ unsigned TokenAnnotator::splitPenalty(co
>> return 150;
>> }
>>
>> + // Breaking before a trailing 'const' is bad.
>> + if (Left.is(tok::r_paren) && Right.is(tok::kw_const))
>> + return 150;
>> +
>> // In for-loops, prefer breaking at ',' and ';'.
>> if (Line.First.is(tok::kw_for) && Left.is(tok::equal))
>> return 4;
>> @@ -1165,6 +1169,11 @@ bool TokenAnnotator::canBreakBefore(cons
>> // change the "binding" behavior of a comment.
>> return false;
>>
>> + // We only break before r_brace if there was a corresponding break
>> before
>> + // the l_brace, which is tracked by BreakBeforeClosingBrace.
>> + if (Right.isOneOf(tok::r_brace, tok::r_paren, tok::greater))
>> + return false;
>> +
>> // Allow breaking after a trailing 'const', e.g. after a method
>> declaration,
>> // unless it is follow by ';', '{' or '='.
>> if (Left.is(tok::kw_const) && Left.Parent != NULL &&
>> @@ -1174,10 +1183,6 @@ bool TokenAnnotator::canBreakBefore(cons
>> if (Right.is(tok::kw___attribute))
>> return true;
>>
>> - // We only break before r_brace if there was a corresponding break
>> before
>> - // the l_brace, which is tracked by BreakBeforeClosingBrace.
>> - if (Right.isOneOf(tok::r_brace, tok::r_paren, tok::greater))
>> - return false;
>> if (Left.is(tok::identifier) && Right.is(tok::string_literal))
>> return true;
>> return (Left.isBinaryOperator() && Left.isNot(tok::lessless)) ||
>>
>> Modified: cfe/trunk/unittests/Format/FormatTest.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Format/FormatTest.cpp?rev=182455&r1=182454&r2=182455&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/unittests/Format/FormatTest.cpp (original)
>> +++ cfe/trunk/unittests/Format/FormatTest.cpp Wed May 22 03:28:26 2013
>> @@ -1929,9 +1929,23 @@ TEST_F(FormatTest, BreaksFunctionDeclara
>> }
>>
>> TEST_F(FormatTest, BreaksFunctionDeclarationsWithTrailingTokens) {
>> - verifyFormat("void someLongFunction(int someLongParameter)\n"
>> - " const;",
>> - getLLVMStyleWithColumns(45));
>> + verifyFormat("void someLongFunction(\n"
>> + " int someLongParameter) const {}",
>> + getLLVMStyleWithColumns(46));
>> + FormatStyle Style = getGoogleStyle();
>> + Style.ColumnLimit = 47;
>> + verifyFormat("void\n"
>> + "someLongFunction(int someLongParameter) const {\n}",
>> + getLLVMStyleWithColumns(47));
>> + verifyFormat("void someLongFunction(\n"
>> + " int someLongParameter) const {}",
>> + Style);
>> + verifyFormat("LoooooongReturnType\n"
>> + "someLoooooooongFunction() const {}",
>> + getLLVMStyleWithColumns(47));
>> + verifyFormat("LoooooongReturnType someLoooooooongFunction()\n"
>> + " const {}",
>> + Style);
>>
>> verifyFormat("void aaaaaaaaaaaa(int
>> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)\n"
>> " LOCKS_EXCLUDED(aaaaaaaaaaaaa);");
>>
>>
>> _______________________________________________
>> 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/20130522/9003ceab/attachment.html>
More information about the cfe-commits
mailing list