Skip to content

Clean up ProtocolConformance::subst() and fix crash exposed by coroutines work #18978

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
Aug 25, 2018

Conversation

slavapestov
Copy link
Contributor

@slavapestov slavapestov commented Aug 25, 2018

Fixes https://bugs.swift.org/browse/SR-8643 and simplifies some related code. Also addresses FIXMEs introduced by #18366.

@slavapestov slavapestov requested a review from DougGregor August 25, 2018 07:08
@slavapestov slavapestov force-pushed the clean-up-conformance-subst branch from 18a05a0 to d73ccd9 Compare August 25, 2018 07:08
Instead of using the callback form of SubstitutionMap::get(), let's
use the lower-level form that takes the replacement array and
conformances array directly, allowing us to bypass several
calls of subst() on 'this'.
@slavapestov slavapestov force-pushed the clean-up-conformance-subst branch from d73ccd9 to 9cbb944 Compare August 25, 2018 07:31
@slavapestov
Copy link
Contributor Author

@swift-ci Please test

@slavapestov
Copy link
Contributor Author

@swift-ci Please test source compatibility

I think the assertion failure referenced from the FIXME comment
has been fixed.
@slavapestov slavapestov force-pushed the clean-up-conformance-subst branch from 9cbb944 to a71710b Compare August 25, 2018 08:15
@slavapestov
Copy link
Contributor Author

@swift-ci Please test

1 similar comment
@slavapestov
Copy link
Contributor Author

@swift-ci Please test

@slavapestov
Copy link
Contributor Author

@swift-ci Please test source compatibility

@slavapestov
Copy link
Contributor Author

@swift-ci Please test

@slavapestov
Copy link
Contributor Author

@swift-ci Please test source compatibility

@slavapestov slavapestov changed the title Clean up ProtocolConformance::subst() Clean up ProtocolConformance::subst() and fix crash exposed by coroutines work Aug 25, 2018
@slavapestov
Copy link
Contributor Author

@adrian-prantl Please take a look at the debug info change.

@slavapestov slavapestov merged commit a42fe56 into swiftlang:master Aug 25, 2018
});
for (auto ParamType : Sig->getSubstitutableParams()) {
if (!Type(ParamType).subst(SubsMap)->isEqual(ParamType))
return true;
Copy link
Contributor

Choose a reason for hiding this comment

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

Nice!

Copy link
Member

@DougGregor DougGregor left a comment

Choose a reason for hiding this comment

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

This is so much cleaner, thank you!

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