]> granicus.if.org Git - clang/commitdiff
Improve handling of trailing declaration annotations.
authorDaniel Jasper <djasper@google.com>
Fri, 11 Jan 2013 14:23:32 +0000 (14:23 +0000)
committerDaniel Jasper <djasper@google.com>
Fri, 11 Jan 2013 14:23:32 +0000 (14:23 +0000)
Before:
void aaaaaaaaaaaa(int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) GUARDED_BY(
    aaaaaaaaaaaaa);

After:
void aaaaaaaaaaaa(int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
    GUARDED_BY(aaaaaaaaaaaaa);

Also did some formatting cleanups with clang-format on the way.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172200 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Format/Format.cpp
unittests/Format/FormatTest.cpp

index a09f9d0e116255ac551ffcac3e01df6f6325e2f4..56bb6ec426a215410666043d64d6ed6d412d1718 100644 (file)
@@ -183,7 +183,7 @@ bool fitsIntoLimit(const AnnotatedToken &RootToken, unsigned Limit) {
       FitsOnALine = false;
       break;
     }
-  };
+  }
   return FitsOnALine;
 }
 
@@ -274,7 +274,7 @@ private:
 
     bool operator<(const ParenState &Other) const {
       if (Indent != Other.Indent)
-        return Indent < Other.Indent; 
+        return Indent < Other.Indent;
       if (LastSpace != Other.LastSpace)
         return LastSpace < Other.LastSpace;
       if (FirstLessLess != Other.FirstLessLess)
@@ -406,8 +406,7 @@ private:
           (getPrecedence(Previous) == prec::Assignment ||
            Previous.is(tok::kw_return)))
         State.Stack[ParenLevel].Indent = State.Column + Spaces;
-      if (Previous.is(tok::l_paren) ||
-          Previous.is(tok::l_brace) ||
+      if (Previous.is(tok::l_paren) || Previous.is(tok::l_brace) ||
           State.NextToken->Parent->Type == TT_TemplateOpener)
         State.Stack[ParenLevel].Indent = State.Column + Spaces;
 
@@ -604,8 +603,7 @@ public:
   TokenAnnotator(const UnwrappedLine &Line, const FormatStyle &Style,
                  SourceManager &SourceMgr, Lexer &Lex)
       : Style(Style), SourceMgr(SourceMgr), Lex(Lex),
-        RootToken(Line.RootToken) {
-  }
+        RootToken(Line.RootToken) {}
 
   /// \brief A parser that gathers additional information about tokens.
   ///
@@ -615,8 +613,7 @@ public:
   class AnnotatingParser {
   public:
     AnnotatingParser(AnnotatedToken &RootToken)
-        : CurrentToken(&RootToken), KeywordVirtualFound(false) {
-    }
+        : CurrentToken(&RootToken), KeywordVirtualFound(false) {}
 
     bool parseAngle() {
       while (CurrentToken != NULL) {
@@ -1065,8 +1062,8 @@ private:
     if (Right.is(tok::l_paren)) {
       return CurrentLineType == LT_ObjCDecl || Left.is(tok::kw_if) ||
              Left.is(tok::kw_for) || Left.is(tok::kw_while) ||
-             Left.is(tok::kw_switch) ||
-             Left.is(tok::kw_return) || Left.is(tok::kw_catch);
+             Left.is(tok::kw_switch) || Left.is(tok::kw_return) ||
+             Left.is(tok::kw_catch);
     }
     if (Left.is(tok::at) &&
         Right.FormatTok.Tok.getObjCKeywordID() != tok::objc_not_keyword)
@@ -1167,6 +1164,8 @@ private:
            Right.is(tok::colon) || Left.is(tok::semi) ||
            Left.is(tok::l_brace) || Left.is(tok::question) ||
            Right.is(tok::r_brace) || Left.Type == TT_ConditionalExpr ||
+           (Left.is(tok::r_paren) && Left.Type != TT_CastRParen &&
+            Right.is(tok::identifier)) ||
            (Left.is(tok::l_paren) && !Right.is(tok::r_paren));
   }
 
@@ -1267,8 +1266,7 @@ public:
       : Diag(Diag), Style(Style), Lex(Lex), SourceMgr(SourceMgr),
         Ranges(Ranges) {}
 
-  virtual ~Formatter() {
-  }
+  virtual ~Formatter() {}
 
   tooling::Replacements format() {
     LexerBasedFormatTokenSource Tokens(Lex, SourceMgr);
@@ -1346,7 +1344,7 @@ private:
   unsigned formatFirstToken(const AnnotatedToken &RootToken, unsigned Level,
                             bool InPPDirective,
                             unsigned PreviousEndOfLineColumn) {
-    const FormatTokenTok = RootToken.FormatTok;
+    const FormatToken &Tok = RootToken.FormatTok;
     if (!Tok.WhiteSpaceStart.isValid() || StructuralError)
       return SourceMgr.getSpellingColumnNumber(Tok.Tok.getLocation()) - 1;
 
index e60ed3722e2f1e704139c1ce5f891392f7ef825d..47e6bdd114f4ff1848f93e7a0a5344a26128f90f 100644 (file)
@@ -741,6 +741,11 @@ TEST_F(FormatTest, BreaksDesireably) {
                "    }\n  }\n}");
 }
 
+TEST_F(FormatTest, DoesNotBreakTrailingAnnotation) {
+  verifyFormat("void aaaaaaaaaaaa(int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)\n"
+               "    GUARDED_BY(aaaaaaaaaaaaa);");
+}
+
 TEST_F(FormatTest, BreaksAccordingToOperatorPrecedence) {
   verifyFormat(
       "if (aaaaaaaaaaaaaaaaaaaaaaaaa ||\n"