summaryrefslogtreecommitdiff
path: root/annotations/generate_annotated_java_files.py
diff options
context:
space:
mode:
authorPete Gillin <peteg@google.com>2018-11-12 18:29:26 +0000
committerPete Gillin <peteg@google.com>2018-11-13 13:28:58 +0000
commit5b55a658679d1f6be198b07dcaf77a99bdfbff79 (patch)
tree36e1480f0eb4d0f0dc3355015479bb3d33a79cc1 /annotations/generate_annotated_java_files.py
parentd22837f7a8108fc12e0d417d668e4b0ca4b49ef4 (diff)
Add nullability annotations for static utils in java.util.
This change annotates Arrays, Collections, and Objects. The most interesting decision here is probably annotating the Object argument of the various Objects.requireNonNull overloads. Under the normal rules, this would be @NonNull, because the method throws NPE if it's null. This change annotates them as @Nullable because throwing NPE on null is the whole point of the method, and calling it with an argument which is provably non-null is pointless; or, to put it another way, the method exists to convert possibly-@Nullable T to definitely-@NonNull T with an exception thrown in a controlled fashion. Note that the methods involving natural sort ordering of arrays or collections require the elements to be non-null, because they end up calling e1.compareTo(e2) for arbitrary pairs of elements. For the methods that take Comparators, the nullability of the elements match the parameter of the Comparator's type parameter. Test: make core-current-stubs-nullability-validation-check-nullability-warnings Bug: 64930165 Change-Id: I52744d72da857751274fe44f58cff38e6d6b8a2f
Diffstat (limited to 'annotations/generate_annotated_java_files.py')
0 files changed, 0 insertions, 0 deletions