Mangling: demangling/remangling of property behavior conformances

This commit is contained in:
Erik Eckstein
2016-12-19 12:12:52 -08:00
parent 947996ceaf
commit a8eec59008
3 changed files with 26 additions and 6 deletions

View File

@@ -1020,12 +1020,20 @@ NodePointer Demangler::popProtocolConformance() {
NodePointer Module = popModule();
NodePointer Proto = popProtocol();
NodePointer Type = popNode(Node::Kind::Type);
NodePointer Ident;
if (!Type) {
// Property behavior conformance
Ident = popNode(Node::Kind::Identifier);
Type = popNode(Node::Kind::Type);
}
if (GenSig) {
Type = createType(createWithChildren(Node::Kind::DependentGenericType,
GenSig, Type));
}
return createWithChildren(Node::Kind::ProtocolConformance,
Type, Proto, Module);
NodePointer Conf = createWithChildren(Node::Kind::ProtocolConformance,
Type, Proto, Module);
addChild(Conf, Ident);
return Conf;
}
NodePointer Demangler::demangleThunkOrSpecialization() {