Commits

Mark Lacey committed ae81a44ab36
Mangling and demangling support for SIL @box. The SIL optimizer's closure specialization pass clones functions that take closures as arguments and generates a new function with a direct call to the closure function. The cloned function has new arguments added for the values that are captured by the closure. In the cases where the closure takes a @box argument, we were hitting an assert attempting to mangle the name of the newly generated function, since it now has a @box argument as a parameter. We don't normally expect @box arguments during mangling because they do not exist prior to SILGen, but since we generate new manglings throughout the optimizer we need to be able to mangle (and demangle) these types. Fixes rdar://problem/23893290.