Lines Matching full:d

21 #define TRY_DECL(D,CALL_EXPR)                                                  \  argument
23 if (!IndexCtx.shouldIndex(D)) return true; \
45 bool VisitDecl(const Decl *D) { in VisitDecl() argument
79 static bool hasUserDefined(const ObjCMethodDecl *D, in hasUserDefined() argument
81 const ObjCMethodDecl *MD = Container->getMethod(D->getSelector(), in hasUserDefined()
82 D->isInstanceMethod()); in hasUserDefined()
88 void handleDeclarator(const DeclaratorDecl *D, in handleDeclarator() argument
91 if (!Parent) Parent = D; in handleDeclarator()
93 IndexCtx.indexTypeSourceInfo(D->getTypeSourceInfo(), Parent, in handleDeclarator()
96 IndexCtx.indexNestedNameSpecifierLoc(D->getQualifierLoc(), Parent); in handleDeclarator()
104 if (const ParmVarDecl *Parm = dyn_cast<ParmVarDecl>(D)) { in handleDeclarator()
116 } else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) { in handleDeclarator()
120 IndexDefaultParmeterArgument(PI, D); in handleDeclarator()
127 if (const auto *FD = dyn_cast<FunctionDecl>(D)) { in handleDeclarator()
130 IndexDefaultParmeterArgument(PV, D); in handleDeclarator()
135 if (auto *C = D->getTrailingRequiresClause()) in handleDeclarator()
139 bool handleObjCMethod(const ObjCMethodDecl *D, in handleObjCMethod() argument
144 D->getOverriddenMethods(Overriden); in handleObjCMethod()
155 SourceLocation MethodLoc = D->getSelectorStartLoc(); in handleObjCMethod()
157 MethodLoc = D->getLocation(); in handleObjCMethod()
163 bool isGetter = !D->param_size(); in handleObjCMethod()
170 if (D->isImplicit()) { in handleObjCMethod()
177 IndexCtx.handleReference(D, AttrLoc, cast<NamedDecl>(D->getDeclContext()), in handleObjCMethod()
178 D->getDeclContext(), 0); in handleObjCMethod()
181 TRY_DECL(D, IndexCtx.handleDecl(D, MethodLoc, Roles, Relations)); in handleObjCMethod()
182 IndexCtx.indexTypeSourceInfo(D->getReturnTypeSourceInfo(), D); in handleObjCMethod()
183 bool hasIBActionAndFirst = D->hasAttr<IBActionAttr>(); in handleObjCMethod()
184 for (const auto *I : D->parameters()) { in handleObjCMethod()
185 handleDeclarator(I, D, /*isIBType=*/hasIBActionAndFirst); in handleObjCMethod()
189 if (D->isThisDeclarationADefinition()) { in handleObjCMethod()
190 const Stmt *Body = D->getBody(); in handleObjCMethod()
192 IndexCtx.indexBody(Body, D, D); in handleObjCMethod()
198 /// Gather the declarations which the given declaration \D overrides in a
205 gatherTemplatePseudoOverrides(const NamedDecl *D, in gatherTemplatePseudoOverrides() argument
210 dyn_cast<ClassTemplateSpecializationDecl>(D->getLexicalDeclContext()); in gatherTemplatePseudoOverrides()
218 bool TypeOverride = isa<TypeDecl>(D); in gatherTemplatePseudoOverrides()
219 for (const NamedDecl *ND : Pattern->lookup(D->getDeclName())) { in gatherTemplatePseudoOverrides()
226 if (ND->getKind() != D->getKind()) in gatherTemplatePseudoOverrides()
231 const auto *DFD = cast<FunctionDecl>(D); in gatherTemplatePseudoOverrides()
243 bool VisitFunctionDecl(const FunctionDecl *D) { in VisitFunctionDecl() argument
246 if (auto *CXXMD = dyn_cast<CXXMethodDecl>(D)) { in VisitFunctionDecl()
253 gatherTemplatePseudoOverrides(D, Relations); in VisitFunctionDecl()
254 if (const auto *Base = D->getPrimaryTemplate()) in VisitFunctionDecl()
259 TRY_DECL(D, IndexCtx.handleDecl(D, Roles, Relations)); in VisitFunctionDecl()
260 handleDeclarator(D); in VisitFunctionDecl()
262 if (const CXXConstructorDecl *Ctor = dyn_cast<CXXConstructorDecl>(D)) { in VisitFunctionDecl()
270 IndexCtx.indexTypeSourceInfo(Init->getTypeSourceInfo(), D); in VisitFunctionDecl()
272 IndexCtx.handleReference(Member, Init->getMemberLocation(), D, D, in VisitFunctionDecl()
274 IndexCtx.indexBody(Init->getInit(), D, D); in VisitFunctionDecl()
277 } else if (const CXXDestructorDecl *Dtor = dyn_cast<CXXDestructorDecl>(D)) { in VisitFunctionDecl()
284 } else if (const auto *Guide = dyn_cast<CXXDeductionGuideDecl>(D)) { in VisitFunctionDecl()
291 D->getTemplateSpecializationArgsAsWritten()) { in VisitFunctionDecl()
293 handleTemplateArgumentLoc(Arg, D, D->getLexicalDeclContext()); in VisitFunctionDecl()
296 if (D->isThisDeclarationADefinition()) { in VisitFunctionDecl()
297 const Stmt *Body = D->getBody(); in VisitFunctionDecl()
299 IndexCtx.indexBody(Body, D, D); in VisitFunctionDecl()
305 bool VisitVarDecl(const VarDecl *D) { in VisitVarDecl() argument
307 gatherTemplatePseudoOverrides(D, Relations); in VisitVarDecl()
308 TRY_DECL(D, IndexCtx.handleDecl(D, SymbolRoleSet(), Relations)); in VisitVarDecl()
309 handleDeclarator(D); in VisitVarDecl()
310 IndexCtx.indexBody(D->getInit(), D); in VisitVarDecl()
314 bool VisitDecompositionDecl(const DecompositionDecl *D) { in VisitDecompositionDecl() argument
315 for (const auto *Binding : D->bindings()) in VisitDecompositionDecl()
317 return Base::VisitDecompositionDecl(D); in VisitDecompositionDecl()
320 bool VisitFieldDecl(const FieldDecl *D) { in VisitFieldDecl() argument
322 gatherTemplatePseudoOverrides(D, Relations); in VisitFieldDecl()
323 TRY_DECL(D, IndexCtx.handleDecl(D, SymbolRoleSet(), Relations)); in VisitFieldDecl()
324 handleDeclarator(D); in VisitFieldDecl()
325 if (D->isBitField()) in VisitFieldDecl()
326 IndexCtx.indexBody(D->getBitWidth(), D); in VisitFieldDecl()
327 else if (D->hasInClassInitializer()) in VisitFieldDecl()
328 IndexCtx.indexBody(D->getInClassInitializer(), D); in VisitFieldDecl()
332 bool VisitObjCIvarDecl(const ObjCIvarDecl *D) { in VisitObjCIvarDecl() argument
333 if (D->getSynthesize()) { in VisitObjCIvarDecl()
337 TRY_DECL(D, IndexCtx.handleDecl(D)); in VisitObjCIvarDecl()
338 handleDeclarator(D); in VisitObjCIvarDecl()
342 bool VisitMSPropertyDecl(const MSPropertyDecl *D) { in VisitMSPropertyDecl() argument
343 TRY_DECL(D, IndexCtx.handleDecl(D)); in VisitMSPropertyDecl()
344 handleDeclarator(D); in VisitMSPropertyDecl()
348 bool VisitEnumConstantDecl(const EnumConstantDecl *D) { in VisitEnumConstantDecl() argument
349 TRY_DECL(D, IndexCtx.handleDecl(D)); in VisitEnumConstantDecl()
350 IndexCtx.indexBody(D->getInitExpr(), D); in VisitEnumConstantDecl()
354 bool VisitTypedefNameDecl(const TypedefNameDecl *D) { in VisitTypedefNameDecl() argument
355 if (!D->isTransparentTag()) { in VisitTypedefNameDecl()
357 gatherTemplatePseudoOverrides(D, Relations); in VisitTypedefNameDecl()
358 TRY_DECL(D, IndexCtx.handleDecl(D, SymbolRoleSet(), Relations)); in VisitTypedefNameDecl()
359 IndexCtx.indexTypeSourceInfo(D->getTypeSourceInfo(), D); in VisitTypedefNameDecl()
364 bool VisitTagDecl(const TagDecl *D) { in VisitTagDecl() argument
366 if (D->isFreeStanding()) { in VisitTagDecl()
367 if (D->isThisDeclarationADefinition()) { in VisitTagDecl()
369 gatherTemplatePseudoOverrides(D, Relations); in VisitTagDecl()
370 IndexCtx.indexTagDecl(D, Relations); in VisitTagDecl()
373 gatherTemplatePseudoOverrides(D, Relations); in VisitTagDecl()
374 return IndexCtx.handleDecl(D, D->getLocation(), SymbolRoleSet(), in VisitTagDecl()
375 Relations, D->getLexicalDeclContext()); in VisitTagDecl()
407 bool VisitObjCInterfaceDecl(const ObjCInterfaceDecl *D) { in VisitObjCInterfaceDecl() argument
408 if (D->isThisDeclarationADefinition()) { in VisitObjCInterfaceDecl()
409 TRY_DECL(D, IndexCtx.handleDecl(D)); in VisitObjCInterfaceDecl()
410 SourceLocation SuperLoc = D->getSuperClassLoc(); in VisitObjCInterfaceDecl()
411 if (auto *SuperD = D->getSuperClass()) { in VisitObjCInterfaceDecl()
413 if (auto *TInfo = D->getSuperClassTInfo()) { in VisitObjCInterfaceDecl()
417 TRY_TO(IndexCtx.handleReference(TD, SuperLoc, D, D, in VisitObjCInterfaceDecl()
425 TRY_TO(IndexCtx.handleReference(SuperD, SuperLoc, D, D, superRoles, in VisitObjCInterfaceDecl()
426 SymbolRelation{(unsigned)SymbolRole::RelationBaseOf, D})); in VisitObjCInterfaceDecl()
428 TRY_TO(handleReferencedProtocols(D->getReferencedProtocols(), D, in VisitObjCInterfaceDecl()
430 TRY_TO(IndexCtx.indexDeclContext(D)); in VisitObjCInterfaceDecl()
432 return IndexCtx.handleReference(D, D->getLocation(), nullptr, in VisitObjCInterfaceDecl()
433 D->getDeclContext(), SymbolRoleSet()); in VisitObjCInterfaceDecl()
438 bool VisitObjCProtocolDecl(const ObjCProtocolDecl *D) { in VisitObjCProtocolDecl() argument
439 if (D->isThisDeclarationADefinition()) { in VisitObjCProtocolDecl()
440 TRY_DECL(D, IndexCtx.handleDecl(D)); in VisitObjCProtocolDecl()
441 TRY_TO(handleReferencedProtocols(D->getReferencedProtocols(), D, in VisitObjCProtocolDecl()
443 TRY_TO(IndexCtx.indexDeclContext(D)); in VisitObjCProtocolDecl()
445 return IndexCtx.handleReference(D, D->getLocation(), nullptr, in VisitObjCProtocolDecl()
446 D->getDeclContext(), SymbolRoleSet()); in VisitObjCProtocolDecl()
451 bool VisitObjCImplementationDecl(const ObjCImplementationDecl *D) { in VisitObjCImplementationDecl() argument
452 const ObjCInterfaceDecl *Class = D->getClassInterface(); in VisitObjCImplementationDecl()
459 TRY_DECL(D, IndexCtx.handleDecl(D)); in VisitObjCImplementationDecl()
464 for (const auto *I : D->property_impls()) { in VisitObjCImplementationDecl()
468 for (const auto *I : D->decls()) { in VisitObjCImplementationDecl()
477 bool VisitObjCCategoryDecl(const ObjCCategoryDecl *D) { in VisitObjCCategoryDecl() argument
478 if (!IndexCtx.shouldIndex(D)) in VisitObjCCategoryDecl()
480 const ObjCInterfaceDecl *C = D->getClassInterface(); in VisitObjCCategoryDecl()
483 TRY_TO(IndexCtx.handleReference(C, D->getLocation(), D, D, SymbolRoleSet(), in VisitObjCCategoryDecl()
485 (unsigned)SymbolRole::RelationExtendedBy, D in VisitObjCCategoryDecl()
487 SourceLocation CategoryLoc = D->getCategoryNameLoc(); in VisitObjCCategoryDecl()
489 CategoryLoc = D->getLocation(); in VisitObjCCategoryDecl()
490 TRY_TO(IndexCtx.handleDecl(D, CategoryLoc)); in VisitObjCCategoryDecl()
491 TRY_TO(handleReferencedProtocols(D->getReferencedProtocols(), D, in VisitObjCCategoryDecl()
493 TRY_TO(IndexCtx.indexDeclContext(D)); in VisitObjCCategoryDecl()
497 bool VisitObjCCategoryImplDecl(const ObjCCategoryImplDecl *D) { in VisitObjCCategoryImplDecl() argument
498 const ObjCCategoryDecl *Cat = D->getCategoryDecl(); in VisitObjCCategoryImplDecl()
501 const ObjCInterfaceDecl *C = D->getClassInterface(); in VisitObjCCategoryImplDecl()
503 TRY_TO(IndexCtx.handleReference(C, D->getLocation(), D, D, in VisitObjCCategoryImplDecl()
505 SourceLocation CategoryLoc = D->getCategoryNameLoc(); in VisitObjCCategoryImplDecl()
507 CategoryLoc = D->getLocation(); in VisitObjCCategoryImplDecl()
508 TRY_DECL(D, IndexCtx.handleDecl(D, CategoryLoc)); in VisitObjCCategoryImplDecl()
509 IndexCtx.indexDeclContext(D); in VisitObjCCategoryImplDecl()
513 bool VisitObjCMethodDecl(const ObjCMethodDecl *D) { in VisitObjCMethodDecl() argument
516 if (D->isPropertyAccessor()) in VisitObjCMethodDecl()
519 handleObjCMethod(D); in VisitObjCMethodDecl()
523 bool VisitObjCPropertyDecl(const ObjCPropertyDecl *D) { in VisitObjCPropertyDecl() argument
524 if (ObjCMethodDecl *MD = D->getGetterMethodDecl()) in VisitObjCPropertyDecl()
525 if (MD->getLexicalDeclContext() == D->getLexicalDeclContext()) in VisitObjCPropertyDecl()
526 handleObjCMethod(MD, D); in VisitObjCPropertyDecl()
527 if (ObjCMethodDecl *MD = D->getSetterMethodDecl()) in VisitObjCPropertyDecl()
528 if (MD->getLexicalDeclContext() == D->getLexicalDeclContext()) in VisitObjCPropertyDecl()
529 handleObjCMethod(MD, D); in VisitObjCPropertyDecl()
530 TRY_DECL(D, IndexCtx.handleDecl(D)); in VisitObjCPropertyDecl()
531 if (IBOutletCollectionAttr *attr = D->getAttr<IBOutletCollectionAttr>()) in VisitObjCPropertyDecl()
532 IndexCtx.indexTypeSourceInfo(attr->getInterfaceLoc(), D, in VisitObjCPropertyDecl()
533 D->getLexicalDeclContext(), false, true); in VisitObjCPropertyDecl()
534 IndexCtx.indexTypeSourceInfo(D->getTypeSourceInfo(), D); in VisitObjCPropertyDecl()
538 bool VisitObjCPropertyImplDecl(const ObjCPropertyImplDecl *D) { in VisitObjCPropertyImplDecl() argument
539 ObjCPropertyDecl *PD = D->getPropertyDecl(); in VisitObjCPropertyImplDecl()
540 auto *Container = cast<ObjCImplDecl>(D->getDeclContext()); in VisitObjCPropertyImplDecl()
541 SourceLocation Loc = D->getLocation(); in VisitObjCPropertyImplDecl()
545 if (ObjCIvarDecl *ID = D->getPropertyIvarDecl()) in VisitObjCPropertyImplDecl()
551 TRY_DECL(D, IndexCtx.handleDecl(D, Loc, Roles, Relations)); in VisitObjCPropertyImplDecl()
553 if (D->getPropertyImplementation() == ObjCPropertyImplDecl::Dynamic) in VisitObjCPropertyImplDecl()
556 assert(D->getPropertyImplementation() == ObjCPropertyImplDecl::Synthesize); in VisitObjCPropertyImplDecl()
567 if (ObjCIvarDecl *IvarD = D->getPropertyIvarDecl()) { in VisitObjCPropertyImplDecl()
576 SourceLocation IvarLoc = D->getPropertyIvarDeclLoc(); in VisitObjCPropertyImplDecl()
577 if (D->getLocation().isInvalid()) { in VisitObjCPropertyImplDecl()
580 } else if (D->getLocation() == IvarLoc) { in VisitObjCPropertyImplDecl()
585 IndexCtx.handleReference(IvarD, D->getPropertyIvarDeclLoc(), nullptr, in VisitObjCPropertyImplDecl()
586 D->getDeclContext(), SymbolRoleSet()); in VisitObjCPropertyImplDecl()
592 bool VisitNamespaceDecl(const NamespaceDecl *D) { in VisitNamespaceDecl() argument
593 TRY_DECL(D, IndexCtx.handleDecl(D)); in VisitNamespaceDecl()
594 IndexCtx.indexDeclContext(D); in VisitNamespaceDecl()
598 bool VisitNamespaceAliasDecl(const NamespaceAliasDecl *D) { in VisitNamespaceAliasDecl() argument
599 TRY_DECL(D, IndexCtx.handleDecl(D)); in VisitNamespaceAliasDecl()
600 IndexCtx.indexNestedNameSpecifierLoc(D->getQualifierLoc(), D); in VisitNamespaceAliasDecl()
601 IndexCtx.handleReference(D->getAliasedNamespace(), D->getTargetNameLoc(), D, in VisitNamespaceAliasDecl()
602 D->getLexicalDeclContext()); in VisitNamespaceAliasDecl()
606 bool VisitUsingDecl(const UsingDecl *D) { in VisitUsingDecl() argument
607 IndexCtx.handleDecl(D); in VisitUsingDecl()
609 const DeclContext *DC = D->getDeclContext()->getRedeclContext(); in VisitUsingDecl()
611 IndexCtx.indexNestedNameSpecifierLoc(D->getQualifierLoc(), Parent, in VisitUsingDecl()
612 D->getLexicalDeclContext()); in VisitUsingDecl()
613 for (const auto *I : D->shadows()) { in VisitUsingDecl()
620 IndexCtx.handleReference(I->getUnderlyingDecl(), D->getLocation(), Parent, in VisitUsingDecl()
621 D->getLexicalDeclContext(), SymbolRoleSet()); in VisitUsingDecl()
626 bool VisitUsingDirectiveDecl(const UsingDirectiveDecl *D) { in VisitUsingDirectiveDecl() argument
627 const DeclContext *DC = D->getDeclContext()->getRedeclContext(); in VisitUsingDirectiveDecl()
632 if (!D->getParentFunctionOrMethod()) in VisitUsingDirectiveDecl()
633 IndexCtx.indexNestedNameSpecifierLoc(D->getQualifierLoc(), Parent, in VisitUsingDirectiveDecl()
634 D->getLexicalDeclContext()); in VisitUsingDirectiveDecl()
636 return IndexCtx.handleReference(D->getNominatedNamespaceAsWritten(), in VisitUsingDirectiveDecl()
637 D->getLocation(), Parent, in VisitUsingDirectiveDecl()
638 D->getLexicalDeclContext(), in VisitUsingDirectiveDecl()
642 bool VisitUnresolvedUsingValueDecl(const UnresolvedUsingValueDecl *D) { in VisitUnresolvedUsingValueDecl() argument
643 TRY_DECL(D, IndexCtx.handleDecl(D)); in VisitUnresolvedUsingValueDecl()
644 const DeclContext *DC = D->getDeclContext()->getRedeclContext(); in VisitUnresolvedUsingValueDecl()
646 IndexCtx.indexNestedNameSpecifierLoc(D->getQualifierLoc(), Parent, in VisitUnresolvedUsingValueDecl()
647 D->getLexicalDeclContext()); in VisitUnresolvedUsingValueDecl()
651 bool VisitUnresolvedUsingTypenameDecl(const UnresolvedUsingTypenameDecl *D) { in VisitUnresolvedUsingTypenameDecl() argument
652 TRY_DECL(D, IndexCtx.handleDecl(D)); in VisitUnresolvedUsingTypenameDecl()
653 const DeclContext *DC = D->getDeclContext()->getRedeclContext(); in VisitUnresolvedUsingTypenameDecl()
655 IndexCtx.indexNestedNameSpecifierLoc(D->getQualifierLoc(), Parent, in VisitUnresolvedUsingTypenameDecl()
656 D->getLexicalDeclContext()); in VisitUnresolvedUsingTypenameDecl()
661 ClassTemplateSpecializationDecl *D) { in VisitClassTemplateSpecializationDecl() argument
666 Template = D->getSpecializedTemplateOrPartial(); in VisitClassTemplateSpecializationDecl()
671 if (!D->isThisDeclarationADefinition()) in VisitClassTemplateSpecializationDecl()
672 IndexCtx.indexNestedNameSpecifierLoc(D->getQualifierLoc(), D); in VisitClassTemplateSpecializationDecl()
674 D, SymbolRelation(SymbolRoleSet(SymbolRole::RelationSpecializationOf), in VisitClassTemplateSpecializationDecl()
678 D->getTemplateArgsAsWritten()) { in VisitClassTemplateSpecializationDecl()
680 handleTemplateArgumentLoc(Arg, D, D->getLexicalDeclContext()); in VisitClassTemplateSpecializationDecl()
685 static bool shouldIndexTemplateParameterDefaultValue(const NamedDecl *D) { in shouldIndexTemplateParameterDefaultValue() argument
688 if (!D) in shouldIndexTemplateParameterDefaultValue()
690 if (const auto *FD = dyn_cast<FunctionDecl>(D)) in shouldIndexTemplateParameterDefaultValue()
692 else if (const auto *TD = dyn_cast<TagDecl>(D)) in shouldIndexTemplateParameterDefaultValue()
694 else if (const auto *VD = dyn_cast<VarDecl>(D)) in shouldIndexTemplateParameterDefaultValue()
726 bool VisitTemplateDecl(const TemplateDecl *D) { in VisitTemplateDecl() argument
727 const NamedDecl *Parent = D->getTemplatedDecl(); in VisitTemplateDecl()
732 auto *Params = D->getTemplateParameters(); in VisitTemplateDecl()
740 bool VisitConceptDecl(const ConceptDecl *D) { in VisitConceptDecl() argument
741 if (auto *Params = D->getTemplateParameters()) in VisitConceptDecl()
742 indexTemplateParameters(Params, D); in VisitConceptDecl()
743 if (auto *E = D->getConstraintExpr()) in VisitConceptDecl()
744 IndexCtx.indexBody(E, D); in VisitConceptDecl()
745 return IndexCtx.handleDecl(D); in VisitConceptDecl()
748 bool VisitFriendDecl(const FriendDecl *D) { in VisitFriendDecl() argument
749 if (auto ND = D->getFriendDecl()) { in VisitFriendDecl()
756 if (isa<ClassTemplateDecl>(ND) && D->getDeclContext()->isDependentContext()) in VisitFriendDecl()
760 if (auto Ty = D->getFriendType()) { in VisitFriendDecl()
761 IndexCtx.indexTypeSourceInfo(Ty, cast<NamedDecl>(D->getDeclContext())); in VisitFriendDecl()
766 bool VisitImportDecl(const ImportDecl *D) { in VisitImportDecl() argument
767 return IndexCtx.importedModule(D); in VisitImportDecl()
770 bool VisitStaticAssertDecl(const StaticAssertDecl *D) { in VisitStaticAssertDecl() argument
771 IndexCtx.indexBody(D->getAssertExpr(), in VisitStaticAssertDecl()
772 dyn_cast<NamedDecl>(D->getDeclContext()), in VisitStaticAssertDecl()
773 D->getLexicalDeclContext()); in VisitStaticAssertDecl()
780 bool IndexingContext::indexDecl(const Decl *D) { in indexDecl() argument
781 if (D->isImplicit() && shouldIgnoreIfImplicit(D)) in indexDecl()
784 if (isTemplateImplicitInstantiation(D) && !shouldIndexImplicitInstantiation()) in indexDecl()
788 bool ShouldContinue = Visitor.Visit(D); in indexDecl()
792 if (!Visitor.Handled && isa<DeclContext>(D)) in indexDecl()
793 return indexDeclContext(cast<DeclContext>(D)); in indexDecl()
805 bool IndexingContext::indexTopLevelDecl(const Decl *D) { in indexTopLevelDecl() argument
806 if (!D || D->getLocation().isInvalid()) in indexTopLevelDecl()
809 if (isa<ObjCMethodDecl>(D)) in indexTopLevelDecl()
812 if (IndexOpts.ShouldTraverseDecl && !IndexOpts.ShouldTraverseDecl(D)) in indexTopLevelDecl()
815 return indexDecl(D); in indexTopLevelDecl()