From cd458330d0cdced36a49f1d66cd9c5908f46d939 Mon Sep 17 00:00:00 2001 From: Nico Weber Date: Sat, 12 Jan 2013 23:48:49 +0000 Subject: [PATCH] Formatter: Don't insert a space before unary operators after selector names. Before: [color getRed: &r green: &g blue: &b alpha: &a]; Now: [color getRed:&r green:&g blue:&b alpha:&a]; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172337 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Format/Format.cpp | 5 +++-- unittests/Format/FormatTest.cpp | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp index 9411932541..29debe58b6 100644 --- a/lib/Format/Format.cpp +++ b/lib/Format/Format.cpp @@ -1165,8 +1165,9 @@ private: return false; if (Tok.Type == TT_UnaryOperator) return Tok.Parent->isNot(tok::l_paren) && - Tok.Parent->isNot(tok::l_square) && - Tok.Parent->isNot(tok::at); + Tok.Parent->isNot(tok::l_square) && Tok.Parent->isNot(tok::at) && + (Tok.Parent->isNot(tok::colon) || + Tok.Parent->Type != TT_ObjCMethodExpr); if (Tok.Parent->is(tok::greater) && Tok.is(tok::greater)) { return Tok.Type == TT_TemplateCloser && Tok.Parent->Type == TT_TemplateCloser && Style.SplitTemplateClosingGreater; diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index 8bb217e483..5ace0f82f9 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -1533,6 +1533,7 @@ TEST_F(FormatTest, FormatObjCMethodExpr) { verifyFormat("[self stuffWithInt:a ? (e ? f : g) : c];"); verifyFormat("[cond ? obj1 : obj2 methodWithParam:param]"); verifyFormat("[button setAction:@selector(zoomOut:)];"); + verifyFormat("[color getRed:&r green:&g blue:&b alpha:&a];"); verifyFormat("arr[[self indexForFoo:a]];"); verifyFormat("throw [self errorFor:a];"); -- 2.50.1