From 58f3ace1dc85219736e96f2012bf9e8a052a55cd Mon Sep 17 00:00:00 2001 From: Ben Hamilton Date: Tue, 6 Feb 2018 18:01:47 +0000 Subject: [PATCH] [clang-format] Add more tests for Objective-C 2.0 generic alignment Summary: In r236412, @djasper added a comment: // FIXME: We likely want to do this for more combinations of brackets. // Verify that it is wanted for ObjC, too. In D42650, @stephanemoore asked me to confirm this. This followup to D42650 adds more tests to verify the relative alignment behavior for Objective-C 2.0 generics passed to functions and removes the second half of the FIXME comment. Test Plan: make -j12 FormatTests && \ ./tools/clang/unittests/Format/FormatTests --gtest_filter=FormatTestObjC.\* Reviewers: stephanemoore, jolesiak, djasper Reviewed By: jolesiak Subscribers: klimek, cfe-commits, djasper, stephanemoore, krasimir Differential Revision: https://reviews.llvm.org/D42864 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@324364 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Format/ContinuationIndenter.cpp | 1 - unittests/Format/FormatTestObjC.cpp | 11 +++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/Format/ContinuationIndenter.cpp b/lib/Format/ContinuationIndenter.cpp index 00f79ad17d..717ebb8a81 100644 --- a/lib/Format/ContinuationIndenter.cpp +++ b/lib/Format/ContinuationIndenter.cpp @@ -1211,7 +1211,6 @@ void ContinuationIndenter::moveStatePastScopeOpener(LineState &State, // void SomeFunction(vector< // break // int> v); // FIXME: We likely want to do this for more combinations of brackets. - // Verify that it is wanted for ObjC, too. if (Current.is(tok::less) && Current.ParentBracket == tok::l_paren) { NewIndent = std::max(NewIndent, State.Stack.back().Indent); LastSpace = std::max(LastSpace, State.Stack.back().Indent); diff --git a/unittests/Format/FormatTestObjC.cpp b/unittests/Format/FormatTestObjC.cpp index d9805859f6..16a4390203 100644 --- a/unittests/Format/FormatTestObjC.cpp +++ b/unittests/Format/FormatTestObjC.cpp @@ -189,6 +189,17 @@ TEST_F(FormatTestObjC, FormatObjCAutoreleasepool) { "}\n"); } +TEST_F(FormatTestObjC, FormatObjCGenerics) { + Style.ColumnLimit = 40; + verifyFormat("int aaaaaaaaaaaaaaaa(\n" + " NSArray\n" + " aaaaaaaaaaaaaaaaa);\n"); + verifyFormat("int aaaaaaaaaaaaaaaa(\n" + " NSArray *>\n" + " aaaaaaaaaaaaaaaaa);\n"); +} + TEST_F(FormatTestObjC, FormatObjCInterface) { verifyFormat("@interface Foo : NSObject {\n" "@public\n" -- 2.40.0