-
Notifications
You must be signed in to change notification settings - Fork 7.9k
Pure Intersection types #6799
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
+1,640
−330
Merged
Pure Intersection types #6799
Changes from 2 commits
Commits
Show all changes
40 commits
Select commit
Hold shift + click to select a range
941d55c
Start implementing intersection types
Girgias f9c78be
Gross intersection type in parameter types syntax ambiguity workaround
iluuu1994 2d30485
Fix variance when child is union and parent is intersection
Girgias 062d557
Reorder execution and expand comment
Girgias 49f53a9
Collapse branches together
Girgias f98f402
Fix Reflection test after rebase (Fiber)
Girgias 0824c47
Fix after review
Girgias af47afc
Alias T_AMPERSAND
Girgias 9e9de43
Revert "Alias T_AMPERSAND"
Girgias 05723db
Fix an additional variance bug
Girgias 7c4f70c
Address review
Girgias 93ca487
Allow self and parent to be part of an intersection type
Girgias cff68c9
Support static type in intersection
Girgias b541b24
Revert "Support static type in intersection"
Girgias 020b586
Revert "Allow self and parent to be part of an intersection type"
Girgias b0c7519
Move common code into always inlined functions
Girgias 8ca34b3
Comment nits
Girgias b7c322e
Apply nit to reflection test
Girgias 1bf0dd7
Adjust dfa pass
Girgias ac74551
Drop unnecessary try/catch
Girgias a0a1d90
Refactor zend_resolve_ce()
Girgias a96e956
Refactor zend_check_type_slow()
Girgias e334504
Comment and reorder the parser hack
Girgias a02eb62
Refactor check for self/parent
Girgias 9508af7
Export common type checking code for JIT
Girgias 5ae1d2a
Fix parse error message for "&"
nikic 3cbab3b
Merge zend_is_single_type_subtype_intersection() function
nikic a47b77a
Rebase fixup
nikic c8b965a
Unify early exit status handling, add comments
nikic 2070319
Adjust misleading comment
nikic 2c6d155
Add failing test
nikic 681f1c4
Handle object/iterable, fixup rebase
nikic 1446dec
Handle intersection in can_elide_return_type_check()
nikic 6166ed0
Code cleanup
nikic a6d28dc
Return status like in branch above
Girgias 129f1ad
Add a variance test
Girgias ea33768
Don't load classes of an intersection if parent has object
Girgias 8873527
Revert "Don't load classes of an intersection if parent has object"
Girgias 891c59b
Add comment
Girgias 799b0cb
[skip-ci] Add UPGRADING entry and fix comments
Girgias File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The "enums" bit here doesn't make sense anymore :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copy pasted this, so I also fixed that comment at the same time.