Lines Matching defs:Record

228 Object serializeIdentifier(const APIRecord &Record, Language Lang) {
230 Identifier["precise"] = Record.USR;
333 Object serializeNames(const APIRecord *Record) {
335 Names["title"] = Record->Name;
338 serializeDeclarationFragments(Record->SubHeading));
340 NavigatorFragments.append(Record->Name,
504 llvm_unreachable("API Record with uninstantiable kind");
515 Object serializeSymbolKind(const APIRecord &Record, Language Lang) {
516 return serializeSymbolKind(Record.KindForDisplay, Lang);
527 void serializeFunctionSignatureMixin(Object &Paren, const RecordTy &Record) {
528 const auto &FS = Record.Signature;
552 void serializeTemplateMixin(Object &Paren, const RecordTy &Record) {
553 const auto &Template = Record.Templ;
592 if (Parent.Record)
593 Elem["kind"] = serializeSymbolKind(Parent.Record->KindForDisplay,
607 generateHierarchyFromRecord(const APIRecord *Record) {
609 for (const auto *Current = Record; Current != nullptr;
610 Current = Current->Parent.Record)
618 SymbolReference getHierarchyReference(const APIRecord *Record,
622 if (auto *CategoryRecord = dyn_cast_or_null<ObjCCategoryRecord>(Record)) {
628 return SymbolReference(Record);
661 bool SymbolGraphSerializer::shouldSkip(const APIRecord *Record) const {
662 if (!Record)
666 if (Record->Availability.isUnconditionallyUnavailable())
672 if (auto *Tag = dyn_cast<TagRecord>(Record)) {
679 if (Record->Name.starts_with("_"))
683 if (IgnoresList.shouldIgnore(Record->Name))
697 const APIRecord *Record) const {
752 void SymbolGraphSerializer::serializeAPIRecord(const APIRecord *Record) {
758 Obj["!testLabel"] = Record->USR;
761 serializeIdentifier(*Record, API.getLanguage()));
762 serializeObject(Obj, "kind", serializeSymbolKind(*Record, API.getLanguage()));
763 serializeObject(Obj, "names", serializeNames(Record));
766 serializeSourceLocation(Record->Location, /*IncludeFileURI=*/true));
768 serializeAvailability(Record->Availability));
769 serializeObject(Obj, "docComment", serializeDocComment(Record->Comment));
771 serializeDeclarationFragments(Record->Declaration));
773 Obj["pathComponents"] = serializePathComponents(Record);
774 Obj["accessLevel"] = Record->Access.getAccess();
785 bool SymbolGraphSerializer::traverseAPIRecord(const APIRecord *Record) {
786 if (!Record)
788 if (shouldSkip(Record))
790 Hierarchy.push_back(getHierarchyReference(Record, API));
792 auto RetVal = Base::traverseAPIRecord(Record);
797 bool SymbolGraphSerializer::visitAPIRecord(const APIRecord *Record) {
798 serializeAPIRecord(Record);
803 const GlobalFunctionRecord *Record) {
807 serializeFunctionSignatureMixin(*CurrentSymbol, *Record);
811 bool SymbolGraphSerializer::visitCXXClassRecord(const CXXClassRecord *Record) {
815 for (const auto &Base : Record->Bases)
816 serializeRelationship(RelationshipKind::InheritsFrom, Record, Base,
822 const ClassTemplateRecord *Record) {
826 serializeTemplateMixin(*CurrentSymbol, *Record);
831 const ClassTemplatePartialSpecializationRecord *Record) {
835 serializeTemplateMixin(*CurrentSymbol, *Record);
840 const CXXMethodRecord *Record) {
844 serializeFunctionSignatureMixin(*CurrentSymbol, *Record);
849 const CXXMethodTemplateRecord *Record) {
853 serializeTemplateMixin(*CurrentSymbol, *Record);
858 const CXXFieldTemplateRecord *Record) {
862 serializeTemplateMixin(*CurrentSymbol, *Record);
866 bool SymbolGraphSerializer::visitConceptRecord(const ConceptRecord *Record) {
870 serializeTemplateMixin(*CurrentSymbol, *Record);
875 const GlobalVariableTemplateRecord *Record) {
879 serializeTemplateMixin(*CurrentSymbol, *Record);
885 const GlobalVariableTemplatePartialSpecializationRecord *Record) {
889 serializeTemplateMixin(*CurrentSymbol, *Record);
894 const GlobalFunctionTemplateRecord *Record) {
898 serializeTemplateMixin(*CurrentSymbol, *Record);
903 const ObjCContainerRecord *Record) {
907 for (const auto &Protocol : Record->Protocols)
908 serializeRelationship(ConformsTo, Record, Protocol,
915 const ObjCInterfaceRecord *Record) {
919 if (!Record->SuperClass.empty())
920 serializeRelationship(InheritsFrom, Record, Record->SuperClass,
926 const ObjCCategoryRecord *Record) {
928 !API.findRecordForUSR(Record->Interface.USR))
932 if (Record->isExtendingExternalModule())
933 ModuleForCurrentSymbol = &ExtendedModules[Record->Interface.Source];
935 if (!walkUpFromObjCCategoryRecord(Record))
938 bool RetVal = traverseRecordContext(Record);
944 const ObjCCategoryRecord *Record) {
945 return visitObjCCategoryRecord(Record);
949 const ObjCCategoryRecord *Record) {
953 for (const auto &Protocol : Record->Protocols)
954 serializeRelationship(ConformsTo, Record->Interface, Protocol,
961 const ObjCMethodRecord *Record) {
965 serializeFunctionSignatureMixin(*CurrentSymbol, *Record);
970 const ObjCInstanceVariableRecord *Record) {
976 const TypedefRecord *Record) {
980 return visitTypedefRecord(Record);
983 bool SymbolGraphSerializer::visitTypedefRecord(const TypedefRecord *Record) {
986 bool ShouldDrop = Record->UnderlyingType.Name.empty();
989 ShouldDrop |= (Record->UnderlyingType.Name == Record->Name);
994 serializeAPIRecord(Record);
998 (*CurrentSymbol)["type"] = Record->UnderlyingType.USR;
1003 void SymbolGraphSerializer::serializeSingleRecord(const APIRecord *Record) {
1004 switch (Record->getKind()) {
1008 walkUpFrom##CLASS(static_cast<const CLASS *>(Record)); \
1014 visitAPIRecord(Record);
1017 llvm_unreachable("API Record with uninstantiable kind");
1082 APIRecord *Record = API.findRecordForUSR(USR);
1083 if (!Record)
1093 Serializer.Hierarchy = generateHierarchyFromRecord(Record);
1095 Serializer.serializeSingleRecord(Record);
1106 for (const auto &Fragment : Record->Declaration.getFragments()) {