[Serializer] Fix denormalizing union types #45838
Merged
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.
@nicolas-grekas Replaces: #45824 as I accidentally registerred a lot of people to the notifier list when changing target branch.
Note about difference between docblock vs PHP 8 union types:
With PHP 8 union types, the resolved
$typesarray was always (when I checked) in the same order, no matter the type definition.So these two things:
public null|boolean|DateTimeandpublic DateTime|boolean|nullwould always generate an array, where the first item wasDateTime.With PHP docblock the
$tpyesarray order depends of the order of the documentation.So the
* @var \DateTime|bool|nullwould resolve to an array withDateTimeas first item, but the* @var null|bool|\DateTimewould resolve to theDateTimebeing the last element.