summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorJacek Olesiak <jolesiak@google.com>2018-05-30 12:57:58 +0000
committerJacek Olesiak <jolesiak@google.com>2018-05-30 12:57:58 +0000
commitd8d5628834c7cda4a506a3c33105c8725b9b1762 (patch)
treed8c2197b1126775dccb7f843c331f305b024a4a4 /clang
parent28f048af9db8540fb3c4a6b1cd1770a0dbb6cc3b (diff)
downloadbcm5719-llvm-d8d5628834c7cda4a506a3c33105c8725b9b1762.tar.gz
bcm5719-llvm-d8d5628834c7cda4a506a3c33105c8725b9b1762.zip
Revert "[clang-format] Fix putting ObjC message arguments in one line for multiline receiver"
Summary: This reverts commit db9e5e9a616d7fdd4d1ba4c3b2cd89d8a0238533 (rC333171). Mentioned change introduced unintended formatting of ObjC code due to split priorities inherited from C/C++, e.g.: ``` fooooooo = [ [obj fooo] aaa:42 aaa:42]; ``` instead of ``` fooooooo = [[obj fooo] aaa:42 aaa:42]; ``` when formatted with ColumnLimit = 30. Reviewers: krasimir Reviewed By: krasimir Subscribers: benhamilton, klimek, cfe-commits Differential Revision: https://reviews.llvm.org/D47527 llvm-svn: 333539
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Format/ContinuationIndenter.cpp23
-rw-r--r--clang/unittests/Format/FormatTestObjC.cpp35
2 files changed, 0 insertions, 58 deletions
diff --git a/clang/lib/Format/ContinuationIndenter.cpp b/clang/lib/Format/ContinuationIndenter.cpp
index ac871471d9d..eacdfdc6e05 100644
--- a/clang/lib/Format/ContinuationIndenter.cpp
+++ b/clang/lib/Format/ContinuationIndenter.cpp
@@ -1387,29 +1387,6 @@ void ContinuationIndenter::moveStatePastScopeCloser(LineState &State) {
(Current.is(tok::greater) && Current.is(TT_DictLiteral))))
State.Stack.pop_back();
- // 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).
- // We check whether arguements fit after receiver scope closer (into the same
- // line).
- if (Current.MatchingParen && Current.MatchingParen->Previous) {
- const FormatToken &CurrentScopeOpener = *Current.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(tok::r_square)) {
// If this ends the array subscript expr, reset the corresponding value.
const FormatToken *NextNonComment = Current.getNextNonComment();
diff --git a/clang/unittests/Format/FormatTestObjC.cpp b/clang/unittests/Format/FormatTestObjC.cpp
index 43510c42790..c29c9d702bc 100644
--- a/clang/unittests/Format/FormatTestObjC.cpp
+++ b/clang/unittests/Format/FormatTestObjC.cpp
@@ -796,41 +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];");
- // Arguments just fit into one line.
- Style.ColumnLimit = 23;
- verifyFormat("[[obj a:42\n"
- " b:42\n"
- " c:42\n"
- " d:42] e:42 f:42];");
-
- // Arguments do not fit into one line with a receiver.
- Style.ColumnLimit = 20;
- verifyFormat("[[obj a:42] a:42\n"
- " b:42];");
- verifyFormat("[[obj a:42] a:42\n"
- " b:42\n"
- " c:42];");
- verifyFormat("[[obj aaaaaa:42\n"
- " b:42]\n"
- " cc:42\n"
- " d:42];");
-
-
Style.ColumnLimit = 70;
verifyFormat(
"void f() {\n"
OpenPOWER on IntegriCloud