forked from OSchip/llvm-project
Revert "[clang-format] Fix putting ObjC message arguments in one line for multiline receiver"
Summary: Reverts D46879 Reviewers: benhamilton Reviewed By: benhamilton Subscribers: krasimir, klimek, cfe-commits Differential Revision: https://reviews.llvm.org/D47205 llvm-svn: 332998
This commit is contained in:
parent
4c7763eb2f
commit
f51ce777e3
|
@ -1073,34 +1073,8 @@ unsigned ContinuationIndenter::moveStateToNextToken(LineState &State,
|
|||
if (Current.isMemberAccess())
|
||||
State.Stack.back().StartOfFunctionCall =
|
||||
!Current.NextOperator ? 0 : State.Column;
|
||||
if (Current.is(TT_SelectorName) &&
|
||||
!State.Stack.back().ObjCSelectorNameFound) {
|
||||
if (Current.is(TT_SelectorName))
|
||||
State.Stack.back().ObjCSelectorNameFound = true;
|
||||
|
||||
// Reevaluate whether ObjC message arguments fit into one line.
|
||||
// If a receiver spans multiple lines, e.g.:
|
||||
// [[object block:^{
|
||||
// return 42;
|
||||
// }] a:42 b:42];
|
||||
// BreakBeforeParameter is calculated based on an incorrect assumption
|
||||
// (it is checked whether the whole expression fits into one line without
|
||||
// considering a line break inside a message receiver).
|
||||
if (Current.Previous && Current.Previous->closesScope() &&
|
||||
Current.Previous->MatchingParen &&
|
||||
Current.Previous->MatchingParen->Previous) {
|
||||
const FormatToken &CurrentScopeOpener =
|
||||
*Current.Previous->MatchingParen->Previous;
|
||||
if (CurrentScopeOpener.is(TT_ObjCMethodExpr) &&
|
||||
CurrentScopeOpener.MatchingParen) {
|
||||
int NecessarySpaceInLine =
|
||||
getLengthToMatchingParen(CurrentScopeOpener, State.Stack) +
|
||||
CurrentScopeOpener.TotalLength - Current.TotalLength - 1;
|
||||
if (State.Column + Current.ColumnWidth + NecessarySpaceInLine <=
|
||||
Style.ColumnLimit)
|
||||
State.Stack.back().BreakBeforeParameter = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (Current.is(TT_CtorInitializerColon) &&
|
||||
Style.BreakConstructorInitializers != FormatStyle::BCIS_AfterColon) {
|
||||
// Indent 2 from the column, so:
|
||||
|
|
|
@ -796,35 +796,6 @@ TEST_F(FormatTestObjC, FormatObjCMethodExpr) {
|
|||
verifyFormat("[((Foo *)foo) bar];");
|
||||
verifyFormat("[((Foo *)foo) bar:1 blech:2];");
|
||||
|
||||
// Message receiver taking multiple lines.
|
||||
Style.ColumnLimit = 20;
|
||||
// Non-corner case.
|
||||
verifyFormat("[[object block:^{\n"
|
||||
" return 42;\n"
|
||||
"}] a:42 b:42];");
|
||||
// Arguments just fit into one line.
|
||||
verifyFormat("[[object block:^{\n"
|
||||
" return 42;\n"
|
||||
"}] aaaaaaa:42 b:42];");
|
||||
// Arguments just over a column limit.
|
||||
verifyFormat("[[object block:^{\n"
|
||||
" return 42;\n"
|
||||
"}] aaaaaaa:42\n"
|
||||
" bb:42];");
|
||||
// Non-corner case.
|
||||
verifyFormat("[[object aaa:42\n"
|
||||
" b:42]\n"
|
||||
" cc:42 d:42];");
|
||||
// Arguments just fit into one line.
|
||||
verifyFormat("[[object aaa:42\n"
|
||||
" b:42]\n"
|
||||
" cccccc:42 d:42];");
|
||||
// Arguments just over a column limit.
|
||||
verifyFormat("[[object aaa:42\n"
|
||||
" b:42]\n"
|
||||
" cccccc:42\n"
|
||||
" dd:42];");
|
||||
|
||||
Style.ColumnLimit = 70;
|
||||
verifyFormat(
|
||||
"void f() {\n"
|
||||
|
|
Loading…
Reference in New Issue