mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
This is largely a matter of changing the main loop over subst params in TranslateArguments to use the generators I added, then plugging back into the general reabstraction infrastructure. Because we don't have pack coroutines, we're kind of stuck in the code generation for pack reabstraction: we have to write +1 r-values into a temporary tuple and then write those tuple element addresses into the output pack. It's not great. We also have lifetime problems with things like non-escaping closures --- we have that problem outside of reabstraction thunks, too. Other than that glaring problem, I'm feeling relatively good about the code here. It's missing some peepholes, but it should work. But that that's not to say that arity reabstraction works in general; my attempts to test it have been exposing some problems elsewhere, and in particular the closure case crashes, which is really bad. But this gets a few more things working, and this PR is quite large already.
17 KiB
17 KiB