Skip to content

Implement reabstraction of inouts in witness and reabstraction thunks #18891

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Aug 22, 2018

Conversation

rjmccall
Copy link
Contributor

This is a longstanding gap in the implementation that quite possibly never bit anyone in the wild. I've only gotten around to implementing it now because this same code path will be used to reabstract inout yields. That means that, rather than only affecting functions with an abstraction difference in an inout parameter type, this can affect all storage with any abstraction difference in the stored value type. So it's time to fill in this gap.

This is a longstanding gap in the implementation that quite possibly
never bit anyone in the wild.  I've only gotten around to implementing
it now because this same code path will be used to reabstract inout
yields.  That means that, rather than only affecting functions with
an abstraction difference in an inout parameter type, this can affect
all storage with any abstraction difference in the stored value type.
So it's time to fill in this gap.
@rjmccall
Copy link
Contributor Author

@swift-ci Please smoke test and merge.

@swift-ci swift-ci merged commit 030b21e into swiftlang:master Aug 22, 2018
@rjmccall rjmccall deleted the inout-reabstraction branch August 22, 2018 07:04
@palimondo
Copy link
Contributor

According to Slava, this has fixed SR-3450 (and SR-3987), which were biting us "in the wild"… 😜 Thanks John!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants