From 87b3c14288e630c6479da2d1730cb4f3262225b4 Mon Sep 17 00:00:00 2001 From: Daniel Jasper Date: Mon, 26 May 2014 07:24:34 +0000 Subject: [PATCH] clang-format: Keep '{' of dict literals on the same line in Allman style Before: void f() { [object someMethod:@ { @"a" : @"b" }]; } After: void f() { [object someMethod:@{ @"a" : @"b" }]; } This fixes llvm.org/PR19854. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209615 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Format/TokenAnnotator.cpp | 2 +- unittests/Format/FormatTest.cpp | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/Format/TokenAnnotator.cpp b/lib/Format/TokenAnnotator.cpp index f057ef7f3e..3fea52b9f8 100644 --- a/lib/Format/TokenAnnotator.cpp +++ b/lib/Format/TokenAnnotator.cpp @@ -1596,7 +1596,7 @@ bool TokenAnnotator::mustBreakBefore(const AnnotatedLine &Line, !Style.ConstructorInitializerAllOnOneLineOrOnePerLine) { return true; } else if (Right.is(tok::l_brace) && Right.BlockKind == BK_Block && - Right.Type != TT_ObjCBlockLBrace) { + Right.Type != TT_ObjCBlockLBrace && Right.Type != TT_DictLiteral) { return Style.BreakBeforeBraces == FormatStyle::BS_Allman || Style.BreakBeforeBraces == FormatStyle::BS_GNU; } else if (Right.is(tok::string_literal) && diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index 9cf4efcbf1..94d4bbb00e 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -7698,15 +7698,23 @@ TEST_F(FormatTest, AllmanBraceBreaking) { "#endif", BreakBeforeBrace); - // This shouldn't affect ObjC blocks. + // This shouldn't affect ObjC blocks.. verifyFormat("[self doSomeThingWithACompletionHandler:^{\n" " // ...\n" " int i;\n" - "}];"); + "}];", + BreakBeforeBrace); verifyFormat("void (^block)(void) = ^{\n" " // ...\n" " int i;\n" - "};"); + "};", + BreakBeforeBrace); + // .. or dict literals. + verifyFormat("void f()\n" + "{\n" + " [object someMethod:@{ @\"a\" : @\"b\" }];\n" + "}", + BreakBeforeBrace); BreakBeforeBrace.ColumnLimit = 19; verifyFormat("void f() { int i; }", BreakBeforeBrace); -- 2.40.0