Strip Nulls from Java members when unsafeNulls is enabled #13337
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.
The
unsafeNulls
feature makesNull
a subtype ofAnyRef
in a certain scope.In the scope, we can assign a nullable value with non-nullable type, or select members on it without
.nn
.However,
unsafeNulls
still couldn't handle Java methods or fields if the type is a value type or a type variables.J.java
S.scala
The solution is to cast all Java applications and selections to non-nullable in
adaptToSubtype
whenunsafeNulls
is enabled. This will not affect Scala applications and selections.The new test is in
tests/explicit-nulls/unsafe-common/unsafe-java-call/