[clang-format] Add a few more Core Graphics identifiers to ObjC heuristic

Summary:
We received reports of the Objective-C style guesser getting a false
negative on header files like:

CGSize SizeOfThing(MyThing thing);

This adds more Core Graphics identifiers to the Objective-C style
guesser.

Test Plan: New tests added. Ran tests with:
  % make -j12 FormatTests && ./tools/clang/unittests/Format/FormatTests

Reviewers: jolesiak, djasper

Reviewed By: jolesiak, djasper

Subscribers: krasimir, klimek, cfe-commits

Differential Revision: https://reviews.llvm.org/D44632

llvm-svn: 328175
This commit is contained in:
Ben Hamilton 2018-03-22 03:25:22 +00:00
parent 5f91134344
commit 19c782d520
2 changed files with 21 additions and 0 deletions

View File

@ -1449,6 +1449,19 @@ private:
// Keep this array sorted, since we are binary searching over it. // Keep this array sorted, since we are binary searching over it.
static constexpr llvm::StringLiteral FoundationIdentifiers[] = { static constexpr llvm::StringLiteral FoundationIdentifiers[] = {
"CGFloat", "CGFloat",
"CGPoint",
"CGPointMake",
"CGPointZero",
"CGRect",
"CGRectEdge",
"CGRectInfinite",
"CGRectMake",
"CGRectNull",
"CGRectZero",
"CGSize",
"CGSizeMake",
"CGVector",
"CGVectorMake",
"NSAffineTransform", "NSAffineTransform",
"NSArray", "NSArray",
"NSAttributedString", "NSAttributedString",
@ -1497,6 +1510,8 @@ private:
"NSURLQueryItem", "NSURLQueryItem",
"NSUUID", "NSUUID",
"NSValue", "NSValue",
"UIImage",
"UIView",
}; };
for (auto &Line : AnnotatedLines) { for (auto &Line : AnnotatedLines) {

View File

@ -12108,6 +12108,12 @@ TEST_F(FormatTest, FileAndCode) {
EXPECT_EQ(FormatStyle::LK_ObjC, guessLanguage("foo.h", "@interface Foo\n@end\n")); EXPECT_EQ(FormatStyle::LK_ObjC, guessLanguage("foo.h", "@interface Foo\n@end\n"));
EXPECT_EQ(FormatStyle::LK_Cpp, guessLanguage("foo", "")); EXPECT_EQ(FormatStyle::LK_Cpp, guessLanguage("foo", ""));
EXPECT_EQ(FormatStyle::LK_ObjC, guessLanguage("foo", "@interface Foo\n@end\n")); EXPECT_EQ(FormatStyle::LK_ObjC, guessLanguage("foo", "@interface Foo\n@end\n"));
EXPECT_EQ(FormatStyle::LK_ObjC,
guessLanguage("foo.h", "int DoStuff(CGRect rect);\n"));
EXPECT_EQ(
FormatStyle::LK_ObjC,
guessLanguage("foo.h",
"#define MY_POINT_MAKE(x, y) CGPointMake((x), (y));\n"));
} }
TEST_F(FormatTest, GuessLanguageWithCpp11AttributeSpecifiers) { TEST_F(FormatTest, GuessLanguageWithCpp11AttributeSpecifiers) {