[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:
Michael Gottesman
2024-02-16 13:54:56 -08:00
parent d35dcc8f9c
commit f4efcec55c
18 changed files with 302 additions and 31 deletions

View File

@@ -278,7 +278,7 @@ public:
/// Prints the whole node tree in readable form to stderr.
///
/// Useful to be called from the debugger.
void dump();
void dump() LLVM_ATTRIBUTE_USED;
};
/// Returns the length of the swift mangling prefix of the \p SymbolName.
@@ -555,6 +555,7 @@ struct [[nodiscard]] ManglingError {
InvalidImplDifferentiability,
InvalidImplFunctionAttribute,
InvalidImplParameterConvention,
InvalidImplParameterTransferring,
InvalidMetatypeRepresentation,
MultiByteRelatedEntity,
BadValueWitnessKind,