Skip to content

RequirementMachine: Odds and ends in service of protocol requirement signature minimization #39647

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

Conversation

slavapestov
Copy link
Contributor

@slavapestov slavapestov commented Oct 8, 2021

Splitting off this PR from #39629.

@slavapestov slavapestov force-pushed the rqm-protocol-minimization-bits branch from a800507 to 8867fe8 Compare October 8, 2021 02:41
@slavapestov
Copy link
Contributor Author

@swift-ci Please smoke test

@slavapestov
Copy link
Contributor Author

@swift-ci Please smoke test macOS

…t out of Sema

For now, this still uses the GSB.
…col refinement

For implementation reasons we want the requirement signature of a
protocol to directly include all protocol refinement relationships,
even if they can be derived via same-type requirements between Self
and some nested type.

Therefore, a protocol refinement rule [P].[Q] => [P] can only be
replaced with a generating conformance equation that consists
entirely of other conformance rules.

This exactly simulates the existing behavior of the GSB's redundant
requirements algorithm.
@slavapestov slavapestov force-pushed the rqm-protocol-minimization-bits branch from 8867fe8 to 94e9ab6 Compare October 8, 2021 18:28
@slavapestov
Copy link
Contributor Author

#39657
@swift-ci Please smoke test

@slavapestov
Copy link
Contributor Author

@swift-ci Please smoke test macOS

@slavapestov slavapestov merged commit 63839ac into swiftlang:main Oct 8, 2021
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.

1 participant