Lines Matching refs:D

21 static bool isGeneratedDecl(const Decl *D) {  in isGeneratedDecl()  argument
22 if (auto *attr = D->getAttr<ExternalSourceSymbolAttr>()) { in isGeneratedDecl()
28 bool IndexingContext::shouldIndex(const Decl *D) { in shouldIndex() argument
29 return !isGeneratedDecl(D); in shouldIndex()
52 bool IndexingContext::handleDecl(const Decl *D, in handleDecl() argument
55 return handleDecl(D, D->getLocation(), Roles, Relations); in handleDecl()
58 bool IndexingContext::handleDecl(const Decl *D, SourceLocation Loc, in handleDecl() argument
63 DC = D->getDeclContext(); in handleDecl()
65 const Decl *OrigD = D; in handleDecl()
66 if (isa<ObjCPropertyImplDecl>(D)) { in handleDecl()
67 D = cast<ObjCPropertyImplDecl>(D)->getPropertyDecl(); in handleDecl()
69 return handleDeclOccurrence(D, Loc, /*IsRef=*/false, cast<Decl>(DC), in handleDecl()
74 bool IndexingContext::handleReference(const NamedDecl *D, SourceLocation Loc, in handleReference() argument
81 if (!shouldIndexFunctionLocalSymbols() && isFunctionLocalSymbol(D)) in handleReference()
85 (isa<NonTypeTemplateParmDecl>(D) || isa<TemplateTypeParmDecl>(D) || in handleReference()
86 isa<TemplateTemplateParmDecl>(D))) { in handleReference()
89 return handleDeclOccurrence(D, Loc, /*IsRef=*/true, Parent, Roles, Relations, in handleReference()
149 bool IndexingContext::isTemplateImplicitInstantiation(const Decl *D) { in isTemplateImplicitInstantiation() argument
152 SD = dyn_cast<ClassTemplateSpecializationDecl>(D)) { in isTemplateImplicitInstantiation()
154 } else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) { in isTemplateImplicitInstantiation()
156 } else if (auto *VD = dyn_cast<VarDecl>(D)) { in isTemplateImplicitInstantiation()
158 } else if (const auto *RD = dyn_cast<CXXRecordDecl>(D)) { in isTemplateImplicitInstantiation()
161 } else if (const auto *ED = dyn_cast<EnumDecl>(D)) { in isTemplateImplicitInstantiation()
164 } else if (isa<FieldDecl>(D) || isa<TypedefNameDecl>(D) || in isTemplateImplicitInstantiation()
165 isa<EnumConstantDecl>(D)) { in isTemplateImplicitInstantiation()
166 if (const auto *Parent = dyn_cast<Decl>(D->getDeclContext())) in isTemplateImplicitInstantiation()
174 return isa<ClassTemplateSpecializationDecl>(D); in isTemplateImplicitInstantiation()
185 bool IndexingContext::shouldIgnoreIfImplicit(const Decl *D) { in shouldIgnoreIfImplicit() argument
186 if (isa<ObjCInterfaceDecl>(D)) in shouldIgnoreIfImplicit()
188 if (isa<ObjCCategoryDecl>(D)) in shouldIgnoreIfImplicit()
190 if (isa<ObjCIvarDecl>(D)) in shouldIgnoreIfImplicit()
192 if (isa<ObjCMethodDecl>(D)) in shouldIgnoreIfImplicit()
194 if (isa<ImportDecl>(D)) in shouldIgnoreIfImplicit()
200 getDeclContextForTemplateInstationPattern(const Decl *D) { in getDeclContextForTemplateInstationPattern() argument
202 dyn_cast<ClassTemplateSpecializationDecl>(D->getDeclContext())) in getDeclContextForTemplateInstationPattern()
204 else if (const auto *RD = dyn_cast<CXXRecordDecl>(D->getDeclContext())) in getDeclContextForTemplateInstationPattern()
209 static const Decl *adjustTemplateImplicitInstantiation(const Decl *D) { in adjustTemplateImplicitInstantiation() argument
211 SD = dyn_cast<ClassTemplateSpecializationDecl>(D)) { in adjustTemplateImplicitInstantiation()
218 } else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) { in adjustTemplateImplicitInstantiation()
220 } else if (auto *VD = dyn_cast<VarDecl>(D)) { in adjustTemplateImplicitInstantiation()
222 } else if (const auto *RD = dyn_cast<CXXRecordDecl>(D)) { in adjustTemplateImplicitInstantiation()
224 } else if (const auto *ED = dyn_cast<EnumDecl>(D)) { in adjustTemplateImplicitInstantiation()
226 } else if (isa<FieldDecl>(D) || isa<TypedefNameDecl>(D)) { in adjustTemplateImplicitInstantiation()
227 const auto *ND = cast<NamedDecl>(D); in adjustTemplateImplicitInstantiation()
237 } else if (const auto *ECD = dyn_cast<EnumConstantDecl>(D)) { in adjustTemplateImplicitInstantiation()
248 static bool isDeclADefinition(const Decl *D, const DeclContext *ContainerDC, ASTContext &Ctx) { in isDeclADefinition() argument
249 if (auto VD = dyn_cast<VarDecl>(D)) in isDeclADefinition()
252 if (auto FD = dyn_cast<FunctionDecl>(D)) in isDeclADefinition()
255 if (auto TD = dyn_cast<TagDecl>(D)) in isDeclADefinition()
258 if (auto MD = dyn_cast<ObjCMethodDecl>(D)) in isDeclADefinition()
261 if (isa<TypedefNameDecl>(D) || isa<EnumConstantDecl>(D) || in isDeclADefinition()
262 isa<FieldDecl>(D) || isa<MSPropertyDecl>(D) || isa<ObjCImplDecl>(D) || in isDeclADefinition()
263 isa<ObjCPropertyImplDecl>(D) || isa<ConceptDecl>(D)) in isDeclADefinition()
297 static const Decl *getCanonicalDecl(const Decl *D) { in getCanonicalDecl() argument
298 D = D->getCanonicalDecl(); in getCanonicalDecl()
299 if (auto TD = dyn_cast<TemplateDecl>(D)) { in getCanonicalDecl()
301 D = TTD; in getCanonicalDecl()
302 assert(D->isCanonicalDecl()); in getCanonicalDecl()
306 return D; in getCanonicalDecl()
356 bool IndexingContext::handleDeclOccurrence(const Decl *D, SourceLocation Loc, in handleDeclOccurrence() argument
363 if (D->isImplicit() && !isa<ObjCMethodDecl>(D)) in handleDeclOccurrence()
365 if (!isa<NamedDecl>(D) || shouldSkipNamelessDecl(cast<NamedDecl>(D))) in handleDeclOccurrence()
392 OrigD = D; in handleDeclOccurrence()
394 if (isTemplateImplicitInstantiation(D)) { in handleDeclOccurrence()
397 D = adjustTemplateImplicitInstantiation(D); in handleDeclOccurrence()
398 if (!D) in handleDeclOccurrence()
400 assert(!isTemplateImplicitInstantiation(D)); in handleDeclOccurrence()
410 D = getCanonicalDecl(D); in handleDeclOccurrence()
431 if (IsRef || (!isa<ParmVarDecl>(D) && isFunctionLocalSymbol(D))) { in handleDeclOccurrence()
450 return DataConsumer.handleDeclOccurrence(D, Roles, FinalRelations, Loc, Node); in handleDeclOccurrence()