Skip to content

[Serializer] Fix AbstractObjectNormalizer not considering pseudo type false #45154

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
merged 1 commit into from
Jan 26, 2022

Conversation

ThomasNunninger
Copy link
Contributor

@ThomasNunninger ThomasNunninger commented Jan 24, 2022

Q A
Branch? 5.3
Bug fix? yes
New feature? no
Deprecations? no
Tickets Fix #45151
License MIT
Doc PR

AbstractObjectNormalizer does not consider pseudo type false (bug #45151)

When you have a PHP 8.0 object where an attribute uses the pseudo type false (in a union type) you can't denormalize an array to that object.

@carsonbot
Copy link

Hey!

I see that this is your first PR. That is great! Welcome!

Symfony has a contribution guide which I suggest you to read.

In short:

  • Always add tests
  • Keep backward compatibility (see https://symfony.com/bc).
  • Bug fixes must be submitted against the lowest maintained branch where they apply (see https://symfony.com/releases)
  • Features and deprecations must be submitted against the 6.1 branch.

Review the GitHub status checks of your pull request and try to solve the reported issues. If some tests are failing, try to see if they are failing because of this change.

When two Symfony core team members approve this change, it will be merged and you will become an official Symfony contributor!
If this PR is merged in a lower version branch, it will be merged up to all maintained branches within a few days.

I am going to sit back now and wait for the reviews.

Cheers!

Carsonbot

@ThomasNunninger
Copy link
Contributor Author

Sorry, I have no clue how to fix the failing tests for PHP 7.2 & PHP 7.4 and the appveyor build.

The issue probably is because of https://github.com/symfony/symfony/pull/45154/files#diff-748599238ed60d6c9394adf834ea5b2dcbb1af524b9583600dce1eed23e47ab8 line 18 where I declare a property as false|string what is not allowed before PHP 8.0. (I skipped the test itself that uses that class. But I assume, some tools try to include the PHP 8.0 class and fail due to new attribute declaration.)

Any idea how to fix that?

@nicolas-grekas nicolas-grekas changed the title [Serializer] Fixed bug 45151 [Serializer] Fix AbstractObjectNormalizer not considering pseudo type false Jan 24, 2022
@carsonbot
Copy link

Hey!

I think @jeroennoten has recently worked with this code. Maybe they can help review this?

Cheers!

Carsonbot

@nicolas-grekas nicolas-grekas modified the milestones: 5.3, 4.4 Jan 26, 2022
@nicolas-grekas
Copy link
Member

Thank you @ThomasNunninger.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants