Improve nullness of types in some APIs related to Map
merging, and fix Collectors.toMap
null-handling.
#7058
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.
Improve nullness of types in some APIs related to
Map
merging, and fixCollectors.toMap
null-handling.Collections.toMap
value-type arguments to non-nullable types.Collections.toMap
to remove the key in question whenmergeFunction
returnsnull
.@NonNull
/& Any
in a few places inMap.merge
andMap.computeIfPresent
.Map
implementations, even though we don't yet include@NonNull
annotations in the JDK APIs that we build Guava against. (See post-submit discussion on cl/559605577. But I've taken the shortcut of not waiting for the JDK APIs.)@Nullable
(to match the existing Kotlin?
types) in the return types ofMap.computeIfPresent
andMap.compute
.Note that the test for
mergeFunction
has to work around an overly restrictedtoMap
signature that J2KT inherited from JSpecify. As discussed in a code comment there, this is fundamentally the same issue as we have in Guava withImmutableMap.toImmutableMap
, which is discussed as part of #6824.RELNOTES=n/a