[clang] ba3484c - [clang-format/java] format multiple qualified annotations on one declaration better

Nico Weber via cfe-commits cfe-commits at lists.llvm.org
Fri Jan 3 09:12:46 PST 2020


Author: Nico Weber
Date: 2020-01-03T12:11:44-05:00
New Revision: ba3484c051b62a662c555200f4a03b2e8df8e094

URL: https://github.com/llvm/llvm-project/commit/ba3484c051b62a662c555200f4a03b2e8df8e094
DIFF: https://github.com/llvm/llvm-project/commit/ba3484c051b62a662c555200f4a03b2e8df8e094.diff

LOG: [clang-format/java] format multiple qualified annotations on one declaration better

Before:
    class Foo {
      @CommandLineFlags
          .Add
          @Features.foo
          public void test() {}
    }

Now:
    class Foo {
        @Features.foo
        @CommandLineFlags.Add
        public void test() { }
    }

See also https://crbug.com/1034115

Added: 
    

Modified: 
    clang/lib/Format/FormatToken.h
    clang/unittests/Format/FormatTestJava.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/Format/FormatToken.h b/clang/lib/Format/FormatToken.h
index 39498280fb6d..e9cd327754ef 100644
--- a/clang/lib/Format/FormatToken.h
+++ b/clang/lib/Format/FormatToken.h
@@ -407,7 +407,7 @@ struct FormatToken {
   bool isMemberAccess() const {
     return isOneOf(tok::arrow, tok::period, tok::arrowstar) &&
            !isOneOf(TT_DesignatedInitializerPeriod, TT_TrailingReturnArrow,
-                    TT_LambdaArrow);
+                    TT_LambdaArrow, TT_LeadingJavaAnnotation);
   }
 
   bool isUnaryOperator() const {

diff  --git a/clang/unittests/Format/FormatTestJava.cpp b/clang/unittests/Format/FormatTestJava.cpp
index a4936e0e1ccc..5e73e4b4ea4e 100644
--- a/clang/unittests/Format/FormatTestJava.cpp
+++ b/clang/unittests/Format/FormatTestJava.cpp
@@ -335,6 +335,14 @@ TEST_F(FormatTestJava, Annotations) {
   verifyFormat("@Annotation(\"Some\"\n"
                "    + \" text\")\n"
                "List<Integer> list;");
+
+  verifyFormat(
+    "@Test\n"
+    "@Feature({\"Android-TabSwitcher\"})\n"
+    "@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE})\n"
+    "@Features.EnableFeatures({FEATURE})\n"
+    "public void test(@Foo.bar(\"baz\") @Quux.Qoob int theFirstParaaaaam,\n"
+    "    @Foo.bar(\"baz\") @Quux.Qoob int theSecondParaaaaaaaaaaaaaaaam) {}");
 }
 
 TEST_F(FormatTestJava, Generics) {


        


More information about the cfe-commits mailing list