clang-format: [Java] Fix formatting of multiple annotations.
authorDaniel Jasper <djasper@google.com>
Tue, 21 Oct 2014 11:17:56 +0000 (11:17 +0000)
committerDaniel Jasper <djasper@google.com>
Tue, 21 Oct 2014 11:17:56 +0000 (11:17 +0000)
Before:
  @SuppressWarnings(value = "unchecked")
  @Author(name = "abc") public void doSomething() {
  }

After:
  @SuppressWarnings(value = "unchecked")
  @Author(name = "abc")
  public void doSomething() {
  }

llvm-svn: 220286

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

index 4b39b50..db0e931 100644 (file)
@@ -827,7 +827,8 @@ private:
             PreviousNoComment->isOneOf(tok::comma, tok::l_brace))
           Current.Type = TT_DesignatedInitializerPeriod;
       } else if (Current.isOneOf(tok::identifier, tok::kw_const) &&
-                 Current.Previous && Current.Previous->isNot(tok::equal) &&
+                 Current.Previous &&
+                 !Current.Previous->isOneOf(tok::equal, tok::at) &&
                  Line.MightBeFunctionDecl && Contexts.size() == 1) {
         // Line.MightBeFunctionDecl can only be true after the parentheses of a
         // function declaration have been found.
index f7d85fc..d38a807 100644 (file)
@@ -74,6 +74,9 @@ TEST_F(FormatTestJava, Annotations) {
 
   verifyFormat("@SuppressWarnings(value = \"unchecked\")\n"
                "public void doSomething() {\n}");
+  verifyFormat("@SuppressWarnings(value = \"unchecked\")\n"
+               "@Author(name = \"abc\")\n"
+               "public void doSomething() {\n}");
 
   verifyFormat("DoSomething(new A() {\n"
                "  @Override\n"