浏览代码

clang-format: [Java] Don't let annotations confuse return type analysis.

Before:
  @Test
  ReturnType
  doSomething(String aaaaaaaaaaaaa, String bbbbbbbbbbbbbbb) {}

After:
  @Test
  ReturnType doSomething(
      String aaaaaaaaaaaaa, String bbbbbbbbbbbbbbb) {}

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@225964 91177308-0d34-0410-b5e6-96231b3b80d8
Daniel Jasper 10 年之前
父节点
当前提交
f836d01631
共有 2 个文件被更改,包括 7 次插入0 次删除
  1. 3 0
      lib/Format/TokenAnnotator.cpp
  2. 4 0
      unittests/Format/FormatTestJava.cpp

+ 3 - 0
lib/Format/TokenAnnotator.cpp

@@ -900,6 +900,9 @@ private:
     if (Tok.isNot(tok::identifier) || !Tok.Previous)
       return false;
 
+    if (Tok.Previous->is(TT_LeadingJavaAnnotation))
+        return false;
+
     // Skip "const" as it does not have an influence on whether this is a name.
     FormatToken *PreviousNotConst = Tok.Previous;
     while (PreviousNotConst && PreviousNotConst->is(tok::kw_const))

+ 4 - 0
unittests/Format/FormatTestJava.cpp

@@ -283,6 +283,10 @@ TEST_F(FormatTestJava, Annotations) {
                "    aaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaa)\n"
                "int i;",
                getStyleWithColumns(50));
+  verifyFormat("@Test\n"
+               "ReturnType doSomething(\n"
+               "    String aaaaaaaaaaaaa, String bbbbbbbbbbbbbbb) {}",
+               getStyleWithColumns(60));
 }
 
 TEST_F(FormatTestJava, Generics) {