Skip to content

[WIP] SIL: Add devirtualizer support for default witness methods #1421

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

Closed

Conversation

slavapestov
Copy link
Contributor

We ignore substitutions from the conformance, using the Self type
substitution from the call site instead.

This is a bit of a hack; more and more it appears that we need to
stop thinking of witness_method as a separate calling convention,
and design what @rjmccall described as "abstraction patterns for
generic signatures" instead.

@slavapestov
Copy link
Contributor Author

@swift-ci Please test

@slavapestov slavapestov force-pushed the devirt-default-witness branch from 7b34128 to 44c17b8 Compare February 24, 2016 02:38
@slavapestov
Copy link
Contributor Author

@swift-ci Please test

We ignore substitutions from the conformance, using the Self type
substitution from the call site instead.

The new SILFunctionType::getDefaultWitnessMethodProtocol() method
is used to figure out what "shape" the Self substitutions need
to take.

This is cleaner than it was before the method was added, but is
still a bit of a hack; more and more it appears that we need to
stop thinking of witness_method as a separate calling convention,
and design what @rjmccall described as "abstraction patterns for
generic signatures" instead.
@slavapestov slavapestov force-pushed the devirt-default-witness branch from 44c17b8 to 77b6969 Compare February 24, 2016 03:46
@slavapestov
Copy link
Contributor Author

@swift-ci Please test

@slavapestov slavapestov deleted the devirt-default-witness branch February 26, 2016 09:19
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