Skip to content

[Generic signature builder] Substitute requirements instead of threading a PA around. #7398

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 4 commits into from
Feb 12, 2017

Conversation

huonw
Copy link
Contributor

@huonw huonw commented Feb 11, 2017

This essentially undoes the implementation in 51da51d, which
implicitly did a substitution of the Self type in a protocol's
requirement signature by threading around the replacement PA. This is
brittle because every part of the code needs to take and pass around the
argument. By preemptively substituting, the whole requirement is in the
right form from the time it enters addRequirement.

The infrastructure here also allows simplifying some code, and some other clean-ups/bug fixes are included.

…ing a PA around.

This essentially undoes the implementation in 51da51d, which
implicitly did a substitution of the Self type in a protocol's
requirement signature by threading around the replacement PA. This is
brittle because every part of the code needs to take and pass around the
argument. By preemptively substituting, the whole requirement is in the
right form from the time it enters `addRequirement`.

The infrastructure here also allows simplifying some code.
@huonw huonw changed the title [Generic signature builder] Substitute requirements instead threading PA around. [Generic signature builder] Substitute requirements instead of threading a PA around. Feb 11, 2017
@DougGregor
Copy link
Member

Yeah, this is definitely cleaner!

@DougGregor
Copy link
Member

@swift-ci please smoke test

@DougGregor DougGregor merged commit b6d5443 into swiftlang:master Feb 12, 2017
@huonw huonw deleted the gsb-cleanups branch February 13, 2017 18:50
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.

2 participants