Formatter: Don't put spaces betwen @ and objc keywords.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171753 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp
index c20c459..8faa93c 100644
--- a/lib/Format/Format.cpp
+++ b/lib/Format/Format.cpp
@@ -946,6 +946,8 @@
(Left.isNot(tok::identifier) && Left.isNot(tok::kw_sizeof) &&
Left.isNot(tok::kw_typeof) && Left.isNot(tok::kw_alignof));
}
+ if (Left.is(tok::at) && Right.getObjCKeywordID() != tok::objc_not_keyword)
+ return false;
return true;
}
diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp
index 34b31d4..17e9874 100644
--- a/unittests/Format/FormatTest.cpp
+++ b/unittests/Format/FormatTest.cpp
@@ -1022,10 +1022,9 @@
}
TEST_F(FormatTest, ObjCAt) {
- // FIXME: Make the uncommented lines pass.
verifyFormat("@autoreleasepool");
- //verifyFormat("@catch");
- //verifyFormat("@class");
+ verifyFormat("@catch");
+ verifyFormat("@class");
verifyFormat("@compatibility_alias");
verifyFormat("@defs");
verifyFormat("@dynamic");
@@ -1037,17 +1036,17 @@
verifyFormat("@interface");
verifyFormat("@optional");
verifyFormat("@package");
- //verifyFormat("@private");
+ verifyFormat("@private");
verifyFormat("@property");
- //verifyFormat("@protected");
+ verifyFormat("@protected");
verifyFormat("@protocol");
- //verifyFormat("@public");
+ verifyFormat("@public");
verifyFormat("@required");
verifyFormat("@selector");
verifyFormat("@synchronized");
verifyFormat("@synthesize");
- //verifyFormat("@throw");
- //verifyFormat("@try");
+ verifyFormat("@throw");
+ verifyFormat("@try");
EXPECT_EQ("@interface", format("@ interface"));