WIP: Polymorphic "this" for static members #29484
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR is a work in progress to solicit feedback on the proposed solution, please do not merge or use this branch.
This commit attempts to make progress towards #5863. It is not a comprehensive solution, but it does provide a way for a library writer to 'opt-in' and provide an interface with a static polymorphic this.
One of the difficulties with #5863, is how to make it clear which
this
thethis
type refers to, and the issue of the static and instance type mixing in the same declaration block.This sidesteps those issues, by only providing a static polymorphic this when using an interface in the extends position. This makes the meaning of
this
very clear and it's explicit which side thethis
type falls on; there is no mixing.i.e:
WIP
The PR is not finished. There are a few situations that need to be resolved and tests need to be written if it's decided that this is an acceptable solution.
(Potentially) fixes #5863