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
Add PHP 8.1 Intersection Types Support for function Return Type #34932
Comments
Hi @karyna-tsymbal-atwix. Thank you for your report.
Make sure that the issue is reproducible on the vanilla Magento instance following Steps to reproduce. To deploy vanilla Magento instance on our environment, Add a comment to the issue:
For more details, review the Magento Contributor Assistant documentation. Add a comment to assign the issue: To learn more about issue processing workflow, refer to the Code Contributions.
🕙 You can find the schedule on the Magento Community Calendar page. 📞 The triage of issues happens in the queue order. If you want to speed up the delivery of your contribution, join the Community Contributions Triage session to discuss the appropriate ticket. 🎥 You can find the recording of the previous Community Contributions Triage on the Magento Youtube Channel ✏️ Feel free to post questions/proposals/feedback related to the Community Contributions Triage process to the corresponding Slack Channel |
Hi @engcom-November. Thank you for working on this issue.
|
Hi @karyna-tsymbal-atwix , |
In PHP 8.1, new Intersection types feature was introduced.
(see details https://wiki.php.net/rfc/pure-intersection-types)
e.g. it's possible to create a function with a signature like
function something(): Foo&Bar&Baz { ...
were return type is an intersection.
Right now Magento will not work properly with such a feature. There are several places where we're using return type's Class (e.g. for code generation):
(better to re-check in case of other places I missed)
Such places should be adjusted to work properly with intersection types.
The main reason for this adjustments it's because 3rd-party developers may develop some new extensions and declare them to support only php >= 8.1.
in such modules they may use this PHP8.1-feature.
Expected result (*)
Magento should not break when Intersection types are used in the function return type. It should properly generate code and so on.
Actual result (*)
Right now Magento can't handle Intersection types introduced in php 8.1
Related issues:
#34931
#34933
Note: There is a Union type feature that should also be implemented. Need to make sure that 2 people do not work on these features in parallel, as this will lead to a conflict!
#34264
The text was updated successfully, but these errors were encountered: