[12.x] Use MissingValue as default to distinguish between omitted and explicit null #56394
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.
Replace null defaults with MissingValue to make behavior more explicit and IDE-friendly
Problem
When using helper methods like:
many IDEs (e.g., PhpStorm) suggest that the third argument is redundant because it matches the default (null).
If a developer removes it (trusting the IDE), the behavior changes silently:
->when(..., null)
→ the field is included in the response with value null->when(...)
→ the field is skipped entirely (because MissingValue is used internally)This leads to non-obvious bugs, especially when the difference between null and "not passed at all" is significant.
Solution
This PR changes the default value from null to new MissingValue in affected helper methods.
Why this matters:
After this change, the difference is clearly reflected in the method signature. IDEs will no longer suggest removing null without warning.