From 443913f4d655a10671a12978dc4b0120a67d4d56 Mon Sep 17 00:00:00 2001 From: Ben Langmuir Date: Fri, 25 Mar 2016 17:01:59 +0000 Subject: [index] Remove redundancy between symbol kind and language Condense the ObjCKIND and CXXKIND options into just KIND, since the language was already specified on a per-symbol basis and this information was redundant. This only changes the internal representation; naturally the libclang interface remains the same. llvm-svn: 264423 --- clang/lib/Index/IndexSymbol.cpp | 89 ++++++++++++++++++++--------------------- 1 file changed, 44 insertions(+), 45 deletions(-) (limited to 'clang/lib/Index/IndexSymbol.cpp') diff --git a/clang/lib/Index/IndexSymbol.cpp b/clang/lib/Index/IndexSymbol.cpp index 62e2facde19..9f91e6274d4 100644 --- a/clang/lib/Index/IndexSymbol.cpp +++ b/clang/lib/Index/IndexSymbol.cpp @@ -30,11 +30,11 @@ SymbolInfo index::getSymbolInfo(const Decl *D) { case TTK_Union: Info.Kind = SymbolKind::Union; break; case TTK_Class: - Info.Kind = SymbolKind::CXXClass; + Info.Kind = SymbolKind::Class; Info.Lang = SymbolLanguage::CXX; break; case TTK_Interface: - Info.Kind = SymbolKind::CXXInterface; + Info.Kind = SymbolKind::Protocol; Info.Lang = SymbolLanguage::CXX; break; case TTK_Enum: @@ -57,7 +57,7 @@ SymbolInfo index::getSymbolInfo(const Decl *D) { Info.Kind = SymbolKind::Module; break; case Decl::Typedef: - Info.Kind = SymbolKind::Typedef; break; + Info.Kind = SymbolKind::TypeAlias; break; // Lang = C case Decl::Function: Info.Kind = SymbolKind::Function; break; @@ -67,7 +67,7 @@ SymbolInfo index::getSymbolInfo(const Decl *D) { case Decl::Var: Info.Kind = SymbolKind::Variable; if (isa(D->getDeclContext())) { - Info.Kind = SymbolKind::CXXStaticVariable; + Info.Kind = SymbolKind::StaticProperty; Info.Lang = SymbolLanguage::CXX; } break; @@ -83,91 +83,94 @@ SymbolInfo index::getSymbolInfo(const Decl *D) { Info.Kind = SymbolKind::EnumConstant; break; case Decl::ObjCInterface: case Decl::ObjCImplementation: - Info.Kind = SymbolKind::ObjCClass; + Info.Kind = SymbolKind::Class; Info.Lang = SymbolLanguage::ObjC; break; case Decl::ObjCProtocol: - Info.Kind = SymbolKind::ObjCProtocol; + Info.Kind = SymbolKind::Protocol; Info.Lang = SymbolLanguage::ObjC; break; case Decl::ObjCCategory: case Decl::ObjCCategoryImpl: - Info.Kind = SymbolKind::ObjCCategory; + Info.Kind = SymbolKind::Extension; Info.Lang = SymbolLanguage::ObjC; break; case Decl::ObjCMethod: if (cast(D)->isInstanceMethod()) - Info.Kind = SymbolKind::ObjCInstanceMethod; + Info.Kind = SymbolKind::InstanceMethod; else - Info.Kind = SymbolKind::ObjCClassMethod; + Info.Kind = SymbolKind::ClassMethod; Info.Lang = SymbolLanguage::ObjC; break; case Decl::ObjCProperty: - Info.Kind = SymbolKind::ObjCProperty; + Info.Kind = SymbolKind::InstanceProperty; Info.Lang = SymbolLanguage::ObjC; break; case Decl::ObjCIvar: - Info.Kind = SymbolKind::ObjCIvar; + Info.Kind = SymbolKind::Field; Info.Lang = SymbolLanguage::ObjC; break; case Decl::Namespace: - Info.Kind = SymbolKind::CXXNamespace; + Info.Kind = SymbolKind::Namespace; Info.Lang = SymbolLanguage::CXX; break; case Decl::NamespaceAlias: - Info.Kind = SymbolKind::CXXNamespaceAlias; + Info.Kind = SymbolKind::NamespaceAlias; Info.Lang = SymbolLanguage::CXX; break; case Decl::CXXConstructor: - Info.Kind = SymbolKind::CXXConstructor; + Info.Kind = SymbolKind::Constructor; Info.Lang = SymbolLanguage::CXX; break; case Decl::CXXDestructor: - Info.Kind = SymbolKind::CXXDestructor; + Info.Kind = SymbolKind::Destructor; Info.Lang = SymbolLanguage::CXX; break; case Decl::CXXConversion: - Info.Kind = SymbolKind::CXXConversionFunction; + Info.Kind = SymbolKind::ConversionFunction; Info.Lang = SymbolLanguage::CXX; break; case Decl::CXXMethod: { const CXXMethodDecl *MD = cast(D); if (MD->isStatic()) - Info.Kind = SymbolKind::CXXStaticMethod; + Info.Kind = SymbolKind::StaticMethod; else - Info.Kind = SymbolKind::CXXInstanceMethod; + Info.Kind = SymbolKind::InstanceMethod; Info.Lang = SymbolLanguage::CXX; break; } case Decl::ClassTemplate: - Info.Kind = SymbolKind::CXXClass; + Info.Kind = SymbolKind::Class; Info.TemplateKind = SymbolCXXTemplateKind::Template; + Info.Lang = SymbolLanguage::CXX; break; case Decl::FunctionTemplate: Info.Kind = SymbolKind::Function; Info.TemplateKind = SymbolCXXTemplateKind::Template; + Info.Lang = SymbolLanguage::CXX; if (const CXXMethodDecl *MD = dyn_cast_or_null( cast(D)->getTemplatedDecl())) { if (isa(MD)) - Info.Kind = SymbolKind::CXXConstructor; + Info.Kind = SymbolKind::Constructor; else if (isa(MD)) - Info.Kind = SymbolKind::CXXDestructor; + Info.Kind = SymbolKind::Destructor; else if (isa(MD)) - Info.Kind = SymbolKind::CXXConversionFunction; + Info.Kind = SymbolKind::ConversionFunction; else { if (MD->isStatic()) - Info.Kind = SymbolKind::CXXStaticMethod; + Info.Kind = SymbolKind::StaticMethod; else - Info.Kind = SymbolKind::CXXInstanceMethod; + Info.Kind = SymbolKind::InstanceMethod; } } break; case Decl::TypeAliasTemplate: - Info.Kind = SymbolKind::CXXTypeAlias; + Info.Kind = SymbolKind::TypeAlias; + Info.Lang = SymbolLanguage::CXX; Info.TemplateKind = SymbolCXXTemplateKind::Template; break; case Decl::TypeAlias: - Info.Kind = SymbolKind::CXXTypeAlias; + Info.Kind = SymbolKind::TypeAlias; Info.Lang = SymbolLanguage::CXX; break; default: @@ -262,33 +265,29 @@ StringRef index::getSymbolKindString(SymbolKind K) { switch (K) { case SymbolKind::Unknown: return ""; case SymbolKind::Module: return "module"; + case SymbolKind::Namespace: return "namespace"; + case SymbolKind::NamespaceAlias: return "namespace-alias"; case SymbolKind::Macro: return "macro"; case SymbolKind::Enum: return "enum"; case SymbolKind::Struct: return "struct"; + case SymbolKind::Class: return "class"; + case SymbolKind::Protocol: return "protocol"; + case SymbolKind::Extension: return "extension"; case SymbolKind::Union: return "union"; - case SymbolKind::Typedef: return "typedef"; + case SymbolKind::TypeAlias: return "type-alias"; case SymbolKind::Function: return "function"; case SymbolKind::Variable: return "variable"; case SymbolKind::Field: return "field"; case SymbolKind::EnumConstant: return "enumerator"; - case SymbolKind::ObjCClass: return "objc-class"; - case SymbolKind::ObjCProtocol: return "objc-protocol"; - case SymbolKind::ObjCCategory: return "objc-category"; - case SymbolKind::ObjCInstanceMethod: return "objc-instance-method"; - case SymbolKind::ObjCClassMethod: return "objc-class-method"; - case SymbolKind::ObjCProperty: return "objc-property"; - case SymbolKind::ObjCIvar: return "objc-ivar"; - case SymbolKind::CXXClass: return "c++-class"; - case SymbolKind::CXXNamespace: return "namespace"; - case SymbolKind::CXXNamespaceAlias: return "namespace-alias"; - case SymbolKind::CXXStaticVariable: return "c++-static-var"; - case SymbolKind::CXXStaticMethod: return "c++-static-method"; - case SymbolKind::CXXInstanceMethod: return "c++-instance-method"; - case SymbolKind::CXXConstructor: return "constructor"; - case SymbolKind::CXXDestructor: return "destructor"; - case SymbolKind::CXXConversionFunction: return "coversion-func"; - case SymbolKind::CXXTypeAlias: return "type-alias"; - case SymbolKind::CXXInterface: return "c++-__interface"; + case SymbolKind::InstanceMethod: return "instance-method"; + case SymbolKind::ClassMethod: return "class-method"; + case SymbolKind::StaticMethod: return "static-method"; + case SymbolKind::InstanceProperty: return "instance-property"; + case SymbolKind::ClassProperty: return "class-property"; + case SymbolKind::StaticProperty: return "static-property"; + case SymbolKind::Constructor: return "constructor"; + case SymbolKind::Destructor: return "destructor"; + case SymbolKind::ConversionFunction: return "coversion-func"; } llvm_unreachable("invalid symbol kind"); } -- cgit v1.2.3