r197980 - clang-format: (WebKit) Disallow 1-line constructors with initializers.

Manuel Klimek klimek at google.com
Fri Dec 27 01:21:02 PST 2013


On Tue, Dec 24, 2013 at 2:31 PM, Daniel Jasper <djasper at google.com> wrote:

> Author: djasper
> Date: Tue Dec 24 07:31:25 2013
> New Revision: 197980
>
> URL: http://llvm.org/viewvc/llvm-project?rev=197980&view=rev
> Log:
> clang-format: (WebKit) Disallow 1-line constructors with initializers.
>
> Before:
>   Constructor() : a(a) {}
>
> After:
>   Constructor()
>       : a(a)
>   {
>   }
>
> This style guide is pretty precise about this.
>
> Modified:
>     cfe/trunk/lib/Format/Format.cpp
>     cfe/trunk/unittests/Format/FormatTest.cpp
>
> Modified: cfe/trunk/lib/Format/Format.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/Format.cpp?rev=197980&r1=197979&r2=197980&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Format/Format.cpp (original)
> +++ cfe/trunk/lib/Format/Format.cpp Tue Dec 24 07:31:25 2013
> @@ -480,7 +480,7 @@ public:
>                             SmallVectorImpl<AnnotatedLine
> *>::const_iterator I,
>                             SmallVectorImpl<AnnotatedLine
> *>::const_iterator E) {
>      // We can never merge stuff if there are trailing line comments.
> -    AnnotatedLine *TheLine = *I;
> +    const AnnotatedLine *TheLine = *I;
>      if (TheLine->Last->Type == TT_LineComment)
>        return 0;
>
> @@ -498,7 +498,8 @@ public:
>      if (I + 1 == E || I[1]->Type == LT_Invalid)
>        return 0;
>
> -    if (TheLine->Last->Type == TT_FunctionLBrace) {
> +    if (TheLine->Last->Type == TT_FunctionLBrace &&
> +        TheLine->First != TheLine->Last) {
>        return Style.AllowShortFunctionsOnASingleLine
>                   ? tryMergeSimpleBlock(I, E, Limit)
>                   : 0;
> @@ -510,9 +511,11 @@ public:
>      }
>      if (I[1]->First->Type == TT_FunctionLBrace &&
>          Style.BreakBeforeBraces != FormatStyle::BS_Attach) {
> -      // Reduce the column limit by the number of spaces we need to insert
> -      // around braces.
> -      Limit = Limit > 3 ? Limit - 3 : 0;
> +      // Check for Limit <= 2 to accomodate for the " {".
>

So why don't we need to account for the full " { "?


> +      if (Limit <= 2 || (Style.ColumnLimit == 0 &&
> containsMustBreak(TheLine)))
> +        return 0;
> +      Limit -= 2;
> +
>        unsigned MergedLines = 0;
>        if (Style.AllowShortFunctionsOnASingleLine) {
>          MergedLines = tryMergeSimpleBlock(I + 1, E, Limit);
> @@ -641,6 +644,14 @@ private:
>      return 1 + I[1]->Last->TotalLength + 1 + I[2]->Last->TotalLength <=
> Limit;
>    }
>
> +  bool containsMustBreak(const AnnotatedLine *Line) {
> +    for (const FormatToken *Tok = Line->First; Tok; Tok = Tok->Next) {
> +      if (Tok->MustBreakBefore)
> +        return true;
> +    }
> +    return false;
> +  }
> +
>    const FormatStyle &Style;
>  };
>
>
> Modified: cfe/trunk/unittests/Format/FormatTest.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Format/FormatTest.cpp?rev=197980&r1=197979&r2=197980&view=diff
>
> ==============================================================================
> --- cfe/trunk/unittests/Format/FormatTest.cpp (original)
> +++ cfe/trunk/unittests/Format/FormatTest.cpp Tue Dec 24 07:31:25 2013
> @@ -6997,6 +6997,16 @@ TEST_F(FormatTest, AllmanBraceBreaking)
>                 "}\n",
>                 BreakBeforeBrace);
>
> +  BreakBeforeBrace.ColumnLimit = 19;
> +  verifyFormat("void f() { int i; }", BreakBeforeBrace);
> +  BreakBeforeBrace.ColumnLimit = 18;
> +  verifyFormat("void f()\n"
> +               "{\n"
> +               "  int i;\n"
> +               "}",
> +               BreakBeforeBrace);
> +  BreakBeforeBrace.ColumnLimit = 80;
> +
>    FormatStyle BreakBeforeBraceShortIfs = BreakBeforeBrace;
>    BreakBeforeBraceShortIfs.AllowShortIfStatementsOnASingleLine = true;
>    BreakBeforeBraceShortIfs.AllowShortLoopsOnASingleLine = true;
> @@ -7716,16 +7726,26 @@ TEST_F(FormatTest, FormatsWithWebKitStyl
>                 "    :
> aaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaa)\n"
>                 "    , aaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaa, // break\n"
>                 "                               aaaaaaaaaaaaaa)\n"
> -               "    , aaaaaaaaaaaaaaaaaaaaaaa() {}",
> +               "    , aaaaaaaaaaaaaaaaaaaaaaa()\n"
> +               "{\n"
> +               "}",
>                 Style);
>    verifyFormat("SomeClass::Constructor()\n"
> -               "    : a(a) {}",
> +               "    : a(a)\n"
> +               "{\n"
> +               "}",
>                 Style);
> +  EXPECT_EQ("SomeClass::Constructor()\n"
> +            "    : a(a)\n"
> +            "{\n"
> +            "}",
> +            format("SomeClass::Constructor():a(a){}", Style));
>    verifyFormat("SomeClass::Constructor()\n"
>                 "    : a(a)\n"
>                 "    , b(b)\n"
> -               "    , c(c) {}",
> -               Style);
> +               "    , c(c)\n"
> +               "{\n"
> +               "}", Style);
>    verifyFormat("SomeClass::Constructor()\n"
>                 "    : a(a)\n"
>                 "{\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/20131227/94df5574/attachment.html>


More information about the cfe-commits mailing list