diff options
author | Daniel Jasper <djasper@google.com> | 2013-03-14 09:50:46 +0000 |
---|---|---|
committer | Daniel Jasper <djasper@google.com> | 2013-03-14 09:50:46 +0000 |
commit | 8ef19a22956defa392df46c79e2d499ab7b16647 (patch) | |
tree | d06c7cce5b97b977e4325909fe554f23a4b1e357 | |
parent | c3ae583a9a2e0e5c862a94b678c7cdfaab46a981 (diff) |
Improve formatting of trailing annotations.
Before:
bool aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa __attribute__((
unused));
After:
bool aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
__attribute__((unused));
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177034 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Format/TokenAnnotator.cpp | 8 | ||||
-rw-r--r-- | unittests/Format/FormatTest.cpp | 14 |
2 files changed, 15 insertions, 7 deletions
diff --git a/lib/Format/TokenAnnotator.cpp b/lib/Format/TokenAnnotator.cpp index db5924c8a5..0b8f286ebe 100644 --- a/lib/Format/TokenAnnotator.cpp +++ b/lib/Format/TokenAnnotator.cpp @@ -1111,12 +1111,12 @@ bool TokenAnnotator::canBreakBefore(const AnnotatedLine &Line, Left.Parent->is(tok::r_paren)) return !Right.isOneOf(tok::l_brace, tok::semi, tok::equal); + if (Right.is(tok::kw___attribute)) + return true; + // We only break before r_brace if there was a corresponding break before // the l_brace, which is tracked by BreakBeforeClosingBrace. - if (Right.is(tok::r_brace)) - return false; - - if (Right.isOneOf(tok::r_paren, tok::greater)) + if (Right.isOneOf(tok::r_brace, tok::r_paren, tok::greater)) return false; if (Left.is(tok::identifier) && Right.is(tok::string_literal)) return true; diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index 4e54212f99..ac9dd64418 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -1387,15 +1387,23 @@ TEST_F(FormatTest, FormatsBuilderPattern) { TEST_F(FormatTest, DoesNotBreakTrailingAnnotation) { verifyFormat("void aaaaaaaaaaaa(int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)\n" - " GUARDED_BY(aaaaaaaaaaaaa);"); + " LOCKS_EXCLUDED(aaaaaaaaaaaaa);"); verifyFormat("void aaaaaaaaaaaa(int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) const\n" - " GUARDED_BY(aaaaaaaaaaaaa);"); + " LOCKS_EXCLUDED(aaaaaaaaaaaaa);"); verifyFormat("void aaaaaaaaaaaa(int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) const\n" - " GUARDED_BY(aaaaaaaaaaaaa) {}"); + " LOCKS_EXCLUDED(aaaaaaaaaaaaa) {}"); verifyFormat( "void aaaaaaaaaaaaaaaaaa()\n" " __attribute__((aaaaaaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaa,\n" " aaaaaaaaaaaaaaaaaaaaaaaaa));"); + verifyFormat("bool aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n" + " __attribute__((unused));"); + + // FIXME: This is bad indentation, but generally hard to distinguish from a + // function declaration. + verifyFormat( + "bool aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n" + "GUARDED_BY(aaaaaaaaaaaa);"); } TEST_F(FormatTest, BreaksAccordingToOperatorPrecedence) { |