From: Daniel Jasper Date: Tue, 21 May 2013 09:16:31 +0000 (+0000) Subject: Allow breaking before a trailing const. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e033e87cbe77341777100093f8066167888d4440;p=clang Allow breaking before a trailing const. Before: void someLongFunction( int someLongParameter) const; After: void someLongFunction(int someLongParameter) const; Also slightly cleanup tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182362 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Format/TokenAnnotator.cpp b/lib/Format/TokenAnnotator.cpp index 21518c6824..43ed6c31a6 100644 --- a/lib/Format/TokenAnnotator.cpp +++ b/lib/Format/TokenAnnotator.cpp @@ -1187,7 +1187,7 @@ bool TokenAnnotator::canBreakBefore(const AnnotatedLine &Line, tok::kw_class, tok::kw_struct) || Right.isOneOf(tok::lessless, tok::arrow, tok::period, tok::colon) || (Left.is(tok::r_paren) && Left.Type != TT_CastRParen && - Right.isOneOf(tok::identifier, tok::kw___attribute)) || + Right.isOneOf(tok::identifier, tok::kw_const, tok::kw___attribute)) || (Left.is(tok::l_paren) && !Right.is(tok::r_paren)) || (Left.is(tok::l_square) && !Right.is(tok::r_square)); } diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index e0ef3d192d..329faf7042 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -1628,12 +1628,6 @@ TEST_F(FormatTest, PutEmptyBlocksIntoOneLine) { // Line break tests. //===----------------------------------------------------------------------===// -TEST_F(FormatTest, FormatsFunctionDefinition) { - verifyFormat("void f(int a, int b, int c, int d, int e, int f, int g," - " int h, int j, int f,\n" - " int c, int ddddddddddddd) {}"); -} - TEST_F(FormatTest, FormatsAwesomeMethodCall) { verifyFormat( "SomeLongMethodName(SomeReallyLongMethod(CallOtherReallyLongMethod(\n" @@ -1914,6 +1908,30 @@ TEST_F(FormatTest, BreaksFunctionDeclarations) { " bbbb bbbb);"); } +TEST_F(FormatTest, BreaksFunctionDeclarationsWithTrailingTokens) { + verifyFormat("void someLongFunction(int someLongParameter)\n" + " const;", + getLLVMStyleWithColumns(45)); + + verifyFormat("void aaaaaaaaaaaa(int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)\n" + " LOCKS_EXCLUDED(aaaaaaaaaaaaa);"); + verifyFormat("void aaaaaaaaaaaa(int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) const\n" + " LOCKS_EXCLUDED(aaaaaaaaaaaaa);"); + verifyFormat("void aaaaaaaaaaaa(int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) const\n" + " LOCKS_EXCLUDED(aaaaaaaaaaaaa) {}"); + + verifyFormat( + "void aaaaaaaaaaaaaaaaaa()\n" + " __attribute__((aaaaaaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaa,\n" + " aaaaaaaaaaaaaaaaaaaaaaaaa));"); + verifyFormat("bool aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n" + " __attribute__((unused));"); + verifyFormat( + "bool aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n" + " GUARDED_BY(aaaaaaaaaaaa);"); +} + + TEST_F(FormatTest, BreaksDesireably) { verifyFormat("if (aaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaa) ||\n" " aaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaa) ||\n" @@ -2051,24 +2069,6 @@ TEST_F(FormatTest, FormatsBuilderPattern) { " ->aaaaaaaaaaaaaaaaa();"); } -TEST_F(FormatTest, DoesNotBreakTrailingAnnotation) { - verifyFormat("void aaaaaaaaaaaa(int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)\n" - " LOCKS_EXCLUDED(aaaaaaaaaaaaa);"); - verifyFormat("void aaaaaaaaaaaa(int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) const\n" - " LOCKS_EXCLUDED(aaaaaaaaaaaaa);"); - verifyFormat("void aaaaaaaaaaaa(int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) const\n" - " LOCKS_EXCLUDED(aaaaaaaaaaaaa) {}"); - verifyFormat( - "void aaaaaaaaaaaaaaaaaa()\n" - " __attribute__((aaaaaaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaa,\n" - " aaaaaaaaaaaaaaaaaaaaaaaaa));"); - verifyFormat("bool aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n" - " __attribute__((unused));"); - verifyFormat( - "bool aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n" - " GUARDED_BY(aaaaaaaaaaaa);"); -} - TEST_F(FormatTest, BreaksAccordingToOperatorPrecedence) { verifyFormat( "if (aaaaaaaaaaaaaaaaaaaaaaaaa ||\n"