diff options
-rw-r--r-- | clang/lib/Format/TokenAnnotator.cpp | 2 | ||||
-rw-r--r-- | clang/unittests/Format/FormatTest.cpp | 14 |
2 files changed, 12 insertions, 4 deletions
diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp index f057ef7f3e7..3fea52b9f8a 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/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/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp index 9cf4efcbf1f..94d4bbb00ef 100644 --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/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); |