mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
[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:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user