clang-format: Don't merge lines with comments.
authorDaniel Jasper <djasper@google.com>
Sun, 7 Dec 2014 16:44:49 +0000 (16:44 +0000)
committerDaniel Jasper <djasper@google.com>
Sun, 7 Dec 2014 16:44:49 +0000 (16:44 +0000)
Before:
  int f() { // comment return 42; }

After:
  int f() { // comment
    return 42;
  }

This fixes llvm.org/PR21769.

llvm-svn: 223609

clang/lib/Format/Format.cpp
clang/unittests/Format/FormatTest.cpp

index cf8e5d3..ebd1290 100644 (file)
@@ -665,6 +665,9 @@ public:
     }
     if (I[1]->First->is(TT_FunctionLBrace) &&
         Style.BreakBeforeBraces != FormatStyle::BS_Attach) {
+      if (I[1]->Last->is(TT_LineComment))
+        return 0;
+
       // Check for Limit <= 2 to account for the " {".
       if (Limit <= 2 || (Style.ColumnLimit == 0 && containsMustBreak(TheLine)))
         return 0;
index cf2d809..8664711 100644 (file)
@@ -8372,6 +8372,11 @@ TEST_F(FormatTest, AllmanBraceBreaking) {
                "  [object someMethod:@{ @\"a\" : @\"b\" }];\n"
                "}",
                AllmanBraceStyle);
+  verifyFormat("int f()\n"
+               "{ // comment\n"
+               "  return 42;\n"
+               "}",
+               AllmanBraceStyle);
 
   AllmanBraceStyle.ColumnLimit = 19;
   verifyFormat("void f() { int i; }", AllmanBraceStyle);