소스 검색

clang-format: In Java, `assert` is followed by an expression.

Before: assert a&& b;
Now:    assert a && b;


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247750 91177308-0d34-0410-b5e6-96231b3b80d8
Nico Weber 10 년 전
부모
커밋
90992a9c9f
3개의 변경된 파일8개의 추가작업 그리고 1개의 파일을 삭제
  1. 2 0
      lib/Format/FormatToken.h
  2. 1 1
      lib/Format/TokenAnnotator.cpp
  3. 5 0
      unittests/Format/FormatTestJava.cpp

+ 2 - 0
lib/Format/FormatToken.h

@@ -539,6 +539,7 @@ struct AdditionalKeywords {
     kw_var = &IdentTable.get("var");
 
     kw_abstract = &IdentTable.get("abstract");
+    kw_assert = &IdentTable.get("assert");
     kw_extends = &IdentTable.get("extends");
     kw_implements = &IdentTable.get("implements");
     kw_instanceof = &IdentTable.get("instanceof");
@@ -580,6 +581,7 @@ struct AdditionalKeywords {
 
   // Java keywords.
   IdentifierInfo *kw_abstract;
+  IdentifierInfo *kw_assert;
   IdentifierInfo *kw_extends;
   IdentifierInfo *kw_implements;
   IdentifierInfo *kw_instanceof;

+ 1 - 1
lib/Format/TokenAnnotator.cpp

@@ -860,7 +860,7 @@ private:
       Contexts.back().IsExpression = true;
     } else if (Current.is(TT_TrailingReturnArrow)) {
       Contexts.back().IsExpression = false;
-    } else if (Current.is(TT_LambdaArrow)) {
+    } else if (Current.is(TT_LambdaArrow) || Current.is(Keywords.kw_assert)) {
       Contexts.back().IsExpression = Style.Language == FormatStyle::LK_Java;
     } else if (Current.is(tok::l_paren) && !Line.MustBeDeclaration &&
                !Line.InPPDirective &&

+ 5 - 0
unittests/Format/FormatTestJava.cpp

@@ -393,6 +393,11 @@ TEST_F(FormatTestJava, SynchronizedKeyword) {
                "}");
 }
 
+TEST_F(FormatTestJava, AssertKeyword) {
+  verifyFormat("assert a && b;");
+}
+
+
 TEST_F(FormatTestJava, PackageDeclarations) {
   verifyFormat("package some.really.loooooooooooooooooooooong.package;",
                getStyleWithColumns(50));