Use nullArgCheck and pin signatures #653
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.
With the introduction of Nullable Reference Types in F#9 we need to make sure our code is ready to support it.
After reviewing extensions in this PR, it seems that after this adjustments the code will be ready to be compiled in F#9, it won't generate any
xxx | nullsignature, that's why we pin signatures here, and it won't need at the moment of this PR any introduction ofxxx | nullsignature.Internal null checks would become redundant in principle, but they need to stay as this library could still be consumed by clients in F#8 or lower, so they won't have null analysis at the type system level and might call a function in Extensions with a null value.
The only thing that would need to be done is to revert the last commit here, since those functions and constraint are not available until F#9.