diff options
Diffstat (limited to 'lib/Index/IndexSymbol.cpp')
| -rw-r--r-- | lib/Index/IndexSymbol.cpp | 65 | 
1 files changed, 35 insertions, 30 deletions
diff --git a/lib/Index/IndexSymbol.cpp b/lib/Index/IndexSymbol.cpp index 03db0cd53f7a..733d4dbc2f94 100644 --- a/lib/Index/IndexSymbol.cpp +++ b/lib/Index/IndexSymbol.cpp @@ -42,10 +42,10 @@ static bool isUnitTest(const ObjCMethodDecl *D) {  static void checkForIBOutlets(const Decl *D, SymbolPropertySet &PropSet) {    if (D->hasAttr<IBOutletAttr>()) { -    PropSet |= (unsigned)SymbolProperty::IBAnnotated; +    PropSet |= (SymbolPropertySet)SymbolProperty::IBAnnotated;    } else if (D->hasAttr<IBOutletCollectionAttr>()) { -    PropSet |= (unsigned)SymbolProperty::IBAnnotated; -    PropSet |= (unsigned)SymbolProperty::IBOutletCollection; +    PropSet |= (SymbolPropertySet)SymbolProperty::IBAnnotated; +    PropSet |= (SymbolPropertySet)SymbolProperty::IBOutletCollection;    }  } @@ -93,7 +93,7 @@ SymbolInfo index::getSymbolInfo(const Decl *D) {    Info.Lang = SymbolLanguage::C;    if (isFunctionLocalSymbol(D)) { -    Info.Properties |= (unsigned)SymbolProperty::Local; +    Info.Properties |= (SymbolPropertySet)SymbolProperty::Local;    }    if (const TagDecl *TD = dyn_cast<TagDecl>(D)) { @@ -118,17 +118,19 @@ SymbolInfo index::getSymbolInfo(const Decl *D) {        if (!CXXRec->isCLike()) {          Info.Lang = SymbolLanguage::CXX;          if (CXXRec->getDescribedClassTemplate()) { -          Info.Properties |= (unsigned)SymbolProperty::Generic; +          Info.Properties |= (SymbolPropertySet)SymbolProperty::Generic;          }        }      }      if (isa<ClassTemplatePartialSpecializationDecl>(D)) { -      Info.Properties |= (unsigned)SymbolProperty::Generic; -      Info.Properties |= (unsigned)SymbolProperty::TemplatePartialSpecialization; +      Info.Properties |= (SymbolPropertySet)SymbolProperty::Generic; +      Info.Properties |= +          (SymbolPropertySet)SymbolProperty::TemplatePartialSpecialization;      } else if (isa<ClassTemplateSpecializationDecl>(D)) { -      Info.Properties |= (unsigned)SymbolProperty::Generic; -      Info.Properties |= (unsigned)SymbolProperty::TemplateSpecialization; +      Info.Properties |= (SymbolPropertySet)SymbolProperty::Generic; +      Info.Properties |= +          (SymbolPropertySet)SymbolProperty::TemplateSpecialization;      }    } else if (auto *VD = dyn_cast<VarDecl>(D)) { @@ -142,15 +144,17 @@ SymbolInfo index::getSymbolInfo(const Decl *D) {      if (isa<VarTemplatePartialSpecializationDecl>(D)) {        Info.Lang = SymbolLanguage::CXX; -      Info.Properties |= (unsigned)SymbolProperty::Generic; -      Info.Properties |= (unsigned)SymbolProperty::TemplatePartialSpecialization; +      Info.Properties |= (SymbolPropertySet)SymbolProperty::Generic; +      Info.Properties |= +          (SymbolPropertySet)SymbolProperty::TemplatePartialSpecialization;      } else if (isa<VarTemplateSpecializationDecl>(D)) {        Info.Lang = SymbolLanguage::CXX; -      Info.Properties |= (unsigned)SymbolProperty::Generic; -      Info.Properties |= (unsigned)SymbolProperty::TemplateSpecialization; +      Info.Properties |= (SymbolPropertySet)SymbolProperty::Generic; +      Info.Properties |= +          (SymbolPropertySet)SymbolProperty::TemplateSpecialization;      } else if (VD->getDescribedVarTemplate()) {        Info.Lang = SymbolLanguage::CXX; -      Info.Properties |= (unsigned)SymbolProperty::Generic; +      Info.Properties |= (SymbolPropertySet)SymbolProperty::Generic;      }    } else { @@ -181,7 +185,7 @@ SymbolInfo index::getSymbolInfo(const Decl *D) {        if (!ClsD)          ClsD = cast<ObjCImplementationDecl>(D)->getClassInterface();        if (isUnitTestCase(ClsD)) -        Info.Properties |= (unsigned)SymbolProperty::UnitTest; +        Info.Properties |= (SymbolPropertySet)SymbolProperty::UnitTest;        break;      }      case Decl::ObjCProtocol: @@ -198,7 +202,7 @@ SymbolInfo index::getSymbolInfo(const Decl *D) {        else          ClsD = cast<ObjCCategoryImplDecl>(D)->getClassInterface();        if (isUnitTestCase(ClsD)) -        Info.Properties |= (unsigned)SymbolProperty::UnitTest; +        Info.Properties |= (SymbolPropertySet)SymbolProperty::UnitTest;        break;      }      case Decl::ObjCMethod: { @@ -212,9 +216,9 @@ SymbolInfo index::getSymbolInfo(const Decl *D) {        }        Info.Lang = SymbolLanguage::ObjC;        if (isUnitTest(MD)) -        Info.Properties |= (unsigned)SymbolProperty::UnitTest; +        Info.Properties |= (SymbolPropertySet)SymbolProperty::UnitTest;        if (D->hasAttr<IBActionAttr>()) -        Info.Properties |= (unsigned)SymbolProperty::IBAnnotated; +        Info.Properties |= (SymbolPropertySet)SymbolProperty::IBAnnotated;        break;      }      case Decl::ObjCProperty: @@ -223,7 +227,7 @@ SymbolInfo index::getSymbolInfo(const Decl *D) {        checkForIBOutlets(D, Info.Properties);        if (auto *Annot = D->getAttr<AnnotateAttr>()) {          if (Annot->getAnnotation() == "gk_inspectable") -          Info.Properties |= (unsigned)SymbolProperty::GKInspectable; +          Info.Properties |= (SymbolPropertySet)SymbolProperty::GKInspectable;        }        break;      case Decl::ObjCIvar: @@ -268,12 +272,12 @@ SymbolInfo index::getSymbolInfo(const Decl *D) {      }      case Decl::ClassTemplate:        Info.Kind = SymbolKind::Class; -      Info.Properties |= (unsigned)SymbolProperty::Generic; +      Info.Properties |= (SymbolPropertySet)SymbolProperty::Generic;        Info.Lang = SymbolLanguage::CXX;        break;      case Decl::FunctionTemplate:        Info.Kind = SymbolKind::Function; -      Info.Properties |= (unsigned)SymbolProperty::Generic; +      Info.Properties |= (SymbolPropertySet)SymbolProperty::Generic;        Info.Lang = SymbolLanguage::CXX;        if (const CXXMethodDecl *MD = dyn_cast_or_null<CXXMethodDecl>(                             cast<FunctionTemplateDecl>(D)->getTemplatedDecl())) { @@ -294,7 +298,7 @@ SymbolInfo index::getSymbolInfo(const Decl *D) {      case Decl::TypeAliasTemplate:        Info.Kind = SymbolKind::TypeAlias;        Info.Lang = SymbolLanguage::CXX; -      Info.Properties |= (unsigned)SymbolProperty::Generic; +      Info.Properties |= (SymbolPropertySet)SymbolProperty::Generic;        break;      case Decl::TypeAlias:        Info.Kind = SymbolKind::TypeAlias; @@ -304,13 +308,13 @@ SymbolInfo index::getSymbolInfo(const Decl *D) {        Info.Kind = SymbolKind::Using;        Info.SubKind = SymbolSubKind::UsingTypename;        Info.Lang = SymbolLanguage::CXX; -      Info.Properties |= (unsigned)SymbolProperty::Generic; +      Info.Properties |= (SymbolPropertySet)SymbolProperty::Generic;        break;      case Decl::UnresolvedUsingValue:        Info.Kind = SymbolKind::Using;        Info.SubKind = SymbolSubKind::UsingValue;        Info.Lang = SymbolLanguage::CXX; -      Info.Properties |= (unsigned)SymbolProperty::Generic; +      Info.Properties |= (SymbolPropertySet)SymbolProperty::Generic;        break;      case Decl::Binding:        Info.Kind = SymbolKind::Variable; @@ -327,12 +331,13 @@ SymbolInfo index::getSymbolInfo(const Decl *D) {    if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {      if (FD->getTemplatedKind() ==            FunctionDecl::TK_FunctionTemplateSpecialization) { -      Info.Properties |= (unsigned)SymbolProperty::Generic; -      Info.Properties |= (unsigned)SymbolProperty::TemplateSpecialization; +      Info.Properties |= (SymbolPropertySet)SymbolProperty::Generic; +      Info.Properties |= +          (SymbolPropertySet)SymbolProperty::TemplateSpecialization;      }    } -  if (Info.Properties & (unsigned)SymbolProperty::Generic) +  if (Info.Properties & (SymbolPropertySet)SymbolProperty::Generic)      Info.Lang = SymbolLanguage::CXX;    if (auto *attr = D->getExternalSourceSymbolAttr()) { @@ -490,9 +495,9 @@ StringRef index::getSymbolLanguageString(SymbolLanguage K) {  void index::applyForEachSymbolProperty(SymbolPropertySet Props,                                    llvm::function_ref<void(SymbolProperty)> Fn) { -#define APPLY_FOR_PROPERTY(K) \ -  if (Props & (unsigned)SymbolProperty::K) \ -    Fn(SymbolProperty::K) +#define APPLY_FOR_PROPERTY(K)                                                  \ +  if (Props & (SymbolPropertySet)SymbolProperty::K)                            \ +  Fn(SymbolProperty::K)    APPLY_FOR_PROPERTY(Generic);    APPLY_FOR_PROPERTY(TemplatePartialSpecialization);  | 
