clang-format: Fix ObjC method exprs with variadic parameters.
Before:
_versionLabel.text = [
NSString stringWithFormat:NSLocalizedString(@"version: %@", @"Label"),
[NSBundle mainBundle].infoDictionary[@"CFBundleShortVersionString"]
];
After:
_versionLabel.text =
[NSString stringWithFormat:NSLocalizedString(@"version: %@", @"Label"),
[NSBundle mainBundle].infoDictionary[@"CFBundleShortVersionString"]];
This fixed llvm.org/PR17695.
llvm-svn: 193475
This commit is contained in:
parent
a933f94c92
commit
a1ea4cbb80
@ -197,6 +197,7 @@ private:
|
||||
getBinOpPrecedence(Parent->Tok.getKind(), true, true) > prec::Unknown);
|
||||
ScopedContextCreator ContextCreator(*this, tok::l_square, 10);
|
||||
Contexts.back().IsExpression = true;
|
||||
bool ColonFound = false;
|
||||
|
||||
if (StartsObjCMethodExpr) {
|
||||
Contexts.back().ColonIsObjCMethodExpr = true;
|
||||
@ -234,9 +235,11 @@ private:
|
||||
}
|
||||
if (CurrentToken->isOneOf(tok::r_paren, tok::r_brace))
|
||||
return false;
|
||||
if (CurrentToken->is(tok::colon))
|
||||
ColonFound = true;
|
||||
if (CurrentToken->is(tok::comma) &&
|
||||
(Left->Type == TT_ArraySubscriptLSquare ||
|
||||
Left->Type == TT_ObjCMethodExpr))
|
||||
(Left->Type == TT_ObjCMethodExpr && !ColonFound)))
|
||||
Left->Type = TT_ArrayInitializerLSquare;
|
||||
updateParameterCount(Left, CurrentToken);
|
||||
if (!consumeToken())
|
||||
|
||||
@ -5304,6 +5304,10 @@ TEST_F(FormatTest, FormatObjCMethodExpr) {
|
||||
" aaaaaaaaaa:bbbbbbbbbbbbbbbbb\n"
|
||||
" aaaaa:bbbbbbbbbbb + bbbbbbbbbbbb\n"
|
||||
" aaaa:bbb];");
|
||||
|
||||
// Variadic parameters.
|
||||
verifyFormat(
|
||||
"NSArray *myStrings = [NSArray stringarray:@\"a\", @\"b\", nil];");
|
||||
}
|
||||
|
||||
TEST_F(FormatTest, ObjCAt) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user