r286518 - [index] Add SymbolSubKind for the GKInspectable annotation.
Argyrios Kyrtzidis via cfe-commits
cfe-commits at lists.llvm.org
Thu Nov 10 15:27:11 PST 2016
Author: akirtzidis
Date: Thu Nov 10 17:27:11 2016
New Revision: 286518
URL: http://llvm.org/viewvc/llvm-project?rev=286518&view=rev
Log:
[index] Add SymbolSubKind for the GKInspectable annotation.
Modified:
cfe/trunk/include/clang/Index/IndexSymbol.h
cfe/trunk/lib/Index/IndexSymbol.cpp
cfe/trunk/test/Index/Core/index-subkinds.m
Modified: cfe/trunk/include/clang/Index/IndexSymbol.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Index/IndexSymbol.h?rev=286518&r1=286517&r2=286518&view=diff
==============================================================================
--- cfe/trunk/include/clang/Index/IndexSymbol.h (original)
+++ cfe/trunk/include/clang/Index/IndexSymbol.h Thu Nov 10 17:27:11 2016
@@ -66,8 +66,9 @@ enum class SymbolSubKind : uint8_t {
UnitTest = 1 << 3,
IBAnnotated = 1 << 4,
IBOutletCollection = 1 << 5,
+ GKInspectable = 1 << 6,
};
-static const unsigned SymbolSubKindBitNum = 6;
+static const unsigned SymbolSubKindBitNum = 7;
typedef unsigned SymbolSubKindSet;
/// Set of roles that are attributed to symbol occurrences.
Modified: cfe/trunk/lib/Index/IndexSymbol.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Index/IndexSymbol.cpp?rev=286518&r1=286517&r2=286518&view=diff
==============================================================================
--- cfe/trunk/lib/Index/IndexSymbol.cpp (original)
+++ cfe/trunk/lib/Index/IndexSymbol.cpp Thu Nov 10 17:27:11 2016
@@ -165,6 +165,10 @@ SymbolInfo index::getSymbolInfo(const De
Info.Kind = SymbolKind::InstanceProperty;
Info.Lang = SymbolLanguage::ObjC;
checkForIBOutlets(D, Info.SubKinds);
+ if (auto *Annot = D->getAttr<AnnotateAttr>()) {
+ if (Annot->getAnnotation() == "gk_inspectable")
+ Info.SubKinds |= (unsigned)SymbolSubKind::GKInspectable;
+ }
break;
case Decl::ObjCIvar:
Info.Kind = SymbolKind::Field;
@@ -380,6 +384,7 @@ void index::applyForEachSymbolSubKind(Sy
APPLY_FOR_SUBKIND(UnitTest);
APPLY_FOR_SUBKIND(IBAnnotated);
APPLY_FOR_SUBKIND(IBOutletCollection);
+ APPLY_FOR_SUBKIND(GKInspectable);
#undef APPLY_FOR_SUBKIND
}
@@ -398,6 +403,7 @@ void index::printSymbolSubKinds(SymbolSu
case SymbolSubKind::UnitTest: OS << "test"; break;
case SymbolSubKind::IBAnnotated: OS << "IB"; break;
case SymbolSubKind::IBOutletCollection: OS << "IBColl"; break;
+ case SymbolSubKind::GKInspectable: OS << "GKI"; break;
}
});
}
Modified: cfe/trunk/test/Index/Core/index-subkinds.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/Core/index-subkinds.m?rev=286518&r1=286517&r2=286518&view=diff
==============================================================================
--- cfe/trunk/test/Index/Core/index-subkinds.m (original)
+++ cfe/trunk/test/Index/Core/index-subkinds.m Thu Nov 10 17:27:11 2016
@@ -50,3 +50,11 @@
// CHECK: [[@LINE+1]]:1 | instance-method(IB)/ObjC | doIt | c:objc(cs)IBCls(im)doIt | -[IBCls doIt] | Decl,Dyn,RelChild | rel: 1
-(IBAction)doIt;
@end
+
+
+#define GKInspectable __attribute__((annotate("gk_inspectable")))
+
+ at interface GKI
+// CHECK: [[@LINE+1]]:40 | instance-property(GKI)/ObjC | gkIntProp | c:objc(cs)GKI(py)gkIntProp | <no-cgname> | Decl,RelChild | rel: 1
+ at property (readonly) GKInspectable int gkIntProp;
+ at end
More information about the cfe-commits
mailing list