Improve handling of trailing declaration annotations.

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.

llvm-svn: 172200
This commit is contained in:
Daniel Jasper 2013-01-11 14:23:32 +00:00
parent e3b7e2db70
commit fd8c4b1321
2 changed files with 16 additions and 13 deletions

View 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 FormatToken& Tok = RootToken.FormatTok;
const FormatToken &Tok = RootToken.FormatTok;
if (!Tok.WhiteSpaceStart.isValid() || StructuralError)
return SourceMgr.getSpellingColumnNumber(Tok.Tok.getLocation()) - 1;

View 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"