Lines Matching refs:D

52 static StringRef GetExternalSourceContainer(const NamedDecl *D) {  in GetExternalSourceContainer()  argument
53 if (!D) in GetExternalSourceContainer()
55 if (auto *attr = D->getExternalSourceSymbolAttr()) { in GetExternalSourceContainer()
86 void VisitDeclContext(const DeclContext *D);
87 void VisitFieldDecl(const FieldDecl *D);
88 void VisitFunctionDecl(const FunctionDecl *D);
89 void VisitNamedDecl(const NamedDecl *D);
90 void VisitNamespaceDecl(const NamespaceDecl *D);
91 void VisitNamespaceAliasDecl(const NamespaceAliasDecl *D);
92 void VisitFunctionTemplateDecl(const FunctionTemplateDecl *D);
93 void VisitClassTemplateDecl(const ClassTemplateDecl *D);
97 void VisitObjCPropertyDecl(const ObjCPropertyDecl *D);
98 void VisitObjCPropertyImplDecl(const ObjCPropertyImplDecl *D);
99 void VisitTagDecl(const TagDecl *D);
100 void VisitTypedefDecl(const TypedefDecl *D);
101 void VisitTemplateTypeParmDecl(const TemplateTypeParmDecl *D);
102 void VisitVarDecl(const VarDecl *D);
103 void VisitBindingDecl(const BindingDecl *D);
104 void VisitNonTypeTemplateParmDecl(const NonTypeTemplateParmDecl *D);
105 void VisitTemplateTemplateParmDecl(const TemplateTemplateParmDecl *D);
106 void VisitUnresolvedUsingValueDecl(const UnresolvedUsingValueDecl *D);
107 void VisitUnresolvedUsingTypenameDecl(const UnresolvedUsingTypenameDecl *D);
108 void VisitConceptDecl(const ConceptDecl *D);
110 void VisitLinkageSpecDecl(const LinkageSpecDecl *D) { in VisitLinkageSpecDecl() argument
114 void VisitUsingDirectiveDecl(const UsingDirectiveDecl *D) { in VisitUsingDirectiveDecl() argument
118 void VisitUsingDecl(const UsingDecl *D) { in VisitUsingDecl() argument
119 VisitDeclContext(D->getDeclContext()); in VisitUsingDecl()
122 bool EmittedDeclName = !EmitDeclName(D); in VisitUsingDecl()
127 bool ShouldGenerateLocation(const NamedDecl *D);
129 bool isLocal(const NamedDecl *D) { in isLocal() argument
130 return D->getParentFunctionOrMethod() != nullptr; in isLocal()
133 void GenExtSymbolContainer(const NamedDecl *D);
137 bool GenLoc(const Decl *D, bool IncludeOffset);
173 void VisitMSGuidDecl(const MSGuidDecl *D);
177 bool EmitDeclName(const NamedDecl *D);
185 bool USRGenerator::EmitDeclName(const NamedDecl *D) { in EmitDeclName() argument
186 DeclarationName N = D->getDeclName(); in EmitDeclName()
193 bool USRGenerator::ShouldGenerateLocation(const NamedDecl *D) { in ShouldGenerateLocation() argument
194 if (D->isExternallyVisible()) in ShouldGenerateLocation()
196 if (D->getParentFunctionOrMethod()) in ShouldGenerateLocation()
198 SourceLocation Loc = D->getLocation(); in ShouldGenerateLocation()
206 if (const NamedDecl *D = dyn_cast<NamedDecl>(DC)) in VisitDeclContext() local
207 Visit(D); in VisitDeclContext()
212 void USRGenerator::VisitFieldDecl(const FieldDecl *D) { in VisitFieldDecl() argument
215 if (const ObjCInterfaceDecl *ID = Context->getObjContainingInterface(D)) in VisitFieldDecl()
218 VisitDeclContext(D->getDeclContext()); in VisitFieldDecl()
219 Out << (isa<ObjCIvarDecl>(D) ? "@" : "@FI@"); in VisitFieldDecl()
220 if (EmitDeclName(D)) { in VisitFieldDecl()
227 void USRGenerator::VisitFunctionDecl(const FunctionDecl *D) { in VisitFunctionDecl() argument
228 if (ShouldGenerateLocation(D) && GenLoc(D, /*IncludeOffset=*/isLocal(D))) in VisitFunctionDecl()
231 if (D->getType().isNull()) { in VisitFunctionDecl()
237 VisitDeclContext(D->getDeclContext()); in VisitFunctionDecl()
239 GenExtSymbolContainer(D); in VisitFunctionDecl()
242 if (FunctionTemplateDecl *FunTmpl = D->getDescribedFunctionTemplate()) { in VisitFunctionDecl()
253 D->getDeclName().print(Out, Policy); in VisitFunctionDecl()
256 if ((!Ctx.getLangOpts().CPlusPlus || D->isExternC()) && in VisitFunctionDecl()
257 !D->hasAttr<OverloadableAttr>()) in VisitFunctionDecl()
261 SpecArgs = D->getTemplateSpecializationArgs()) { in VisitFunctionDecl()
271 for (auto *PD : D->parameters()) { in VisitFunctionDecl()
275 if (D->isVariadic()) in VisitFunctionDecl()
284 VisitType(D->getReturnType()); in VisitFunctionDecl()
287 if (const CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(D)) { in VisitFunctionDecl()
301 void USRGenerator::VisitNamedDecl(const NamedDecl *D) { in VisitNamedDecl() argument
302 VisitDeclContext(D->getDeclContext()); in VisitNamedDecl()
305 if (EmitDeclName(D)) { in VisitNamedDecl()
314 void USRGenerator::VisitVarDecl(const VarDecl *D) { in VisitVarDecl() argument
318 if (ShouldGenerateLocation(D) && GenLoc(D, /*IncludeOffset=*/isLocal(D))) in VisitVarDecl()
321 VisitDeclContext(D->getDeclContext()); in VisitVarDecl()
323 if (VarTemplateDecl *VarTmpl = D->getDescribedVarTemplate()) { in VisitVarDecl()
327 = dyn_cast<VarTemplatePartialSpecializationDecl>(D)) { in VisitVarDecl()
333 StringRef s = D->getName(); in VisitVarDecl()
346 = dyn_cast<VarTemplateSpecializationDecl>(D)) { in VisitVarDecl()
356 void USRGenerator::VisitBindingDecl(const BindingDecl *D) { in VisitBindingDecl() argument
357 if (isLocal(D) && GenLoc(D, /*IncludeOffset=*/true)) in VisitBindingDecl()
359 VisitNamedDecl(D); in VisitBindingDecl()
363 const NonTypeTemplateParmDecl *D) { in VisitNonTypeTemplateParmDecl() argument
364 GenLoc(D, /*IncludeOffset=*/true); in VisitNonTypeTemplateParmDecl()
368 const TemplateTemplateParmDecl *D) { in VisitTemplateTemplateParmDecl() argument
369 GenLoc(D, /*IncludeOffset=*/true); in VisitTemplateTemplateParmDecl()
372 void USRGenerator::VisitNamespaceDecl(const NamespaceDecl *D) { in VisitNamespaceDecl() argument
375 VisitDeclContext(D->getDeclContext()); in VisitNamespaceDecl()
376 if (D->isAnonymousNamespace()) { in VisitNamespaceDecl()
380 Out << "@N@" << D->getName(); in VisitNamespaceDecl()
383 void USRGenerator::VisitFunctionTemplateDecl(const FunctionTemplateDecl *D) { in VisitFunctionTemplateDecl() argument
384 VisitFunctionDecl(D->getTemplatedDecl()); in VisitFunctionTemplateDecl()
387 void USRGenerator::VisitClassTemplateDecl(const ClassTemplateDecl *D) { in VisitClassTemplateDecl() argument
388 VisitTagDecl(D->getTemplatedDecl()); in VisitClassTemplateDecl()
391 void USRGenerator::VisitNamespaceAliasDecl(const NamespaceAliasDecl *D) { in VisitNamespaceAliasDecl() argument
392 VisitDeclContext(D->getDeclContext()); in VisitNamespaceAliasDecl()
394 Out << "@NA@" << D->getName(); in VisitNamespaceAliasDecl()
397 static const ObjCCategoryDecl *getCategoryContext(const NamedDecl *D) { in getCategoryContext() argument
398 if (auto *CD = dyn_cast<ObjCCategoryDecl>(D->getDeclContext())) in getCategoryContext()
400 if (auto *ICD = dyn_cast<ObjCCategoryImplDecl>(D->getDeclContext())) in getCategoryContext()
405 void USRGenerator::VisitObjCMethodDecl(const ObjCMethodDecl *D) { in VisitObjCMethodDecl() argument
406 const DeclContext *container = D->getDeclContext(); in VisitObjCMethodDecl()
413 const ObjCInterfaceDecl *ID = D->getClassInterface(); in VisitObjCMethodDecl()
418 auto *CD = getCategoryContext(D); in VisitObjCMethodDecl()
424 Out << (D->isInstanceMethod() ? "(im)" : "(cm)") in VisitObjCMethodDecl()
425 << DeclarationName(D->getSelector()); in VisitObjCMethodDecl()
428 void USRGenerator::VisitObjCContainerDecl(const ObjCContainerDecl *D, in VisitObjCContainerDecl() argument
430 switch (D->getKind()) { in VisitObjCContainerDecl()
435 GenObjCClass(D->getName(), GetExternalSourceContainer(D), in VisitObjCContainerDecl()
439 const ObjCCategoryDecl *CD = cast<ObjCCategoryDecl>(D); in VisitObjCContainerDecl()
463 const ObjCCategoryImplDecl *CD = cast<ObjCCategoryImplDecl>(D); in VisitObjCContainerDecl()
479 const ObjCProtocolDecl *PD = cast<ObjCProtocolDecl>(D); in VisitObjCContainerDecl()
486 void USRGenerator::VisitObjCPropertyDecl(const ObjCPropertyDecl *D) { in VisitObjCPropertyDecl() argument
489 if (const ObjCInterfaceDecl *ID = Context->getObjContainingInterface(D)) in VisitObjCPropertyDecl()
490 VisitObjCContainerDecl(ID, getCategoryContext(D)); in VisitObjCPropertyDecl()
492 Visit(cast<Decl>(D->getDeclContext())); in VisitObjCPropertyDecl()
493 GenObjCProperty(D->getName(), D->isClassProperty()); in VisitObjCPropertyDecl()
496 void USRGenerator::VisitObjCPropertyImplDecl(const ObjCPropertyImplDecl *D) { in VisitObjCPropertyImplDecl() argument
497 if (ObjCPropertyDecl *PD = D->getPropertyDecl()) { in VisitObjCPropertyImplDecl()
505 void USRGenerator::VisitTagDecl(const TagDecl *D) { in VisitTagDecl() argument
508 if (!isa<EnumDecl>(D) && in VisitTagDecl()
509 ShouldGenerateLocation(D) && GenLoc(D, /*IncludeOffset=*/isLocal(D))) in VisitTagDecl()
512 GenExtSymbolContainer(D); in VisitTagDecl()
514 D = D->getCanonicalDecl(); in VisitTagDecl()
515 VisitDeclContext(D->getDeclContext()); in VisitTagDecl()
518 if (const CXXRecordDecl *CXXRecord = dyn_cast<CXXRecordDecl>(D)) { in VisitTagDecl()
522 switch (D->getTagKind()) { in VisitTagDecl()
539 switch (D->getTagKind()) { in VisitTagDecl()
556 switch (D->getTagKind()) { in VisitTagDecl()
575 if (EmitDeclName(D)) { in VisitTagDecl()
576 if (const TypedefNameDecl *TD = D->getTypedefNameForAnonDecl()) { in VisitTagDecl()
580 if (D->isEmbeddedInDeclarator() && !D->isFreeStanding()) { in VisitTagDecl()
581 printLoc(Out, D->getLocation(), Context->getSourceManager(), true); in VisitTagDecl()
584 if (auto *ED = dyn_cast<EnumDecl>(D)) { in VisitTagDecl()
598 = dyn_cast<ClassTemplateSpecializationDecl>(D)) { in VisitTagDecl()
608 void USRGenerator::VisitTypedefDecl(const TypedefDecl *D) { in VisitTypedefDecl() argument
609 if (ShouldGenerateLocation(D) && GenLoc(D, /*IncludeOffset=*/isLocal(D))) in VisitTypedefDecl()
611 const DeclContext *DC = D->getDeclContext(); in VisitTypedefDecl()
615 Out << D->getName(); in VisitTypedefDecl()
618 void USRGenerator::VisitTemplateTypeParmDecl(const TemplateTypeParmDecl *D) { in VisitTemplateTypeParmDecl() argument
619 GenLoc(D, /*IncludeOffset=*/true); in VisitTemplateTypeParmDecl()
622 void USRGenerator::GenExtSymbolContainer(const NamedDecl *D) { in GenExtSymbolContainer() argument
623 StringRef Container = GetExternalSourceContainer(D); in GenExtSymbolContainer()
628 bool USRGenerator::GenLoc(const Decl *D, bool IncludeOffset) { in GenLoc() argument
634 if (!D) { in GenLoc()
640 D = D->getCanonicalDecl(); in GenLoc()
643 IgnoreResults || printLoc(Out, D->getBeginLoc(), in GenLoc()
1067 void USRGenerator::VisitUnresolvedUsingValueDecl(const UnresolvedUsingValueDecl *D) { in VisitUnresolvedUsingValueDecl() argument
1068 if (ShouldGenerateLocation(D) && GenLoc(D, /*IncludeOffset=*/isLocal(D))) in VisitUnresolvedUsingValueDecl()
1070 VisitDeclContext(D->getDeclContext()); in VisitUnresolvedUsingValueDecl()
1072 printQualifier(Out, D->getASTContext(), D->getQualifier()); in VisitUnresolvedUsingValueDecl()
1073 EmitDeclName(D); in VisitUnresolvedUsingValueDecl()
1076 void USRGenerator::VisitUnresolvedUsingTypenameDecl(const UnresolvedUsingTypenameDecl *D) { in VisitUnresolvedUsingTypenameDecl() argument
1077 if (ShouldGenerateLocation(D) && GenLoc(D, /*IncludeOffset=*/isLocal(D))) in VisitUnresolvedUsingTypenameDecl()
1079 VisitDeclContext(D->getDeclContext()); in VisitUnresolvedUsingTypenameDecl()
1081 printQualifier(Out, D->getASTContext(), D->getQualifier()); in VisitUnresolvedUsingTypenameDecl()
1082 Out << D->getName(); // Simple name. in VisitUnresolvedUsingTypenameDecl()
1085 void USRGenerator::VisitConceptDecl(const ConceptDecl *D) { in VisitConceptDecl() argument
1086 if (ShouldGenerateLocation(D) && GenLoc(D, /*IncludeOffset=*/isLocal(D))) in VisitConceptDecl()
1088 VisitDeclContext(D->getDeclContext()); in VisitConceptDecl()
1090 EmitDeclName(D); in VisitConceptDecl()
1093 void USRGenerator::VisitMSGuidDecl(const MSGuidDecl *D) { in VisitMSGuidDecl() argument
1094 VisitDeclContext(D->getDeclContext()); in VisitMSGuidDecl()
1096 D->NamedDecl::printName(Out); in VisitMSGuidDecl()
1168 bool clang::index::generateUSRForDecl(const Decl *D, in generateUSRForDecl() argument
1170 if (!D) in generateUSRForDecl()
1177 auto *CD = D->getCanonicalDecl(); in generateUSRForDecl()
1185 USRGenerator UG(&D->getASTContext(), Buf); in generateUSRForDecl()
1186 UG.Visit(D); in generateUSRForDecl()