This repository was archived by the owner on Jun 15, 2023. It is now read-only.
jsx: allow locally abstract types and type constraints on @react.component #490
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 is a continuation of #487 that fixes the type annotations for locally abstract types. Because locally abstract types can't be defined in type annotations, they have to be replaced with plain type variables, and this has to be done recursively since they can occur anywhere in a type.
The only limitation I have intentionally imposed here is that extensions are not allowed in type annotations when locally abstract types are used, because that would require traversal of the entire AST, which is no fun.
As requested, here's a complete example:
I hope this one covers all the bases :)