<rdar://problem/15321132>

Demangle nominal type descriptor _TMn correctly



Swift SVN r9675
This commit is contained in:
Enrico Granata
2013-10-25 18:02:46 +00:00
parent 9625c08107
commit 6e666c7c22
2 changed files with 11 additions and 0 deletions

View File

@@ -473,6 +473,13 @@ private:
appendNode(Node::Kind::Metaclass)->push_back_child(type);
return true;
}
if (Mangled.nextIf('n')) {
NodePointer type = demangleType();
if (!type)
return failure();
appendNode(Node::Kind::NominalTypeDescriptor)->push_back_child(type);
return true;
}
Directness d = demangleDirectness();
appendNode(Node::Kind::Directness, toString(d));
NodePointer type = demangleType();
@@ -1988,6 +1995,9 @@ private:
case swift::Demangle::Node::Kind::TypeMetadata:
Printer << "type metadata for ";
pointer = pointer->child_at(0); continue;
case swift::Demangle::Node::Kind::NominalTypeDescriptor:
Printer << "nominal type descriptor for ";
pointer = pointer->child_at(0); continue;
case swift::Demangle::Node::Kind::ValueWitnessKind:
Printer << pointer->getText() << " value witness for ";
pointer = pointer->child_at(0); continue;