Update Container to not inject null for unset nullable parameters
#286
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.
This changeset updates the
Containerto not injectnullvalues for any unset nullable parameters. With these changes applied, nullable arguments without explicit container configuration or a default value will cause an error if they are not set instead of being silently set tonull. You can still use an explicit default value to restore the old behavior:Note that this is a BC break with a very real chance to affect a number of projects relying on the existing behavior. The main motivation for this changes is to reduce complexity to introduce support for union types in a follow-up PR. Also, given the above upgrade path, upgrading should be fairly straightforward.
This includes a number of updated tests to verify correct behavior and avoid introducing any potential regressions, so this has 100% code coverage and should be safe to apply. On top of this, I've updated/simplified the documentation slightly to emphasize assigning default values instead.
Builds on top of #284, #184, #181, #92, and others