Skip to content

Fix default witness checking [4.1] #13365

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

Conversation

slavapestov
Copy link
Contributor

@slavapestov slavapestov commented Dec 11, 2017

  • Description: Fixes a type checker bug where SILGen would try to use an incomplete conformance due to a subtle phase ordering issue. Since the problem was with default witness tables and those are not used unless building a resilient module, go further and don't emit them at all unless resilience is enabled.

  • Scope of the issue: Reported by a user on Twitter who was hitting this with a real project.

  • Risk: Low, we're basically just disabling a code path for normal users.

  • Origination: Probably the specific crash was introduced in 4.0 when conformance access paths came along. Default witness tables have been broken in this way since first added in 3.0 or 3.1.

  • Tested: New test case added.

  • Radar: rdar://problem/35949729

  • Reviewed by: @jckarter

@slavapestov
Copy link
Contributor Author

@swift-ci Please test

@slavapestov slavapestov changed the title Fix default witness checking Fix default witness checking [4.1] Dec 11, 2017
@slavapestov slavapestov requested a review from jckarter December 11, 2017 22:02
Copy link
Contributor

@jckarter jckarter left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@tkremenek tkremenek merged commit 90011a8 into swiftlang:swift-4.1-branch Dec 11, 2017
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