[api-digester] Include USRs in conformances

SDK conformance nodes include only protocol
`name` and `printedName`, both are demangled.
USR field of the protocol type is added, to be able
to uniquely identify conformances.
This commit is contained in:
dmcyk
2019-05-07 22:09:28 +02:00
parent aa30f3507f
commit 1142b6037c
6 changed files with 137 additions and 68 deletions

View File

@@ -112,7 +112,7 @@ SDKNodeDeclType::SDKNodeDeclType(SDKNodeInitInfo Info):
SDKNodeConformance::SDKNodeConformance(SDKNodeInitInfo Info):
SDKNode(Info, SDKNodeKind::Conformance),
IsABIPlaceholder(Info.IsABIPlaceholder) {}
Usr(Info.Usr), IsABIPlaceholder(Info.IsABIPlaceholder) {}
SDKNodeTypeWitness::SDKNodeTypeWitness(SDKNodeInitInfo Info):
SDKNode(Info, SDKNodeKind::TypeWitness) {}
@@ -123,7 +123,7 @@ SDKNodeDeclOperator::SDKNodeDeclOperator(SDKNodeInitInfo Info):
SDKNodeDeclTypeAlias::SDKNodeDeclTypeAlias(SDKNodeInitInfo Info):
SDKNodeDecl(Info, SDKNodeKind::DeclTypeAlias) {}
SDKNodeDeclVar::SDKNodeDeclVar(SDKNodeInitInfo Info):
SDKNodeDeclVar::SDKNodeDeclVar(SDKNodeInitInfo Info):
SDKNodeDecl(Info, SDKNodeKind::DeclVar), IsLet(Info.IsLet),
HasStorage(Info.HasStorage), HasDidSet(Info.HasDidset),
HasWillSet(Info.HasWillset) {}
@@ -140,7 +140,7 @@ SDKNodeDeclFunction::SDKNodeDeclFunction(SDKNodeInitInfo Info):
SDKNodeDeclConstructor::SDKNodeDeclConstructor(SDKNodeInitInfo Info):
SDKNodeDeclAbstractFunc(Info, SDKNodeKind::DeclConstructor) {}
SDKNodeDeclGetter::SDKNodeDeclGetter(SDKNodeInitInfo Info):
SDKNodeDeclGetter::SDKNodeDeclGetter(SDKNodeInitInfo Info):
SDKNodeDeclAbstractFunc(Info, SDKNodeKind::DeclGetter) {}
SDKNodeDeclSetter::SDKNodeDeclSetter(SDKNodeInitInfo Info):
@@ -552,7 +552,7 @@ SDKNode* SDKNode::constructSDKNode(SDKContext &Ctx,
NodeVector Conformances;
for (auto &Pair : *Node) {
auto keyString = GetScalarString(Pair.getKey());
auto keyString = GetScalarString(Pair.getKey());
if (auto keyKind = parseKeyKind(keyString)) {
switch(*keyKind) {
case KeyKind::KK_kind:
@@ -1708,6 +1708,7 @@ void SDKNode::jsonize(json::Output &out) {
void SDKNodeConformance::jsonize(json::Output &out) {
SDKNode::jsonize(out);
output(out, KeyKind::KK_usr, Usr);
output(out, KeyKind::KK_isABIPlaceholder, IsABIPlaceholder);
}