diff options
author | Daniel Jasper <djasper@google.com> | 2013-02-14 15:01:34 +0000 |
---|---|---|
committer | Daniel Jasper <djasper@google.com> | 2013-02-14 15:01:34 +0000 |
commit | e11095aff1db81f4bccb04b50df3f74b459dc81e (patch) | |
tree | 8d7da83db00f9a61de5fd470879d252b5c3a5b3e /clang/lib/Format | |
parent | 2efb59a71906710a1ab899bf15502b5689e282d3 (diff) | |
download | bcm5719-llvm-e11095aff1db81f4bccb04b50df3f74b459dc81e.tar.gz bcm5719-llvm-e11095aff1db81f4bccb04b50df3f74b459dc81e.zip |
Fix counting of parameters so that r175162 works as expected.
Before:
aaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()
.aaaaaaaaaaaaaaaaa());
After:
aaaaaaaaaaaaaaaaaaaaaaaaa(
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa().aaaaaaaaaaaaaaaaa());
Not sure which of the formattings above is better, but we should not pick
one by accident.
llvm-svn: 175165
Diffstat (limited to 'clang/lib/Format')
-rw-r--r-- | clang/lib/Format/TokenAnnotator.cpp | 19 | ||||
-rw-r--r-- | clang/lib/Format/TokenAnnotator.h | 2 |
2 files changed, 12 insertions, 9 deletions
diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp index ace6d254672..44593f358f2 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/lib/Format/TokenAnnotator.cpp @@ -107,8 +107,7 @@ private: if (CurrentToken->is(tok::pipepipe) || CurrentToken->is(tok::ampamp) || CurrentToken->is(tok::question) || CurrentToken->is(tok::colon)) return false; - if (CurrentToken->is(tok::comma)) - ++Left->ParameterCount; + updateParameterCount(Left, CurrentToken); if (!consumeToken()) return false; } @@ -175,8 +174,7 @@ private: } if (CurrentToken->is(tok::r_square) || CurrentToken->is(tok::r_brace)) return false; - if (CurrentToken->is(tok::comma)) - ++Left->ParameterCount; + updateParameterCount(Left, CurrentToken); if (!consumeToken()) return false; } @@ -240,8 +238,7 @@ private: } if (CurrentToken->is(tok::r_paren) || CurrentToken->is(tok::r_brace)) return false; - if (CurrentToken->is(tok::comma)) - ++Left->ParameterCount; + updateParameterCount(Left, CurrentToken); if (!consumeToken()) return false; } @@ -263,13 +260,19 @@ private: } if (CurrentToken->is(tok::r_paren) || CurrentToken->is(tok::r_square)) return false; - if (CurrentToken->is(tok::comma)) - ++Left->ParameterCount; + updateParameterCount(Left, CurrentToken); if (!consumeToken()) return false; } return true; } + + void updateParameterCount(AnnotatedToken *Left, AnnotatedToken *Current) { + if (Current->is(tok::comma)) + ++Left->ParameterCount; + else if (Left->ParameterCount == 0 && Current->isNot(tok::comment)) + Left->ParameterCount = 1; + } bool parseConditional() { while (CurrentToken != NULL) { diff --git a/clang/lib/Format/TokenAnnotator.h b/clang/lib/Format/TokenAnnotator.h index 5ce84af96a0..850b6ddedee 100644 --- a/clang/lib/Format/TokenAnnotator.h +++ b/clang/lib/Format/TokenAnnotator.h @@ -73,7 +73,7 @@ public: : FormatTok(FormatTok), Type(TT_Unknown), SpacesRequiredBefore(0), CanBreakBefore(false), MustBreakBefore(false), ClosesTemplateDeclaration(false), MatchingParen(NULL), - ParameterCount(1), BindingStrength(0), SplitPenalty(0), + ParameterCount(0), BindingStrength(0), SplitPenalty(0), LongestObjCSelectorName(0), Parent(NULL), FakeLParens(0), FakeRParens(0) { } |