Bugfix :: Nullness :: Unsafe cast no longer requires generic type to be not null
typar
#18343
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.
Fixes #18275 .
The logic for downcast required for the target type to subsume the source.
When solving type inference, this also meant that
obj :?> T
it added anot null
constraint toT
, unless the source wasobjnull
.This change relaxes the environment and allows
obj :?> ..
casting without constraints.Doing that also meant getting rid of some duplicate diagnostics we had captured in tests, as nullness is dealt with separately for downcasts/typetests with their own sets of messages.