clang-format: [Java] Make annotation formatting more consistent.
authorDaniel Jasper <djasper@google.com>
Tue, 21 Oct 2014 10:02:03 +0000 (10:02 +0000)
committerDaniel Jasper <djasper@google.com>
Tue, 21 Oct 2014 10:02:03 +0000 (10:02 +0000)
Before:
  DoSomething(new A() {
    @Override public String toString() {
    }
  });

After:
  DoSomething(new A() {
    @Override
    public String toString() {
    }
  });

llvm-svn: 220282

clang/lib/Format/TokenAnnotator.cpp
clang/unittests/Format/FormatTestJava.cpp

index 4493471..ba08ace 100644 (file)
@@ -1797,7 +1797,7 @@ bool TokenAnnotator::mustBreakBefore(const AnnotatedLine &Line,
       return true;
   } else if (Style.Language == FormatStyle::LK_Java) {
     if (Left.Type == TT_JavaAnnotation && Right.isNot(tok::l_paren) &&
-        Line.MightBeFunctionDecl)
+        Line.Last->is(tok::l_brace))
       return true;
   }
 
index 49c95a8..00809be 100644 (file)
@@ -75,6 +75,12 @@ TEST_F(FormatTestJava, Annotations) {
   verifyFormat("@SuppressWarnings(value = \"unchecked\")\n"
                "public void doSomething() {\n}");
 
+  verifyFormat("DoSomething(new A() {\n"
+               "  @Override\n"
+               "  public String toString() {\n"
+               "  }\n"
+               "});");
+
   verifyFormat("@Partial @Mock DataLoader loader;");
 }