forked from OSchip/llvm-project
[clang-format] Don't insert space between ObjC class and lightweight generic
Summary: In D45185, I added clang-format parser support for Objective-C generics. However, I didn't touch the whitespace logic, so they got the same space logic as Objective-C protocol lists. In every example in the Apple SDK and in the documentation, there is no space between the class name and the opening `<` for the lightweight generic specification, so this diff removes the space and updates the tests. Test Plan: Tests updated. Ran tests with: % make -j16 FormatTests && ./tools/clang/unittests/Format/FormatTests Reviewers: djasper, jolesiak Reviewed By: djasper Subscribers: klimek, cfe-commits Differential Revision: https://reviews.llvm.org/D45498 llvm-svn: 329917
This commit is contained in:
parent
416348ef83
commit
df72e9851a
|
@ -2349,9 +2349,12 @@ bool TokenAnnotator::spaceRequiredBetween(const AnnotatedLine &Line,
|
|||
: Style.SpacesInParentheses;
|
||||
if (Right.isOneOf(tok::semi, tok::comma))
|
||||
return false;
|
||||
if (Right.is(tok::less) && Line.Type == LT_ObjCDecl &&
|
||||
Style.ObjCSpaceBeforeProtocolList)
|
||||
return true;
|
||||
if (Right.is(tok::less) && Line.Type == LT_ObjCDecl) {
|
||||
bool IsLightweightGeneric =
|
||||
Right.MatchingParen && Right.MatchingParen->Next &&
|
||||
Right.MatchingParen->Next->is(tok::colon);
|
||||
return !IsLightweightGeneric && Style.ObjCSpaceBeforeProtocolList;
|
||||
}
|
||||
if (Right.is(tok::less) && Left.is(tok::kw_template))
|
||||
return Style.SpaceAfterTemplateKeyword;
|
||||
if (Left.isOneOf(tok::exclaim, tok::tilde))
|
||||
|
|
|
@ -299,13 +299,13 @@ TEST_F(FormatTestObjC, FormatObjCInterface) {
|
|||
"+ (id)init;\n"
|
||||
"@end");
|
||||
|
||||
verifyFormat("@interface Foo <Baz : Blech> : Bar <Baz, Quux> {\n"
|
||||
verifyFormat("@interface Foo<Baz : Blech> : Bar <Baz, Quux> {\n"
|
||||
" int _i;\n"
|
||||
"}\n"
|
||||
"+ (id)init;\n"
|
||||
"@end");
|
||||
|
||||
verifyFormat("@interface Foo <Bar : Baz <Blech>> : Xyzzy <Corge> {\n"
|
||||
verifyFormat("@interface Foo<Bar : Baz <Blech>> : Xyzzy <Corge> {\n"
|
||||
" int _i;\n"
|
||||
"}\n"
|
||||
"+ (id)init;\n"
|
||||
|
|
Loading…
Reference in New Issue