Lines Matching defs:Record

234 Object serializeIdentifier(const APIRecord &Record, Language Lang) {
236 Identifier["precise"] = Record.USR;
339 Object serializeNames(const APIRecord *Record) {
341 Names["title"] = Record->Name;
344 serializeDeclarationFragments(Record->SubHeading));
346 NavigatorFragments.append(Record->Name,
510 llvm_unreachable("API Record with uninstantiable kind");
521 Object serializeSymbolKind(const APIRecord &Record, Language Lang) {
522 return serializeSymbolKind(Record.KindForDisplay, Lang);
533 void serializeFunctionSignatureMixin(Object &Paren, const RecordTy &Record) {
534 const auto &FS = Record.Signature;
558 void serializeTemplateMixin(Object &Paren, const RecordTy &Record) {
559 const auto &Template = Record.Templ;
598 if (Parent.Record)
599 Elem["kind"] = serializeSymbolKind(Parent.Record->KindForDisplay,
613 generateHierarchyFromRecord(const APIRecord *Record) {
615 for (const auto *Current = Record; Current != nullptr;
616 Current = Current->Parent.Record)
624 SymbolReference getHierarchyReference(const APIRecord *Record,
628 if (auto *CategoryRecord = dyn_cast_or_null<ObjCCategoryRecord>(Record)) {
634 return SymbolReference(Record);
667 bool SymbolGraphSerializer::shouldSkip(const APIRecord *Record) const {
668 if (!Record)
672 if (Record->Availability.isUnconditionallyUnavailable())
677 if (Record->Name.starts_with("_"))
681 if (IgnoresList.shouldIgnore(Record->Name))
695 const APIRecord *Record) const {
750 void SymbolGraphSerializer::serializeAPIRecord(const APIRecord *Record) {
756 Obj["!testLabel"] = Record->USR;
759 serializeIdentifier(*Record, API.getLanguage()));
760 serializeObject(Obj, "kind", serializeSymbolKind(*Record, API.getLanguage()));
761 serializeObject(Obj, "names", serializeNames(Record));
764 serializeSourceLocation(Record->Location, /*IncludeFileURI=*/true));
766 serializeAvailability(Record->Availability));
767 serializeObject(Obj, "docComment", serializeDocComment(Record->Comment));
769 serializeDeclarationFragments(Record->Declaration));
771 Obj["pathComponents"] = serializePathComponents(Record);
772 Obj["accessLevel"] = Record->Access.getAccess();
783 bool SymbolGraphSerializer::traverseAPIRecord(const APIRecord *Record) {
784 if (!Record)
786 if (shouldSkip(Record))
788 Hierarchy.push_back(getHierarchyReference(Record, API));
790 auto RetVal = Base::traverseAPIRecord(Record);
795 bool SymbolGraphSerializer::visitAPIRecord(const APIRecord *Record) {
796 serializeAPIRecord(Record);
801 const GlobalFunctionRecord *Record) {
805 serializeFunctionSignatureMixin(*CurrentSymbol, *Record);
809 bool SymbolGraphSerializer::visitCXXClassRecord(const CXXClassRecord *Record) {
813 for (const auto &Base : Record->Bases)
814 serializeRelationship(RelationshipKind::InheritsFrom, Record, Base,
820 const ClassTemplateRecord *Record) {
824 serializeTemplateMixin(*CurrentSymbol, *Record);
829 const ClassTemplatePartialSpecializationRecord *Record) {
833 serializeTemplateMixin(*CurrentSymbol, *Record);
838 const CXXMethodRecord *Record) {
842 serializeFunctionSignatureMixin(*CurrentSymbol, *Record);
847 const CXXMethodTemplateRecord *Record) {
851 serializeTemplateMixin(*CurrentSymbol, *Record);
856 const CXXFieldTemplateRecord *Record) {
860 serializeTemplateMixin(*CurrentSymbol, *Record);
864 bool SymbolGraphSerializer::visitConceptRecord(const ConceptRecord *Record) {
868 serializeTemplateMixin(*CurrentSymbol, *Record);
873 const GlobalVariableTemplateRecord *Record) {
877 serializeTemplateMixin(*CurrentSymbol, *Record);
883 const GlobalVariableTemplatePartialSpecializationRecord *Record) {
887 serializeTemplateMixin(*CurrentSymbol, *Record);
892 const GlobalFunctionTemplateRecord *Record) {
896 serializeTemplateMixin(*CurrentSymbol, *Record);
901 const ObjCContainerRecord *Record) {
905 for (const auto &Protocol : Record->Protocols)
906 serializeRelationship(ConformsTo, Record, Protocol,
913 const ObjCInterfaceRecord *Record) {
917 if (!Record->SuperClass.empty())
918 serializeRelationship(InheritsFrom, Record, Record->SuperClass,
924 const ObjCCategoryRecord *Record) {
926 !API.findRecordForUSR(Record->Interface.USR))
930 if (auto ModuleExtendedByRecord = Record->getExtendedExternalModule())
933 if (!walkUpFromObjCCategoryRecord(Record))
936 bool RetVal = traverseRecordContext(Record);
942 const ObjCCategoryRecord *Record) {
943 return visitObjCCategoryRecord(Record);
947 const ObjCCategoryRecord *Record) {
951 for (const auto &Protocol : Record->Protocols)
952 serializeRelationship(ConformsTo, Record->Interface, Protocol,
959 const ObjCMethodRecord *Record) {
963 serializeFunctionSignatureMixin(*CurrentSymbol, *Record);
968 const ObjCInstanceVariableRecord *Record) {
974 const TypedefRecord *Record) {
978 return visitTypedefRecord(Record);
981 bool SymbolGraphSerializer::visitTypedefRecord(const TypedefRecord *Record) {
984 bool ShouldDrop = Record->UnderlyingType.Name.empty();
987 ShouldDrop |= (Record->UnderlyingType.Name == Record->Name);
992 serializeAPIRecord(Record);
996 (*CurrentSymbol)["type"] = Record->UnderlyingType.USR;
1001 void SymbolGraphSerializer::serializeSingleRecord(const APIRecord *Record) {
1002 switch (Record->getKind()) {
1006 walkUpFrom##CLASS(static_cast<const CLASS *>(Record)); \
1012 visitAPIRecord(Record);
1015 llvm_unreachable("API Record with uninstantiable kind");
1079 APIRecord *Record = API.findRecordForUSR(USR);
1080 if (!Record)
1090 Serializer.Hierarchy = generateHierarchyFromRecord(Record);
1092 Serializer.serializeSingleRecord(Record);
1103 for (const auto &Fragment : Record->Declaration.getFragments()) {