diff options
author | Nico Weber <nicolasweber@gmx.de> | 2013-02-13 03:48:27 +0000 |
---|---|---|
committer | Nico Weber <nicolasweber@gmx.de> | 2013-02-13 03:48:27 +0000 |
commit | 4c2cc603f5239f3b2963ce3e5d25adcf4d0a028d (patch) | |
tree | 4f0b02d73f22c0d886a114d833e30a3b55723b72 | |
parent | a46961b8dfe0a112097299e053c3d0cc5af13ab8 (diff) |
Formatter: Detect ObjC method expressions after casts.
Not all casts are correctly detected yet, but it helps in some cases.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175028 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Format/TokenAnnotator.cpp | 2 | ||||
-rw-r--r-- | unittests/Format/FormatTest.cpp | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/lib/Format/TokenAnnotator.cpp b/lib/Format/TokenAnnotator.cpp index 2370597dbb..ececc7c98a 100644 --- a/lib/Format/TokenAnnotator.cpp +++ b/lib/Format/TokenAnnotator.cpp @@ -197,7 +197,7 @@ private: !Parent || Parent->is(tok::colon) || Parent->is(tok::l_square) || Parent->is(tok::l_paren) || Parent->is(tok::kw_return) || Parent->is(tok::kw_throw) || isUnaryOperator(*Parent) || - Parent->Type == TT_ObjCForIn || + Parent->Type == TT_ObjCForIn || Parent->Type == TT_CastRParen || getBinOpPrecedence(Parent->FormatTok.Tok.getKind(), true, true) > prec::Unknown; bool StartsObjCArrayLiteral = Parent && Parent->is(tok::at); diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index f28bc88444..f2ccdb0022 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -2405,7 +2405,8 @@ TEST_F(FormatTest, FormatObjCMethodExpr) { verifyFormat("int a = &[foo bar:baz];"); verifyFormat("int a = *[foo bar:baz];"); // FIXME: Make casts work, without breaking f()[4]. - //verifyFormat("int a = (int) [foo bar:baz];"); + //verifyFormat("int a = (int)[foo bar:baz];"); + verifyFormat("return (MyType *)[self.tableView cellForRowAtIndexPath:cell];"); // Binary operators. verifyFormat("[foo bar:baz], [foo bar:baz];"); |