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"))) + +@interface GKI +// CHECK: [[@LINE+1]]:40 | instance-property(GKI)/ObjC | gkIntProp | c:objc(cs)GKI(py)gkIntProp | <no-cgname> | Decl,RelChild | rel: 1 +@property (readonly) GKInspectable int gkIntProp; +@end _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits