30 Object *RootObjectPtr = ExpectedJSON->getAsObject();
39 const Object &RootObject = *RootObjectPtr;
41 const Array *LUNamespaceArray = RootObject.getArray(
"lu_namespace");
42 if (!LUNamespaceArray) {
45 "NestedBuildNamespace",
"lu_namespace",
"array")
50 auto ExpectedLUNamespace = nestedBuildNamespaceFromJSON(*LUNamespaceArray);
51 if (!ExpectedLUNamespace) {
62 const Array *IdTableArray = RootObject.getArray(
"id_table");
66 "IdTable",
"id_table",
"array")
71 auto ExpectedIdTable = entityIdTableFromJSON(*IdTableArray);
72 if (!ExpectedIdTable) {
79 getIdTable(Encoding) = std::move(*ExpectedIdTable);
83 const Array *LinkageTableArray = RootObject.getArray(
"linkage_table");
84 if (!LinkageTableArray) {
87 "LinkageTable",
"linkage_table",
"array")
92 auto ExpectedIdRange =
93 llvm::make_second_range(getEntities(getIdTable(Encoding)));
94 std::set<EntityId> ExpectedIds(ExpectedIdRange.begin(),
95 ExpectedIdRange.end());
99 auto ExpectedLinkageTable =
100 linkageTableFromJSON(*LinkageTableArray, std::move(ExpectedIds));
101 if (!ExpectedLinkageTable) {
109 getLinkageTable(Encoding) = std::move(*ExpectedLinkageTable);
113 const Array *SummaryDataArray = RootObject.getArray(
"data");
114 if (!SummaryDataArray) {
117 "SummaryData entries",
"data",
"array")
122 auto ExpectedEncodingSummaryDataMap =
123 encodingSummaryDataMapFromJSON(*SummaryDataArray);
124 if (!ExpectedEncodingSummaryDataMap) {
132 getData(Encoding) = std::move(*ExpectedEncodingSummaryDataMap);
135 return std::move(Encoding);