mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
[transferring] Add mangling support for transferring.
This includes runtime support for instantiating transferring param/result in function types. This is especially important since that is how we instantiate function types like: typealias Fn = (transferring X) -> (). rdar://123118061
This commit is contained in:
@@ -639,6 +639,9 @@ swift::_swift_buildDemanglingForMetadata(const Metadata *type,
|
||||
if (flags.isIsolated()) {
|
||||
wrapInput(Node::Kind::Isolated);
|
||||
}
|
||||
if (flags.isTransferring()) {
|
||||
wrapInput(Node::Kind::Transferring);
|
||||
}
|
||||
|
||||
inputs.push_back({input, flags.isVariadic()});
|
||||
}
|
||||
@@ -762,6 +765,10 @@ swift::_swift_buildDemanglingForMetadata(const Metadata *type,
|
||||
if (func->isAsync())
|
||||
funcNode->addChild(Dem.createNode(Node::Kind::AsyncAnnotation), Dem);
|
||||
|
||||
if (func->getExtendedFlags().hasTransferringResult())
|
||||
funcNode->addChild(
|
||||
Dem.createNode(Node::Kind::TransferringResultFunctionType), Dem);
|
||||
|
||||
funcNode->addChild(parameters, Dem);
|
||||
funcNode->addChild(result, Dem);
|
||||
return funcNode;
|
||||
|
||||
Reference in New Issue
Block a user