From 1b6f8cfc32c1bce4bdcb4880fa72c2b84568557b Mon Sep 17 00:00:00 2001 From: Mark Roberts Date: Thu, 8 Jun 2023 07:10:54 -0700 Subject: [PATCH] Add sign annotations --- guava/pom.xml | 2 +- guava/src/com/google/common/base/Absent.java | 3 ++- .../com/google/common/base/CaseFormat.java | 3 ++- .../src/com/google/common/base/Converter.java | 7 ++++--- guava/src/com/google/common/base/Enums.java | 3 ++- .../com/google/common/base/Equivalence.java | 5 +++-- .../common/base/FunctionalEquivalence.java | 3 ++- .../src/com/google/common/base/Functions.java | 13 +++++++------ .../src/com/google/common/base/Optional.java | 3 ++- .../common/base/PairwiseEquivalence.java | 3 ++- .../com/google/common/base/Predicates.java | 19 ++++++++++--------- guava/src/com/google/common/base/Present.java | 3 ++- .../src/com/google/common/base/Suppliers.java | 5 +++-- .../google/common/cache/CacheBuilderSpec.java | 3 ++- .../com/google/common/cache/CacheStats.java | 3 ++- .../com/google/common/cache/LocalCache.java | 2 +- .../collect/AbstractMapBasedMultimap.java | 6 +++--- .../common/collect/AbstractMapEntry.java | 3 ++- .../common/collect/AbstractMultimap.java | 4 ++-- .../common/collect/AbstractMultiset.java | 2 +- .../common/collect/AbstractRangeSet.java | 3 ++- .../google/common/collect/AbstractTable.java | 2 +- .../common/collect/ByFunctionOrdering.java | 3 ++- .../google/common/collect/CartesianList.java | 7 ++++--- .../common/collect/ComparatorOrdering.java | 3 ++- .../common/collect/CompoundOrdering.java | 3 ++- .../collect/ConcurrentHashMultiset.java | 6 +++--- .../src/com/google/common/collect/Count.java | 3 ++- guava/src/com/google/common/collect/Cut.java | 11 ++++++----- .../common/collect/DenseImmutableTable.java | 3 ++- .../collect/DescendingImmutableSortedSet.java | 3 ++- .../common/collect/DescendingMultiset.java | 3 ++- .../common/collect/EmptyContiguousSet.java | 7 ++++--- .../google/common/collect/EnumMultiset.java | 2 +- .../common/collect/ExplicitOrdering.java | 3 ++- .../common/collect/FilteredEntryMultimap.java | 4 ++-- .../collect/FilteredKeySetMultimap.java | 5 +++-- .../collect/FilteredMultimapValues.java | 2 +- .../collect/ForwardingConcurrentMap.java | 3 ++- .../google/common/collect/ForwardingList.java | 9 +++++---- .../google/common/collect/ForwardingMap.java | 2 +- .../common/collect/ForwardingMapEntry.java | 3 ++- .../common/collect/ForwardingMultimap.java | 2 +- .../common/collect/ForwardingMultiset.java | 2 +- .../google/common/collect/ForwardingSet.java | 2 +- .../common/collect/ForwardingTable.java | 2 +- .../google/common/collect/GeneralRange.java | 3 ++- .../com/google/common/collect/HashBiMap.java | 4 ++-- .../google/common/collect/HashMultiset.java | 2 +- .../common/collect/ImmutableEnumMap.java | 2 +- .../common/collect/ImmutableEnumSet.java | 7 ++++--- .../google/common/collect/ImmutableList.java | 2 +- .../google/common/collect/ImmutableMap.java | 4 ++-- .../common/collect/ImmutableMapEntrySet.java | 2 +- .../common/collect/ImmutableMapKeySet.java | 3 ++- .../common/collect/ImmutableMapValues.java | 3 ++- .../common/collect/ImmutableMultiset.java | 4 ++-- .../common/collect/ImmutableRangeMap.java | 3 ++- .../common/collect/ImmutableRangeSet.java | 3 ++- .../google/common/collect/ImmutableSet.java | 2 +- .../common/collect/ImmutableSortedAsList.java | 7 ++++--- .../common/collect/ImmutableSortedMap.java | 4 ++-- .../com/google/common/collect/Interners.java | 3 ++- .../collect/JdkBackedImmutableBiMap.java | 3 ++- .../common/collect/JdkBackedImmutableMap.java | 3 ++- .../common/collect/JdkBackedImmutableSet.java | 3 ++- .../collect/LexicographicalOrdering.java | 3 ++- .../common/collect/LinkedHashMultimap.java | 2 +- .../common/collect/LinkedListMultimap.java | 2 +- .../google/common/collect/MapDifference.java | 5 +++-- .../common/collect/MapMakerInternalMap.java | 2 +- guava/src/com/google/common/collect/Maps.java | 12 ++++++------ .../com/google/common/collect/Multimap.java | 2 +- .../com/google/common/collect/Multimaps.java | 2 +- .../com/google/common/collect/Multiset.java | 4 ++-- .../com/google/common/collect/Multisets.java | 2 +- .../common/collect/NullsFirstOrdering.java | 3 ++- .../common/collect/NullsLastOrdering.java | 3 ++- .../src/com/google/common/collect/Range.java | 3 ++- .../com/google/common/collect/RangeMap.java | 3 ++- .../com/google/common/collect/RangeSet.java | 3 ++- .../common/collect/RegularContiguousSet.java | 7 ++++--- .../common/collect/RegularImmutableBiMap.java | 4 ++-- .../common/collect/RegularImmutableList.java | 2 +- .../collect/RegularImmutableMultiset.java | 2 +- .../common/collect/RegularImmutableSet.java | 5 +++-- .../common/collect/ReverseOrdering.java | 3 ++- guava/src/com/google/common/collect/Sets.java | 6 +++--- .../collect/SingletonImmutableList.java | 9 +++++---- .../common/collect/SingletonImmutableSet.java | 7 ++++--- .../google/common/collect/Synchronized.java | 16 ++++++++-------- .../src/com/google/common/collect/Table.java | 4 ++-- .../src/com/google/common/collect/Tables.java | 2 +- .../google/common/collect/TreeBasedTable.java | 3 ++- .../google/common/collect/TreeMultiset.java | 2 +- .../google/common/collect/TreeRangeMap.java | 4 ++-- .../google/common/collect/TreeRangeSet.java | 17 +++++++++-------- .../google/common/eventbus/Subscriber.java | 3 ++- .../common/eventbus/SubscriberRegistry.java | 3 ++- .../google/common/graph/AbstractGraph.java | 3 ++- .../google/common/graph/AbstractNetwork.java | 2 +- .../common/graph/AbstractValueGraph.java | 3 ++- .../graph/DirectedGraphConnections.java | 6 +++--- .../com/google/common/graph/ElementOrder.java | 3 ++- .../com/google/common/graph/EndpointPair.java | 7 ++++--- guava/src/com/google/common/graph/Graph.java | 3 ++- .../src/com/google/common/graph/Network.java | 3 ++- .../com/google/common/graph/ValueGraph.java | 3 ++- .../com/google/common/hash/BloomFilter.java | 3 ++- .../common/hash/BloomFilterStrategies.java | 3 ++- guava/src/com/google/common/hash/Funnels.java | 5 +++-- .../src/com/google/common/hash/HashCode.java | 3 ++- guava/src/com/google/common/hash/Hasher.java | 3 ++- guava/src/com/google/common/hash/Hashing.java | 3 ++- .../common/hash/Murmur3_128HashFunction.java | 3 ++- .../common/hash/Murmur3_32HashFunction.java | 3 ++- .../google/common/hash/SipHashFunction.java | 3 ++- .../com/google/common/io/BaseEncoding.java | 5 +++-- .../com/google/common/math/PairedStats.java | 3 ++- guava/src/com/google/common/math/Stats.java | 3 ++- .../com/google/common/net/HostAndPort.java | 3 ++- .../com/google/common/net/HostSpecifier.java | 3 ++- .../google/common/net/InternetDomainName.java | 3 ++- .../src/com/google/common/net/MediaType.java | 3 ++- .../google/common/primitives/Booleans.java | 2 +- .../com/google/common/primitives/Bytes.java | 2 +- .../com/google/common/primitives/Chars.java | 2 +- .../com/google/common/primitives/Doubles.java | 2 +- .../com/google/common/primitives/Floats.java | 2 +- .../primitives/ImmutableDoubleArray.java | 4 ++-- .../common/primitives/ImmutableIntArray.java | 4 ++-- .../common/primitives/ImmutableLongArray.java | 4 ++-- .../com/google/common/primitives/Ints.java | 2 +- .../com/google/common/primitives/Longs.java | 2 +- .../com/google/common/primitives/Shorts.java | 2 +- .../common/primitives/UnsignedInteger.java | 2 +- .../common/primitives/UnsignedLong.java | 3 ++- .../reflect/AbstractInvocationHandler.java | 3 ++- .../com/google/common/reflect/ClassPath.java | 5 +++-- .../com/google/common/reflect/Invokable.java | 3 ++- .../com/google/common/reflect/Parameter.java | 3 ++- .../google/common/reflect/TypeParameter.java | 3 ++- .../google/common/reflect/TypeResolver.java | 3 ++- .../com/google/common/reflect/TypeToken.java | 3 ++- .../src/com/google/common/reflect/Types.java | 9 +++++---- pom.xml | 2 +- 146 files changed, 326 insertions(+), 236 deletions(-) diff --git a/guava/pom.xml b/guava/pom.xml index 7e495d6b2162..c017817f67ae 100644 --- a/guava/pom.xml +++ b/guava/pom.xml @@ -91,7 +91,7 @@ org.checkerframework checker - 3.34.0 + 3.35.0 diff --git a/guava/src/com/google/common/base/Absent.java b/guava/src/com/google/common/base/Absent.java index 65035ae8221b..b880c34cca9e 100644 --- a/guava/src/com/google/common/base/Absent.java +++ b/guava/src/com/google/common/base/Absent.java @@ -23,6 +23,7 @@ import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.checker.nullness.qual.RequiresNonNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.framework.qual.AnnotatedFor; /** Implementation of an {@link Optional} not containing a reference. */ @@ -89,7 +90,7 @@ public boolean equals(@CheckForNull Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness Absent this) { return 0x79a31aac; } diff --git a/guava/src/com/google/common/base/CaseFormat.java b/guava/src/com/google/common/base/CaseFormat.java index 5957b92fb075..4a2bc40973cd 100644 --- a/guava/src/com/google/common/base/CaseFormat.java +++ b/guava/src/com/google/common/base/CaseFormat.java @@ -24,6 +24,7 @@ import org.checkerframework.checker.index.qual.IndexOrHigh; import org.checkerframework.checker.index.qual.LTEqLengthOf; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.common.value.qual.ArrayLen; /** @@ -200,7 +201,7 @@ public boolean equals(@CheckForNull Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness StringConverter this) { return sourceFormat.hashCode() ^ targetFormat.hashCode(); } diff --git a/guava/src/com/google/common/base/Converter.java b/guava/src/com/google/common/base/Converter.java index 6c16bcaf5934..bfac3a4eac7d 100644 --- a/guava/src/com/google/common/base/Converter.java +++ b/guava/src/com/google/common/base/Converter.java @@ -29,6 +29,7 @@ import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.checker.nullness.qual.PolyNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * A function from {@code A} to {@code B} with an associated reverse function from {@code B} @@ -369,7 +370,7 @@ public boolean equals(@CheckForNull Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ReverseConverter this) { return ~original.hashCode(); } @@ -446,7 +447,7 @@ public boolean equals(@CheckForNull Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ConverterComposition this) { return 31 * first.hashCode() + second.hashCode(); } @@ -572,7 +573,7 @@ public boolean equals(@CheckForNull Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness FunctionBasedConverter this) { return forwardFunction.hashCode() * 31 + backwardFunction.hashCode(); } diff --git a/guava/src/com/google/common/base/Enums.java b/guava/src/com/google/common/base/Enums.java index 16359ce5028d..319132a8bcaa 100644 --- a/guava/src/com/google/common/base/Enums.java +++ b/guava/src/com/google/common/base/Enums.java @@ -27,6 +27,7 @@ import java.util.WeakHashMap; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.framework.qual.AnnotatedFor; /** @@ -141,7 +142,7 @@ public boolean equals(@CheckForNull Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness StringConverter this) { return enumClass.hashCode(); } diff --git a/guava/src/com/google/common/base/Equivalence.java b/guava/src/com/google/common/base/Equivalence.java index 4e2e89886a2a..12228dfb2527 100644 --- a/guava/src/com/google/common/base/Equivalence.java +++ b/guava/src/com/google/common/base/Equivalence.java @@ -22,6 +22,7 @@ import java.util.function.BiPredicate; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * A strategy for determining whether two instances are considered equivalent, and for computing @@ -267,7 +268,7 @@ public boolean equals(@CheckForNull Object obj) { /** Returns the result of {@link Equivalence#hash(Object)} applied to the wrapped reference. */ @Override - public int hashCode() { + public int hashCode(@UnknownSignedness Wrapper this) { return equivalence.hash(reference); } @@ -340,7 +341,7 @@ public boolean equals(@CheckForNull Object obj) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness EquivalentToPredicate this) { return Objects.hashCode(equivalence, target); } diff --git a/guava/src/com/google/common/base/FunctionalEquivalence.java b/guava/src/com/google/common/base/FunctionalEquivalence.java index 4383f4f36c1a..aabaddbb9ed0 100644 --- a/guava/src/com/google/common/base/FunctionalEquivalence.java +++ b/guava/src/com/google/common/base/FunctionalEquivalence.java @@ -21,6 +21,7 @@ import java.io.Serializable; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * Equivalence applied on functional result. @@ -67,7 +68,7 @@ public boolean equals(@CheckForNull Object obj) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness FunctionalEquivalence this) { return Objects.hashCode(function, resultEquivalence); } diff --git a/guava/src/com/google/common/base/Functions.java b/guava/src/com/google/common/base/Functions.java index 6797932b150a..9916c7ec11b5 100644 --- a/guava/src/com/google/common/base/Functions.java +++ b/guava/src/com/google/common/base/Functions.java @@ -23,6 +23,7 @@ import java.util.Map; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.framework.qual.AnnotatedFor; @@ -173,7 +174,7 @@ public boolean equals(@CheckForNull Object o) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness FunctionForMapNoDefault this) { return map.hashCode(); } @@ -218,7 +219,7 @@ public boolean equals(@CheckForNull Object o) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ForMapWithDefault this) { return Objects.hashCode(map, defaultValue); } @@ -278,7 +279,7 @@ public boolean equals(@CheckForNull Object obj) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness FunctionComposition this) { return f.hashCode() ^ g.hashCode(); } @@ -331,7 +332,7 @@ public boolean equals(@CheckForNull Object obj) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness PredicateFunction this) { return predicate.hashCode(); } @@ -383,7 +384,7 @@ public boolean equals(@CheckForNull Object obj) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ConstantFunction this) { return (value == null) ? 0 : value.hashCode(); } @@ -434,7 +435,7 @@ public boolean equals(@CheckForNull Object obj) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness SupplierFunction this) { return supplier.hashCode(); } diff --git a/guava/src/com/google/common/base/Optional.java b/guava/src/com/google/common/base/Optional.java index 0b9a5cf993c4..8700b4977b55 100644 --- a/guava/src/com/google/common/base/Optional.java +++ b/guava/src/com/google/common/base/Optional.java @@ -26,6 +26,7 @@ import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.checker.nullness.qual.PolyNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.framework.qual.AnnotatedFor; import org.checkerframework.framework.qual.Covariant; @@ -314,7 +315,7 @@ public java.util.Optional toJavaUtil() { * hash code unspecified, unlike the Java 8 equivalent. */ @Override - public abstract int hashCode(); + public abstract int hashCode(@UnknownSignedness Optional this); /** * Returns a string representation for this instance. diff --git a/guava/src/com/google/common/base/PairwiseEquivalence.java b/guava/src/com/google/common/base/PairwiseEquivalence.java index 64b438bb9f1a..ac24f82aa6fd 100644 --- a/guava/src/com/google/common/base/PairwiseEquivalence.java +++ b/guava/src/com/google/common/base/PairwiseEquivalence.java @@ -19,6 +19,7 @@ import java.util.Iterator; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; @GwtCompatible(serializable = true) @ElementTypesAreNonnullByDefault @@ -64,7 +65,7 @@ public boolean equals(@CheckForNull Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness PairwiseEquivalence this) { return elementEquivalence.hashCode() ^ 0x46a3eb07; } diff --git a/guava/src/com/google/common/base/Predicates.java b/guava/src/com/google/common/base/Predicates.java index dc2548ad6192..c6f219597f80 100644 --- a/guava/src/com/google/common/base/Predicates.java +++ b/guava/src/com/google/common/base/Predicates.java @@ -27,6 +27,7 @@ import java.util.regex.Pattern; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.framework.qual.AnnotatedFor; @@ -330,7 +331,7 @@ public boolean apply(@ParametricNullness T t) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness NotPredicate this) { return ~predicate.hashCode(); } @@ -375,7 +376,7 @@ public boolean apply(@ParametricNullness T t) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness AndPredicate this) { // add a random number to avoid collisions with OrPredicate return components.hashCode() + 0x12472c2c; } @@ -421,7 +422,7 @@ public boolean apply(@ParametricNullness T t) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness OrPredicate this) { // add a random number to avoid collisions with AndPredicate return components.hashCode() + 0x053c91cf; } @@ -473,7 +474,7 @@ public boolean apply(@CheckForNull Object o) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness IsEqualToPredicate this) { return target.hashCode(); } @@ -518,7 +519,7 @@ public boolean apply(@ParametricNullness T o) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness InstanceOfPredicate this) { return clazz.hashCode(); } @@ -556,7 +557,7 @@ public boolean apply(Class input) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness SubtypeOfPredicate this) { return clazz.hashCode(); } @@ -607,7 +608,7 @@ public boolean equals(@CheckForNull Object obj) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness InPredicate this) { return target.hashCode(); } @@ -648,7 +649,7 @@ public boolean equals(@CheckForNull Object obj) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness CompositionPredicate this) { return f.hashCode() ^ p.hashCode(); } @@ -677,7 +678,7 @@ public boolean apply(CharSequence t) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ContainsPatternPredicate this) { // Pattern uses Object.hashCode, so we have to reach // inside to build a hashCode consistent with equals. diff --git a/guava/src/com/google/common/base/Present.java b/guava/src/com/google/common/base/Present.java index 20ab94a2c2ec..60eef32d8398 100644 --- a/guava/src/com/google/common/base/Present.java +++ b/guava/src/com/google/common/base/Present.java @@ -22,6 +22,7 @@ import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** Implementation of an {@link Optional} containing a reference. */ @GwtCompatible @@ -89,7 +90,7 @@ public boolean equals(@CheckForNull Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness Present this) { return 0x598df91c + reference.hashCode(); } diff --git a/guava/src/com/google/common/base/Suppliers.java b/guava/src/com/google/common/base/Suppliers.java index 4056f260f5f3..4b12eae90f45 100644 --- a/guava/src/com/google/common/base/Suppliers.java +++ b/guava/src/com/google/common/base/Suppliers.java @@ -25,6 +25,7 @@ import java.util.concurrent.TimeUnit; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.framework.qual.AnnotatedFor; /** @@ -79,7 +80,7 @@ public boolean equals(@CheckForNull Object obj) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness SupplierComposition this) { return Objects.hashCode(function, supplier); } @@ -315,7 +316,7 @@ public boolean equals(@CheckForNull Object obj) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness SupplierOfInstance this) { return Objects.hashCode(instance); } diff --git a/guava/src/com/google/common/cache/CacheBuilderSpec.java b/guava/src/com/google/common/cache/CacheBuilderSpec.java index 3e5c1786c1c0..b8447a38a001 100644 --- a/guava/src/com/google/common/cache/CacheBuilderSpec.java +++ b/guava/src/com/google/common/cache/CacheBuilderSpec.java @@ -31,6 +31,7 @@ import javax.annotation.CheckForNull; import org.checkerframework.checker.formatter.qual.FormatMethod; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * A specification of a {@link CacheBuilder} configuration. @@ -237,7 +238,7 @@ public String toString() { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness CacheBuilderSpec this) { return Objects.hashCode( initialCapacity, maximumSize, diff --git a/guava/src/com/google/common/cache/CacheStats.java b/guava/src/com/google/common/cache/CacheStats.java index 8307e942a818..4ed0854314be 100644 --- a/guava/src/com/google/common/cache/CacheStats.java +++ b/guava/src/com/google/common/cache/CacheStats.java @@ -23,6 +23,7 @@ import com.google.common.base.Objects; import java.util.concurrent.Callable; import javax.annotation.CheckForNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * Statistics about the performance of a {@link Cache}. Instances of this class are immutable. @@ -271,7 +272,7 @@ public CacheStats plus(CacheStats other) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness CacheStats this) { return Objects.hashCode( hitCount, missCount, loadSuccessCount, loadExceptionCount, totalLoadTime, evictionCount); } diff --git a/guava/src/com/google/common/cache/LocalCache.java b/guava/src/com/google/common/cache/LocalCache.java index 3ab2652d63ec..c9462c62a5c6 100644 --- a/guava/src/com/google/common/cache/LocalCache.java +++ b/guava/src/com/google/common/cache/LocalCache.java @@ -4487,7 +4487,7 @@ public boolean equals(@Nullable Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness WriteThroughEntry this) { // Cannot use key and value equivalence return key.hashCode() ^ value.hashCode(); } diff --git a/guava/src/com/google/common/collect/AbstractMapBasedMultimap.java b/guava/src/com/google/common/collect/AbstractMapBasedMultimap.java index fca4a436dded..16f9cadc337e 100644 --- a/guava/src/com/google/common/collect/AbstractMapBasedMultimap.java +++ b/guava/src/com/google/common/collect/AbstractMapBasedMultimap.java @@ -413,7 +413,7 @@ public boolean equals(@CheckForNull @UnknownSignedness Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness WrappedCollection this) { refreshIfEmpty(); return delegate.hashCode(); } @@ -1015,7 +1015,7 @@ public boolean equals(@CheckForNull @UnknownSignedness Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness KeySet this) { return map().keySet().hashCode(); } } @@ -1407,7 +1407,7 @@ public boolean equals(@CheckForNull Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness AsMap this) { return submap.hashCode(); } diff --git a/guava/src/com/google/common/collect/AbstractMapEntry.java b/guava/src/com/google/common/collect/AbstractMapEntry.java index 1a370dc1a648..5819710f3c5a 100644 --- a/guava/src/com/google/common/collect/AbstractMapEntry.java +++ b/guava/src/com/google/common/collect/AbstractMapEntry.java @@ -21,6 +21,7 @@ import java.util.Map.Entry; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.framework.qual.AnnotatedFor; @@ -65,7 +66,7 @@ public boolean equals(@CheckForNull Object object) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness AbstractMapEntry this) { K k = getKey(); V v = getValue(); return ((k == null) ? 0 : k.hashCode()) ^ ((v == null) ? 0 : v.hashCode()); diff --git a/guava/src/com/google/common/collect/AbstractMultimap.java b/guava/src/com/google/common/collect/AbstractMultimap.java index 6b09265972eb..db5a67f88e80 100644 --- a/guava/src/com/google/common/collect/AbstractMultimap.java +++ b/guava/src/com/google/common/collect/AbstractMultimap.java @@ -153,7 +153,7 @@ public Spliterator> spliterator() { class EntrySet extends Entries implements Set> { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness EntrySet this) { return Sets.hashCodeImpl(this); } @@ -270,7 +270,7 @@ public boolean equals(@CheckForNull Object object) { */ @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness AbstractMultimap this) { return asMap().hashCode(); } diff --git a/guava/src/com/google/common/collect/AbstractMultiset.java b/guava/src/com/google/common/collect/AbstractMultiset.java index d7f0015136a9..4266d7a318b1 100644 --- a/guava/src/com/google/common/collect/AbstractMultiset.java +++ b/guava/src/com/google/common/collect/AbstractMultiset.java @@ -229,7 +229,7 @@ public final boolean equals(@CheckForNull @UnknownSignedness Object object) { */ @Pure @Override - public final int hashCode() { + public final int hashCode(@UnknownSignedness AbstractMultiset this) { return entrySet().hashCode(); } diff --git a/guava/src/com/google/common/collect/AbstractRangeSet.java b/guava/src/com/google/common/collect/AbstractRangeSet.java index d112a11f1814..69a93db47e11 100644 --- a/guava/src/com/google/common/collect/AbstractRangeSet.java +++ b/guava/src/com/google/common/collect/AbstractRangeSet.java @@ -16,6 +16,7 @@ import com.google.common.annotations.GwtIncompatible; import javax.annotation.CheckForNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * A skeletal implementation of {@code RangeSet}. @@ -91,7 +92,7 @@ public boolean equals(@CheckForNull Object obj) { } @Override - public final int hashCode() { + public final int hashCode(@UnknownSignedness AbstractRangeSet this) { return asRanges().hashCode(); } diff --git a/guava/src/com/google/common/collect/AbstractTable.java b/guava/src/com/google/common/collect/AbstractTable.java index 95cb55180f0c..97ce8fbeffcf 100644 --- a/guava/src/com/google/common/collect/AbstractTable.java +++ b/guava/src/com/google/common/collect/AbstractTable.java @@ -240,7 +240,7 @@ public boolean equals(@CheckForNull Object obj) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness AbstractTable this) { return cellSet().hashCode(); } diff --git a/guava/src/com/google/common/collect/ByFunctionOrdering.java b/guava/src/com/google/common/collect/ByFunctionOrdering.java index f72238380ed1..27f57d45cfc4 100644 --- a/guava/src/com/google/common/collect/ByFunctionOrdering.java +++ b/guava/src/com/google/common/collect/ByFunctionOrdering.java @@ -24,6 +24,7 @@ import java.io.Serializable; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.framework.qual.AnnotatedFor; @@ -65,7 +66,7 @@ public boolean equals(@CheckForNull Object object) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ByFunctionOrdering this) { return Objects.hashCode(function, ordering); } diff --git a/guava/src/com/google/common/collect/CartesianList.java b/guava/src/com/google/common/collect/CartesianList.java index beaa71675113..e14fb959fae2 100644 --- a/guava/src/com/google/common/collect/CartesianList.java +++ b/guava/src/com/google/common/collect/CartesianList.java @@ -24,6 +24,7 @@ import java.util.RandomAccess; import javax.annotation.CheckForNull; import org.checkerframework.checker.index.qual.NonNegative; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * Implementation of {@link Lists#cartesianProduct(List)}. @@ -69,7 +70,7 @@ private int getAxisIndexForProductIndex(int index, int axis) { } @Override - public int indexOf(@CheckForNull Object o) { + public int indexOf(@CheckForNull @UnknownSignedness Object o) { if (!(o instanceof List)) { return -1; } @@ -91,7 +92,7 @@ public int indexOf(@CheckForNull Object o) { } @Override - public int lastIndexOf(@CheckForNull Object o) { + public int lastIndexOf(@CheckForNull @UnknownSignedness Object o) { if (!(o instanceof List)) { return -1; } @@ -142,7 +143,7 @@ boolean isPartialView() { } @Override - public boolean contains(@CheckForNull Object object) { + public boolean contains(@CheckForNull @UnknownSignedness Object object) { if (!(object instanceof List)) { return false; } diff --git a/guava/src/com/google/common/collect/ComparatorOrdering.java b/guava/src/com/google/common/collect/ComparatorOrdering.java index e021ddb90fec..d0df4a70bca9 100644 --- a/guava/src/com/google/common/collect/ComparatorOrdering.java +++ b/guava/src/com/google/common/collect/ComparatorOrdering.java @@ -23,6 +23,7 @@ import java.util.Comparator; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.framework.qual.AnnotatedFor; @@ -59,7 +60,7 @@ public boolean equals(@CheckForNull Object object) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ComparatorOrdering this) { return comparator.hashCode(); } diff --git a/guava/src/com/google/common/collect/CompoundOrdering.java b/guava/src/com/google/common/collect/CompoundOrdering.java index e8732b015ee5..63690d37219c 100644 --- a/guava/src/com/google/common/collect/CompoundOrdering.java +++ b/guava/src/com/google/common/collect/CompoundOrdering.java @@ -22,6 +22,7 @@ import java.util.Comparator; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.framework.qual.AnnotatedFor; @@ -68,7 +69,7 @@ public boolean equals(@CheckForNull Object object) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness CompoundOrdering this) { return Arrays.hashCode(comparators); } diff --git a/guava/src/com/google/common/collect/ConcurrentHashMultiset.java b/guava/src/com/google/common/collect/ConcurrentHashMultiset.java index 665c4e115e74..2a9a016bdef2 100644 --- a/guava/src/com/google/common/collect/ConcurrentHashMultiset.java +++ b/guava/src/com/google/common/collect/ConcurrentHashMultiset.java @@ -466,7 +466,7 @@ protected Set delegate() { } @Override - public boolean contains(@CheckForNull Object object) { + public boolean contains(@CheckForNull @UnknownSignedness Object object) { return object != null && Collections2.safeContains(delegate, object); } @@ -610,7 +610,7 @@ private List> snapshot() { @Pure @Override - public boolean contains(@Nullable Object arg0) { return super.contains(arg0); } + public boolean contains(@Nullable @UnknownSignedness Object arg0) { return super.contains(arg0); } @Pure @Override @@ -634,7 +634,7 @@ private void readObject(ObjectInputStream stream) throws IOException, ClassNotFo private static final long serialVersionUID = 1; @Override -public boolean contains(@Nullable Object arg0) { return super.contains(arg0); } +public boolean contains(@Nullable @UnknownSignedness Object arg0) { return super.contains(arg0); } @Pure @Override diff --git a/guava/src/com/google/common/collect/Count.java b/guava/src/com/google/common/collect/Count.java index 7aa555080135..0b819a3b5272 100644 --- a/guava/src/com/google/common/collect/Count.java +++ b/guava/src/com/google/common/collect/Count.java @@ -17,6 +17,7 @@ import com.google.common.annotations.GwtCompatible; import java.io.Serializable; import javax.annotation.CheckForNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * A mutable value of type {@code int}, for multisets to use in tracking counts of values. @@ -55,7 +56,7 @@ public int getAndSet(int newValue) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness Count this) { return value; } diff --git a/guava/src/com/google/common/collect/Cut.java b/guava/src/com/google/common/collect/Cut.java index 21fe5ff2dd9f..88fbbc8797c2 100644 --- a/guava/src/com/google/common/collect/Cut.java +++ b/guava/src/com/google/common/collect/Cut.java @@ -21,6 +21,7 @@ import java.io.Serializable; import java.util.NoSuchElementException; import javax.annotation.CheckForNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * Implementation detail for the internal structure of {@link Range} instances. Represents a unique @@ -107,7 +108,7 @@ public boolean equals(@CheckForNull Object obj) { // Prevent "missing hashCode" warning by explicitly forcing subclasses implement it @Override - public abstract int hashCode(); + public abstract int hashCode(@UnknownSignedness Cut this); /* * The implementation neither produces nor consumes any non-null instance of type C, so @@ -200,7 +201,7 @@ public int compareTo(Cut> o) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness BelowAll this) { return System.identityHashCode(this); } @@ -291,7 +292,7 @@ public int compareTo(Cut> o) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness AboveAll this) { return System.identityHashCode(this); } @@ -379,7 +380,7 @@ C greatestValueBelow(DiscreteDomain domain) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness BelowValue this) { return endpoint.hashCode(); } @@ -469,7 +470,7 @@ Cut canonical(DiscreteDomain domain) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness AboveValue this) { return ~endpoint.hashCode(); } diff --git a/guava/src/com/google/common/collect/DenseImmutableTable.java b/guava/src/com/google/common/collect/DenseImmutableTable.java index 9c20b45089a2..4abf1eb81c76 100644 --- a/guava/src/com/google/common/collect/DenseImmutableTable.java +++ b/guava/src/com/google/common/collect/DenseImmutableTable.java @@ -24,6 +24,7 @@ import javax.annotation.CheckForNull; import org.checkerframework.checker.index.qual.NonNegative; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** A {@code RegularImmutableTable} optimized for dense data. */ @GwtCompatible @@ -121,7 +122,7 @@ ImmutableSet createKeySet() { @Override @CheckForNull - public V get(@CheckForNull Object key) { + public V get(@CheckForNull @UnknownSignedness Object key) { Integer keyIndex = keyToIndex().get(key); return (keyIndex == null) ? null : getValue(keyIndex); } diff --git a/guava/src/com/google/common/collect/DescendingImmutableSortedSet.java b/guava/src/com/google/common/collect/DescendingImmutableSortedSet.java index be03268fa17e..235812e9d6c6 100644 --- a/guava/src/com/google/common/collect/DescendingImmutableSortedSet.java +++ b/guava/src/com/google/common/collect/DescendingImmutableSortedSet.java @@ -19,6 +19,7 @@ import com.google.common.annotations.GwtIncompatible; import javax.annotation.CheckForNull; import org.checkerframework.checker.index.qual.NonNegative; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * Skeletal implementation of {@link ImmutableSortedSet#descendingSet()}. @@ -36,7 +37,7 @@ final class DescendingImmutableSortedSet extends ImmutableSortedSet { } @Override - public boolean contains(@CheckForNull Object object) { + public boolean contains(@CheckForNull @UnknownSignedness Object object) { return forward.contains(object); } diff --git a/guava/src/com/google/common/collect/DescendingMultiset.java b/guava/src/com/google/common/collect/DescendingMultiset.java index e57fa6c88c8a..cec800966835 100644 --- a/guava/src/com/google/common/collect/DescendingMultiset.java +++ b/guava/src/com/google/common/collect/DescendingMultiset.java @@ -27,6 +27,7 @@ import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.checker.nullness.qual.PolyNull; import org.checkerframework.checker.signedness.qual.PolySigned; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * A skeleton implementation of a descending multiset. Only needs {@code forwardMultiset()} and @@ -160,7 +161,7 @@ public Iterator iterator() { @Override @SuppressWarnings("nullness") // b/192354773 in our checker affects toArray declarations - public T[] toArray(T[] array) { + public T[] toArray(@PolyNull T[] array) { return standardToArray(array); } diff --git a/guava/src/com/google/common/collect/EmptyContiguousSet.java b/guava/src/com/google/common/collect/EmptyContiguousSet.java index 095d981de8a2..af2397fc0fa5 100644 --- a/guava/src/com/google/common/collect/EmptyContiguousSet.java +++ b/guava/src/com/google/common/collect/EmptyContiguousSet.java @@ -20,6 +20,7 @@ import java.util.Set; import javax.annotation.CheckForNull; import org.checkerframework.checker.index.qual.NonNegative; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * An empty contiguous set. @@ -81,7 +82,7 @@ ContiguousSet tailSetImpl(C fromElement, boolean fromInclusive) { } @Override - public boolean contains(@CheckForNull Object object) { + public boolean contains(@CheckForNull @UnknownSignedness Object object) { return false; } @@ -123,7 +124,7 @@ public String toString() { } @Override - public boolean equals(@CheckForNull Object object) { + public boolean equals(@CheckForNull @UnknownSignedness Object object) { if (object instanceof Set) { Set that = (Set) object; return that.isEmpty(); @@ -138,7 +139,7 @@ boolean isHashCodeFast() { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness EmptyContiguousSet this) { return 0; } diff --git a/guava/src/com/google/common/collect/EnumMultiset.java b/guava/src/com/google/common/collect/EnumMultiset.java index 2ca1e895ca1c..022ccde06600 100644 --- a/guava/src/com/google/common/collect/EnumMultiset.java +++ b/guava/src/com/google/common/collect/EnumMultiset.java @@ -326,7 +326,7 @@ private void readObject(ObjectInputStream stream) throws IOException, ClassNotFo @Pure @Override - public boolean contains(@Nullable Object arg0) { return super.contains(arg0); } + public boolean contains(@Nullable @UnknownSignedness Object arg0) { return super.contains(arg0); } @Pure @Override diff --git a/guava/src/com/google/common/collect/ExplicitOrdering.java b/guava/src/com/google/common/collect/ExplicitOrdering.java index 695903654481..8f6454b6c01d 100644 --- a/guava/src/com/google/common/collect/ExplicitOrdering.java +++ b/guava/src/com/google/common/collect/ExplicitOrdering.java @@ -21,6 +21,7 @@ import java.util.List; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.framework.qual.AnnotatedFor; @@ -65,7 +66,7 @@ public boolean equals(@CheckForNull Object object) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ExplicitOrdering this) { return rankMap.hashCode(); } diff --git a/guava/src/com/google/common/collect/FilteredEntryMultimap.java b/guava/src/com/google/common/collect/FilteredEntryMultimap.java index becc1ddaccf8..f76c2ab90f4d 100644 --- a/guava/src/com/google/common/collect/FilteredEntryMultimap.java +++ b/guava/src/com/google/common/collect/FilteredEntryMultimap.java @@ -182,7 +182,7 @@ public void clear() { @Override @CheckForNull - public Collection get(@CheckForNull Object key) { + public Collection get(@CheckForNull @UnknownSignedness Object key) { Collection result = unfiltered.asMap().get(key); if (result == null) { return null; @@ -195,7 +195,7 @@ public Collection get(@CheckForNull Object key) { @Override @CheckForNull - public Collection remove(@CheckForNull Object key) { + public Collection remove(@CheckForNull @UnknownSignedness Object key) { Collection collection = unfiltered.asMap().get(key); if (collection == null) { return null; diff --git a/guava/src/com/google/common/collect/FilteredKeySetMultimap.java b/guava/src/com/google/common/collect/FilteredKeySetMultimap.java index e492a5c1dea9..22b4028142f9 100644 --- a/guava/src/com/google/common/collect/FilteredKeySetMultimap.java +++ b/guava/src/com/google/common/collect/FilteredKeySetMultimap.java @@ -22,6 +22,7 @@ import java.util.Set; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * Implementation of {@link Multimaps#filterKeys(SetMultimap, Predicate)}. @@ -69,12 +70,12 @@ Set> createEntries() { class EntrySet extends Entries implements Set> { @Override - public int hashCode() { + public int hashCode(@UnknownSignedness EntrySet this) { return Sets.hashCodeImpl(this); } @Override - public boolean equals(@CheckForNull Object o) { + public boolean equals(@CheckForNull @UnknownSignedness Object o) { return Sets.equalsImpl(this, o); } } diff --git a/guava/src/com/google/common/collect/FilteredMultimapValues.java b/guava/src/com/google/common/collect/FilteredMultimapValues.java index de500e326bff..5954d651e677 100644 --- a/guava/src/com/google/common/collect/FilteredMultimapValues.java +++ b/guava/src/com/google/common/collect/FilteredMultimapValues.java @@ -51,7 +51,7 @@ public Iterator iterator() { } @Override - public boolean contains(@CheckForNull Object o) { + public boolean contains(@CheckForNull @UnknownSignedness Object o) { return multimap.containsValue(o); } diff --git a/guava/src/com/google/common/collect/ForwardingConcurrentMap.java b/guava/src/com/google/common/collect/ForwardingConcurrentMap.java index 2d8445e04ef9..e3dc0ee2e259 100644 --- a/guava/src/com/google/common/collect/ForwardingConcurrentMap.java +++ b/guava/src/com/google/common/collect/ForwardingConcurrentMap.java @@ -21,6 +21,7 @@ import java.util.concurrent.ConcurrentMap; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.framework.qual.AnnotatedFor; /** @@ -61,7 +62,7 @@ public V putIfAbsent(K key, V value) { @CanIgnoreReturnValue @Override @SuppressWarnings("nullness:argument") - public boolean remove(@CheckForNull Object key, @CheckForNull Object value) { + public boolean remove(@CheckForNull @UnknownSignedness Object key, @CheckForNull @UnknownSignedness Object value) { return delegate().remove(key, value); } diff --git a/guava/src/com/google/common/collect/ForwardingList.java b/guava/src/com/google/common/collect/ForwardingList.java index 13865bf50926..d20eb3624c2e 100644 --- a/guava/src/com/google/common/collect/ForwardingList.java +++ b/guava/src/com/google/common/collect/ForwardingList.java @@ -25,6 +25,7 @@ import java.util.ListIterator; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.dataflow.qual.SideEffectFree; import org.checkerframework.framework.qual.AnnotatedFor; @@ -87,14 +88,14 @@ public E get(int index) { @Pure @Override @SuppressWarnings("nullness:argument") - public int indexOf(@CheckForNull Object element) { + public int indexOf(@CheckForNull @UnknownSignedness Object element) { return delegate().indexOf(element); } @Pure @Override @SuppressWarnings("nullness:argument") - public int lastIndexOf(@CheckForNull Object element) { + public int lastIndexOf(@CheckForNull @UnknownSignedness Object element) { return delegate().lastIndexOf(element); } @@ -130,13 +131,13 @@ public List subList(int fromIndex, int toIndex) { @Pure @Override - public boolean equals(@CheckForNull Object object) { + public boolean equals(@CheckForNull @UnknownSignedness Object object) { return object == this || delegate().equals(object); } @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ForwardingList this) { return delegate().hashCode(); } diff --git a/guava/src/com/google/common/collect/ForwardingMap.java b/guava/src/com/google/common/collect/ForwardingMap.java index 149b205a4c3c..295f31dfd02d 100644 --- a/guava/src/com/google/common/collect/ForwardingMap.java +++ b/guava/src/com/google/common/collect/ForwardingMap.java @@ -159,7 +159,7 @@ public boolean equals(@CheckForNull Object object) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ForwardingMap this) { return delegate().hashCode(); } diff --git a/guava/src/com/google/common/collect/ForwardingMapEntry.java b/guava/src/com/google/common/collect/ForwardingMapEntry.java index c1f6cf19ef84..a8fec1c83229 100644 --- a/guava/src/com/google/common/collect/ForwardingMapEntry.java +++ b/guava/src/com/google/common/collect/ForwardingMapEntry.java @@ -23,6 +23,7 @@ import java.util.Map.Entry; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.framework.qual.AnnotatedFor; @@ -90,7 +91,7 @@ public boolean equals(@CheckForNull Object object) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ForwardingMapEntry this) { return delegate().hashCode(); } diff --git a/guava/src/com/google/common/collect/ForwardingMultimap.java b/guava/src/com/google/common/collect/ForwardingMultimap.java index a72f94b74f44..735ff22e4131 100644 --- a/guava/src/com/google/common/collect/ForwardingMultimap.java +++ b/guava/src/com/google/common/collect/ForwardingMultimap.java @@ -165,7 +165,7 @@ public boolean equals(@CheckForNull Object object) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ForwardingMultimap this) { return delegate().hashCode(); } } diff --git a/guava/src/com/google/common/collect/ForwardingMultiset.java b/guava/src/com/google/common/collect/ForwardingMultiset.java index 85680eeb50ae..2a3191724ca3 100644 --- a/guava/src/com/google/common/collect/ForwardingMultiset.java +++ b/guava/src/com/google/common/collect/ForwardingMultiset.java @@ -102,7 +102,7 @@ public boolean equals(@CheckForNull @UnknownSignedness Object object) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ForwardingMultiset this) { return delegate().hashCode(); } diff --git a/guava/src/com/google/common/collect/ForwardingSet.java b/guava/src/com/google/common/collect/ForwardingSet.java index 857e7fb98b91..16d0e135ff86 100644 --- a/guava/src/com/google/common/collect/ForwardingSet.java +++ b/guava/src/com/google/common/collect/ForwardingSet.java @@ -70,7 +70,7 @@ public boolean equals(@CheckForNull @UnknownSignedness Object object) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ForwardingSet this) { return delegate().hashCode(); } diff --git a/guava/src/com/google/common/collect/ForwardingTable.java b/guava/src/com/google/common/collect/ForwardingTable.java index ef9897cd3744..969118d81f2c 100644 --- a/guava/src/com/google/common/collect/ForwardingTable.java +++ b/guava/src/com/google/common/collect/ForwardingTable.java @@ -151,7 +151,7 @@ public boolean equals(@CheckForNull Object obj) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ForwardingTable this) { return delegate().hashCode(); } } diff --git a/guava/src/com/google/common/collect/GeneralRange.java b/guava/src/com/google/common/collect/GeneralRange.java index 3d7256ff811f..f99fafa0ae15 100644 --- a/guava/src/com/google/common/collect/GeneralRange.java +++ b/guava/src/com/google/common/collect/GeneralRange.java @@ -26,6 +26,7 @@ import java.util.Comparator; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * A generalized interval on any ordering, for internal use. Supports {@code null}. Unlike {@link @@ -252,7 +253,7 @@ && getUpperBoundType().equals(r.getUpperBoundType()) } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness GeneralRange this) { return Objects.hashCode( comparator, getLowerEndpoint(), diff --git a/guava/src/com/google/common/collect/HashBiMap.java b/guava/src/com/google/common/collect/HashBiMap.java index 6e2ecd5fffa1..fe19cdb936f5 100644 --- a/guava/src/com/google/common/collect/HashBiMap.java +++ b/guava/src/com/google/common/collect/HashBiMap.java @@ -287,7 +287,7 @@ public boolean containsValue(@CheckForNull @UnknownSignedness Object value) { @Override @CheckForNull - public V get(@CheckForNull Object key) { + public V get(@CheckForNull @UnknownSignedness Object key) { return Maps.valueOrNull(seekByKey(key, smearedHash(key))); } @@ -626,7 +626,7 @@ public boolean containsKey(@CheckForNull @UnknownSignedness Object value) { @Override @CheckForNull - public K get(@CheckForNull Object value) { + public K get(@CheckForNull @UnknownSignedness Object value) { return Maps.keyOrNull(seekByValue(value, smearedHash(value))); } diff --git a/guava/src/com/google/common/collect/HashMultiset.java b/guava/src/com/google/common/collect/HashMultiset.java index 7250d0da5559..20edf8de93eb 100644 --- a/guava/src/com/google/common/collect/HashMultiset.java +++ b/guava/src/com/google/common/collect/HashMultiset.java @@ -99,7 +99,7 @@ private void readObject(ObjectInputStream stream) throws IOException, ClassNotFo private static final long serialVersionUID = 0; @Override -public boolean contains(@Nullable Object arg0) { return super.contains(arg0); } +public boolean contains(@Nullable @UnknownSignedness Object arg0) { return super.contains(arg0); } @Override public @NonNegative int count(@Nullable @UnknownSignedness Object arg0) { return super.count(arg0); } diff --git a/guava/src/com/google/common/collect/ImmutableEnumMap.java b/guava/src/com/google/common/collect/ImmutableEnumMap.java index 163a9c723422..e7ad26df0ede 100644 --- a/guava/src/com/google/common/collect/ImmutableEnumMap.java +++ b/guava/src/com/google/common/collect/ImmutableEnumMap.java @@ -78,7 +78,7 @@ public boolean containsKey(@CheckForNull @UnknownSignedness Object key) { @Override @CheckForNull - public V get(@CheckForNull Object key) { + public V get(@CheckForNull @UnknownSignedness Object key) { return delegate.get(key); } diff --git a/guava/src/com/google/common/collect/ImmutableEnumSet.java b/guava/src/com/google/common/collect/ImmutableEnumSet.java index 3468009804ad..eee1bf09a3dc 100644 --- a/guava/src/com/google/common/collect/ImmutableEnumSet.java +++ b/guava/src/com/google/common/collect/ImmutableEnumSet.java @@ -26,6 +26,7 @@ import javax.annotation.CheckForNull; import org.checkerframework.checker.index.qual.NonNegative; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.framework.qual.AnnotatedFor; @@ -93,7 +94,7 @@ public void forEach(Consumer action) { @Pure @Override - public boolean contains(@CheckForNull Object object) { + public boolean contains(@CheckForNull @UnknownSignedness Object object) { return delegate.contains(object); } @@ -114,7 +115,7 @@ public boolean isEmpty() { @Pure @Override - public boolean equals(@CheckForNull Object object) { + public boolean equals(@CheckForNull @UnknownSignedness Object object) { if (object == this) { return true; } @@ -133,7 +134,7 @@ boolean isHashCodeFast() { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ImmutableEnumSet this) { int result = hashCode; return (result == 0) ? hashCode = delegate.hashCode() : result; } diff --git a/guava/src/com/google/common/collect/ImmutableList.java b/guava/src/com/google/common/collect/ImmutableList.java index b83219680929..1da52b5225cd 100644 --- a/guava/src/com/google/common/collect/ImmutableList.java +++ b/guava/src/com/google/common/collect/ImmutableList.java @@ -702,7 +702,7 @@ public boolean equals(@CheckForNull @UnknownSignedness Object obj) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ImmutableList this) { int hashCode = 1; int n = size(); for (int i = 0; i < n; i++) { diff --git a/guava/src/com/google/common/collect/ImmutableMap.java b/guava/src/com/google/common/collect/ImmutableMap.java index 36cc47e8e3fe..f827546e1a1c 100644 --- a/guava/src/com/google/common/collect/ImmutableMap.java +++ b/guava/src/com/google/common/collect/ImmutableMap.java @@ -1143,7 +1143,7 @@ boolean isPartialView() { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ImmutableMap.MapViewOfValuesAsSingletonSets this) { // ImmutableSet.of(value).hashCode() == value.hashCode(), so the hashes are the same return ImmutableMap.this.hashCode(); } @@ -1191,7 +1191,7 @@ public boolean equals(@CheckForNull Object object) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ImmutableMap this) { return Sets.hashCodeImpl(entrySet()); } diff --git a/guava/src/com/google/common/collect/ImmutableMapEntrySet.java b/guava/src/com/google/common/collect/ImmutableMapEntrySet.java index 2329d2eb52d0..fec6d1525a6d 100644 --- a/guava/src/com/google/common/collect/ImmutableMapEntrySet.java +++ b/guava/src/com/google/common/collect/ImmutableMapEntrySet.java @@ -112,7 +112,7 @@ boolean isHashCodeFast() { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ImmutableMapEntrySet this) { return map().hashCode(); } diff --git a/guava/src/com/google/common/collect/ImmutableMapKeySet.java b/guava/src/com/google/common/collect/ImmutableMapKeySet.java index e41a1942d158..ef845fdf3529 100644 --- a/guava/src/com/google/common/collect/ImmutableMapKeySet.java +++ b/guava/src/com/google/common/collect/ImmutableMapKeySet.java @@ -25,6 +25,7 @@ import java.util.function.Consumer; import javax.annotation.CheckForNull; import org.checkerframework.checker.index.qual.NonNegative; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * {@code keySet()} implementation for {@link ImmutableMap}. @@ -57,7 +58,7 @@ public Spliterator spliterator() { } @Override - public boolean contains(@CheckForNull Object object) { + public boolean contains(@CheckForNull @UnknownSignedness Object object) { return map.containsKey(object); } diff --git a/guava/src/com/google/common/collect/ImmutableMapValues.java b/guava/src/com/google/common/collect/ImmutableMapValues.java index f23f510212cc..cfa905e7d2ea 100644 --- a/guava/src/com/google/common/collect/ImmutableMapValues.java +++ b/guava/src/com/google/common/collect/ImmutableMapValues.java @@ -26,6 +26,7 @@ import java.util.function.Consumer; import javax.annotation.CheckForNull; import org.checkerframework.checker.index.qual.NonNegative; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * {@code values()} implementation for {@link ImmutableMap}. @@ -70,7 +71,7 @@ public Spliterator spliterator() { } @Override - public boolean contains(@CheckForNull Object object) { + public boolean contains(@CheckForNull @UnknownSignedness Object object) { return object != null && Iterators.contains(iterator(), object); } diff --git a/guava/src/com/google/common/collect/ImmutableMultiset.java b/guava/src/com/google/common/collect/ImmutableMultiset.java index 041184afbb84..001c0e72764d 100644 --- a/guava/src/com/google/common/collect/ImmutableMultiset.java +++ b/guava/src/com/google/common/collect/ImmutableMultiset.java @@ -348,7 +348,7 @@ public boolean equals(@CheckForNull @UnknownSignedness Object object) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ImmutableMultiset this) { return Sets.hashCodeImpl(entrySet()); } @@ -411,7 +411,7 @@ public boolean contains(@CheckForNull @UnknownSignedness Object o) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness EntrySet this) { return ImmutableMultiset.this.hashCode(); } diff --git a/guava/src/com/google/common/collect/ImmutableRangeMap.java b/guava/src/com/google/common/collect/ImmutableRangeMap.java index f2d69a2932ad..b6cc0fa8e638 100644 --- a/guava/src/com/google/common/collect/ImmutableRangeMap.java +++ b/guava/src/com/google/common/collect/ImmutableRangeMap.java @@ -37,6 +37,7 @@ import javax.annotation.CheckForNull; import org.checkerframework.checker.index.qual.NonNegative; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * A {@link RangeMap} whose contents will never change, with many other important properties @@ -387,7 +388,7 @@ public ImmutableRangeMap subRangeMap(Range subRange) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ImmutableRangeMap this) { return asMapOfRanges().hashCode(); } diff --git a/guava/src/com/google/common/collect/ImmutableRangeSet.java b/guava/src/com/google/common/collect/ImmutableRangeSet.java index 073707a48573..5e87614609ba 100644 --- a/guava/src/com/google/common/collect/ImmutableRangeSet.java +++ b/guava/src/com/google/common/collect/ImmutableRangeSet.java @@ -39,6 +39,7 @@ import java.util.stream.Collector; import javax.annotation.CheckForNull; import org.checkerframework.checker.index.qual.NonNegative; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * A {@link RangeSet} whose contents will never change, with many other important properties @@ -644,7 +645,7 @@ ImmutableSortedSet tailSetImpl(C fromElement, boolean inclusive) { } @Override - public boolean contains(@CheckForNull Object o) { + public boolean contains(@CheckForNull @UnknownSignedness Object o) { if (o == null) { return false; } diff --git a/guava/src/com/google/common/collect/ImmutableSet.java b/guava/src/com/google/common/collect/ImmutableSet.java index 359c92a34acb..ad804eea3b61 100644 --- a/guava/src/com/google/common/collect/ImmutableSet.java +++ b/guava/src/com/google/common/collect/ImmutableSet.java @@ -334,7 +334,7 @@ && hashCode() != object.hashCode()) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ImmutableSet this) { return Sets.hashCodeImpl(this); } diff --git a/guava/src/com/google/common/collect/ImmutableSortedAsList.java b/guava/src/com/google/common/collect/ImmutableSortedAsList.java index ba11b193932f..19d6908c5dfb 100644 --- a/guava/src/com/google/common/collect/ImmutableSortedAsList.java +++ b/guava/src/com/google/common/collect/ImmutableSortedAsList.java @@ -19,6 +19,7 @@ import java.util.Comparator; import java.util.Spliterator; import javax.annotation.CheckForNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * List returned by {@code ImmutableSortedSet.asList()} when the set isn't empty. @@ -50,7 +51,7 @@ public Comparator comparator() { @GwtIncompatible // ImmutableSortedSet.indexOf // TODO(cpovirk): consider manual binary search under GWT to preserve O(log N) lookup @Override - public int indexOf(@CheckForNull Object target) { + public int indexOf(@CheckForNull @UnknownSignedness Object target) { int index = delegateCollection().indexOf(target); // TODO(kevinb): reconsider if it's really worth making feeble attempts at @@ -63,12 +64,12 @@ public int indexOf(@CheckForNull Object target) { @GwtIncompatible // ImmutableSortedSet.indexOf @Override - public int lastIndexOf(@CheckForNull Object target) { + public int lastIndexOf(@CheckForNull @UnknownSignedness Object target) { return indexOf(target); } @Override - public boolean contains(@CheckForNull Object target) { + public boolean contains(@CheckForNull @UnknownSignedness Object target) { // Necessary for ISS's with comparators inconsistent with equals. return indexOf(target) >= 0; } diff --git a/guava/src/com/google/common/collect/ImmutableSortedMap.java b/guava/src/com/google/common/collect/ImmutableSortedMap.java index d008faa8ebb6..adc7e11deedd 100644 --- a/guava/src/com/google/common/collect/ImmutableSortedMap.java +++ b/guava/src/com/google/common/collect/ImmutableSortedMap.java @@ -804,7 +804,7 @@ public void forEach(BiConsumer action) { @Override @CheckForNull - public V get(@CheckForNull Object key) { + public V get(@CheckForNull @UnknownSignedness Object key) { int index = keySet.indexOf(key); return (index == -1) ? null : valueList.get(index); } @@ -868,7 +868,7 @@ ImmutableMap map() { @Pure @Override - public boolean contains(@Nullable Object arg0) { return super.contains(arg0); } + public boolean contains(@Nullable @UnknownSignedness Object arg0) { return super.contains(arg0); } } return isEmpty() ? ImmutableSet.>of() : new EntrySet(); } diff --git a/guava/src/com/google/common/collect/Interners.java b/guava/src/com/google/common/collect/Interners.java index 10ae2746332b..cb44bc1990a5 100644 --- a/guava/src/com/google/common/collect/Interners.java +++ b/guava/src/com/google/common/collect/Interners.java @@ -23,6 +23,7 @@ import com.google.common.collect.MapMaker.Dummy; import com.google.common.collect.MapMakerInternalMap.InternalEntry; import javax.annotation.CheckForNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * Contains static methods pertaining to instances of {@link Interner}. @@ -175,7 +176,7 @@ public E apply(E input) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness InternerFunction this) { return interner.hashCode(); } diff --git a/guava/src/com/google/common/collect/JdkBackedImmutableBiMap.java b/guava/src/com/google/common/collect/JdkBackedImmutableBiMap.java index 5a8b1d3c3b78..e2c2720910f6 100644 --- a/guava/src/com/google/common/collect/JdkBackedImmutableBiMap.java +++ b/guava/src/com/google/common/collect/JdkBackedImmutableBiMap.java @@ -26,6 +26,7 @@ import javax.annotation.CheckForNull; import org.checkerframework.checker.index.qual.NonNegative; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * Implementation of ImmutableBiMap backed by a pair of JDK HashMaps, which have smartness @@ -107,7 +108,7 @@ boolean isPartialView() { @Override @CheckForNull - public V get(@CheckForNull Object key) { + public V get(@CheckForNull @UnknownSignedness Object key) { return forwardDelegate.get(key); } diff --git a/guava/src/com/google/common/collect/JdkBackedImmutableMap.java b/guava/src/com/google/common/collect/JdkBackedImmutableMap.java index 8f1d78819e92..ac8cd7d64c6b 100644 --- a/guava/src/com/google/common/collect/JdkBackedImmutableMap.java +++ b/guava/src/com/google/common/collect/JdkBackedImmutableMap.java @@ -27,6 +27,7 @@ import javax.annotation.CheckForNull; import org.checkerframework.checker.index.qual.NonNegative; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * Implementation of ImmutableMap backed by a JDK HashMap, which has smartness protecting against @@ -102,7 +103,7 @@ static ImmutableMap create( @Override @CheckForNull - public V get(@CheckForNull Object key) { + public V get(@CheckForNull @UnknownSignedness Object key) { return delegateMap.get(key); } diff --git a/guava/src/com/google/common/collect/JdkBackedImmutableSet.java b/guava/src/com/google/common/collect/JdkBackedImmutableSet.java index 6423792fab69..80a99ed7cc29 100644 --- a/guava/src/com/google/common/collect/JdkBackedImmutableSet.java +++ b/guava/src/com/google/common/collect/JdkBackedImmutableSet.java @@ -18,6 +18,7 @@ import java.util.Set; import javax.annotation.CheckForNull; import org.checkerframework.checker.index.qual.NonNegative; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * ImmutableSet implementation backed by a JDK HashSet, used to defend against apparent hash @@ -43,7 +44,7 @@ E get(int index) { } @Override - public boolean contains(@CheckForNull Object object) { + public boolean contains(@CheckForNull @UnknownSignedness Object object) { return delegate.contains(object); } diff --git a/guava/src/com/google/common/collect/LexicographicalOrdering.java b/guava/src/com/google/common/collect/LexicographicalOrdering.java index 91fc7bf7241c..f0c78d7e272f 100644 --- a/guava/src/com/google/common/collect/LexicographicalOrdering.java +++ b/guava/src/com/google/common/collect/LexicographicalOrdering.java @@ -22,6 +22,7 @@ import java.util.Iterator; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** An ordering which sorts iterables by comparing corresponding elements pairwise. */ @GwtCompatible(serializable = true) @@ -66,7 +67,7 @@ public boolean equals(@CheckForNull Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness LexicographicalOrdering this) { return elementOrder.hashCode() ^ 2075626741; // meaningless } diff --git a/guava/src/com/google/common/collect/LinkedHashMultimap.java b/guava/src/com/google/common/collect/LinkedHashMultimap.java index 61c029a88b61..66eafbeaea0a 100644 --- a/guava/src/com/google/common/collect/LinkedHashMultimap.java +++ b/guava/src/com/google/common/collect/LinkedHashMultimap.java @@ -474,7 +474,7 @@ public void forEach(Consumer action) { } @Override - public boolean contains(@CheckForNull Object o) { + public boolean contains(@CheckForNull @UnknownSignedness Object o) { int smearedHash = Hashing.smearedHash(o); for (ValueEntry entry = hashTable[smearedHash & mask()]; entry != null; diff --git a/guava/src/com/google/common/collect/LinkedListMultimap.java b/guava/src/com/google/common/collect/LinkedListMultimap.java index 7499a24ea2b8..680b9e61d08c 100644 --- a/guava/src/com/google/common/collect/LinkedListMultimap.java +++ b/guava/src/com/google/common/collect/LinkedListMultimap.java @@ -754,7 +754,7 @@ public Iterator iterator() { @Pure @Override - public boolean contains(@CheckForNull Object key) { // for performance + public boolean contains(@CheckForNull @UnknownSignedness Object key) { // for performance return containsKey(key); } diff --git a/guava/src/com/google/common/collect/MapDifference.java b/guava/src/com/google/common/collect/MapDifference.java index 4ff4e9cc6f91..d6f2f0b4947b 100644 --- a/guava/src/com/google/common/collect/MapDifference.java +++ b/guava/src/com/google/common/collect/MapDifference.java @@ -21,6 +21,7 @@ import java.util.Map; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.framework.qual.AnnotatedFor; @@ -85,7 +86,7 @@ public interface MapDifference this); /** * A difference between the mappings from two maps with the same key. The {@link #leftValue} and @@ -116,6 +117,6 @@ interface ValueDifference { */ @Pure @Override - int hashCode(); + int hashCode(@UnknownSignedness ValueDifference this); } } diff --git a/guava/src/com/google/common/collect/MapMakerInternalMap.java b/guava/src/com/google/common/collect/MapMakerInternalMap.java index 68a1ef15c1b7..b4b1c8bc7a61 100644 --- a/guava/src/com/google/common/collect/MapMakerInternalMap.java +++ b/guava/src/com/google/common/collect/MapMakerInternalMap.java @@ -2664,7 +2664,7 @@ public boolean equals(@Nullable Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness WriteThroughEntry this) { // Cannot use key and value equivalence return key.hashCode() ^ value.hashCode(); } diff --git a/guava/src/com/google/common/collect/Maps.java b/guava/src/com/google/common/collect/Maps.java index 93c138921ca7..84859e95644e 100644 --- a/guava/src/com/google/common/collect/Maps.java +++ b/guava/src/com/google/common/collect/Maps.java @@ -706,7 +706,7 @@ && entriesInCommon().equals(other.entriesInCommon()) @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness MapDifferenceImpl this) { return Objects.hashCode( entriesOnlyOnLeft(), entriesOnlyOnRight(), entriesInCommon(), entriesDiffering()); } @@ -772,7 +772,7 @@ public boolean equals(@CheckForNull Object object) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ValueDifferenceImpl this) { return Objects.hashCode(left, right); } @@ -1562,7 +1562,7 @@ public Iterator> iterator() { @CFComment({"signedness: is not applicable te `Entry` objects, which are the elements of the array", "nullness: the receiver is a collection of non-null `Entry` objects"}) @Override - public Object[] toArray() { + public @PolyNull @PolySigned Object[] toArray() { /* * standardToArray returns `@Nullable Object[]` rather than `Object[]` but only because it can * be used with collections that may contain null. This collection never contains nulls, so we @@ -1575,7 +1575,7 @@ public Object[] toArray() { @Override @SuppressWarnings("nullness") // b/192354773 in our checker affects toArray declarations - public T[] toArray(T[] array) { + public T[] toArray(@PolyNull T[] array) { return standardToArray(array); } @@ -1605,7 +1605,7 @@ public boolean equals(@CheckForNull @UnknownSignedness Object object) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness UnmodifiableEntrySet this) { return Sets.hashCodeImpl(this); } } @@ -1658,7 +1658,7 @@ public boolean equals(@CheckForNull Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness BiMapConverter this) { return bimap.hashCode(); } diff --git a/guava/src/com/google/common/collect/Multimap.java b/guava/src/com/google/common/collect/Multimap.java index ca898c64d70d..07d9364a1dc2 100644 --- a/guava/src/com/google/common/collect/Multimap.java +++ b/guava/src/com/google/common/collect/Multimap.java @@ -397,5 +397,5 @@ default void forEach(BiConsumer action) { */ @Pure @Override - int hashCode(); + int hashCode(@UnknownSignedness Multimap this); } diff --git a/guava/src/com/google/common/collect/Multimaps.java b/guava/src/com/google/common/collect/Multimaps.java index 6bb6bdb7e357..9a7fec20152f 100644 --- a/guava/src/com/google/common/collect/Multimaps.java +++ b/guava/src/com/google/common/collect/Multimaps.java @@ -1282,7 +1282,7 @@ Map> createAsMap() { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness MapMultimap this) { return map.hashCode(); } diff --git a/guava/src/com/google/common/collect/Multiset.java b/guava/src/com/google/common/collect/Multiset.java index 5739414ff974..cfa3adf164a4 100644 --- a/guava/src/com/google/common/collect/Multiset.java +++ b/guava/src/com/google/common/collect/Multiset.java @@ -327,7 +327,7 @@ interface Entry { */ @Pure @Override - int hashCode(); + int hashCode(@UnknownSignedness Entry this); /** * Returns the canonical string representation of this entry, defined as follows. If the count @@ -378,7 +378,7 @@ default void forEachEntry(ObjIntConsumer action) { */ @Pure @Override - int hashCode(); + int hashCode(@UnknownSignedness Multiset this); /** * {@inheritDoc} diff --git a/guava/src/com/google/common/collect/Multisets.java b/guava/src/com/google/common/collect/Multisets.java index 3d656cb9d0dd..c6a46509dbe3 100644 --- a/guava/src/com/google/common/collect/Multisets.java +++ b/guava/src/com/google/common/collect/Multisets.java @@ -864,7 +864,7 @@ public boolean equals(@CheckForNull Object object) { */ @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness AbstractEntry this) { E e = getElement(); return ((e == null) ? 0 : e.hashCode()) ^ getCount(); } diff --git a/guava/src/com/google/common/collect/NullsFirstOrdering.java b/guava/src/com/google/common/collect/NullsFirstOrdering.java index cceac05c539c..52e968a8fd13 100644 --- a/guava/src/com/google/common/collect/NullsFirstOrdering.java +++ b/guava/src/com/google/common/collect/NullsFirstOrdering.java @@ -20,6 +20,7 @@ import java.io.Serializable; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.framework.qual.AnnotatedFor; @@ -83,7 +84,7 @@ public boolean equals(@CheckForNull Object object) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness NullsFirstOrdering this) { return ordering.hashCode() ^ 957692532; // meaningless } diff --git a/guava/src/com/google/common/collect/NullsLastOrdering.java b/guava/src/com/google/common/collect/NullsLastOrdering.java index f80b33a6fcbf..d2f3cce7220f 100644 --- a/guava/src/com/google/common/collect/NullsLastOrdering.java +++ b/guava/src/com/google/common/collect/NullsLastOrdering.java @@ -20,6 +20,7 @@ import java.io.Serializable; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.framework.qual.AnnotatedFor; @@ -83,7 +84,7 @@ public boolean equals(@CheckForNull Object object) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness NullsLastOrdering this) { return ordering.hashCode() ^ -921210296; // meaningless } diff --git a/guava/src/com/google/common/collect/Range.java b/guava/src/com/google/common/collect/Range.java index 2a5d464dc2a8..661ae742ab18 100644 --- a/guava/src/com/google/common/collect/Range.java +++ b/guava/src/com/google/common/collect/Range.java @@ -29,6 +29,7 @@ import java.util.NoSuchElementException; import java.util.SortedSet; import javax.annotation.CheckForNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * A range (or "interval") defines the boundaries around a contiguous span of values of some @@ -684,7 +685,7 @@ public boolean equals(@CheckForNull Object object) { /** Returns a hash code for this range. */ @Override - public int hashCode() { + public int hashCode(@UnknownSignedness Range this) { return lowerBound.hashCode() * 31 + upperBound.hashCode(); } diff --git a/guava/src/com/google/common/collect/RangeMap.java b/guava/src/com/google/common/collect/RangeMap.java index 99e7b97d5ee9..69d6edcb2fcb 100644 --- a/guava/src/com/google/common/collect/RangeMap.java +++ b/guava/src/com/google/common/collect/RangeMap.java @@ -26,6 +26,7 @@ import java.util.function.BiFunction; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * A mapping from disjoint nonempty ranges to non-null values. Queries look up the value associated @@ -189,7 +190,7 @@ void merge( /** Returns {@code asMapOfRanges().hashCode()}. */ @Override - int hashCode(); + int hashCode(@UnknownSignedness RangeMap this); /** Returns a readable string representation of this range map. */ @Override diff --git a/guava/src/com/google/common/collect/RangeSet.java b/guava/src/com/google/common/collect/RangeSet.java index 79fbab159fa5..e420003ea3ce 100644 --- a/guava/src/com/google/common/collect/RangeSet.java +++ b/guava/src/com/google/common/collect/RangeSet.java @@ -20,6 +20,7 @@ import java.util.NoSuchElementException; import java.util.Set; import javax.annotation.CheckForNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * A set comprising zero or more {@linkplain Range#isEmpty nonempty}, {@linkplain @@ -268,7 +269,7 @@ default void removeAll(Iterable> ranges) { /** Returns {@code asRanges().hashCode()}. */ @Override - int hashCode(); + int hashCode(@UnknownSignedness RangeSet this); /** * Returns a readable string representation of this range set. For example, if this {@code diff --git a/guava/src/com/google/common/collect/RegularContiguousSet.java b/guava/src/com/google/common/collect/RegularContiguousSet.java index a9db661d6ffa..afd0417697d7 100644 --- a/guava/src/com/google/common/collect/RegularContiguousSet.java +++ b/guava/src/com/google/common/collect/RegularContiguousSet.java @@ -26,6 +26,7 @@ import java.util.Collection; import javax.annotation.CheckForNull; import org.checkerframework.checker.index.qual.NonNegative; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * An implementation of {@link ContiguousSet} that contains one or more elements. @@ -154,7 +155,7 @@ public C get(int i) { } @Override - public boolean contains(@CheckForNull Object object) { + public boolean contains(@CheckForNull @UnknownSignedness Object object) { if (object == null) { return false; } @@ -203,7 +204,7 @@ public Range range(BoundType lowerBoundType, BoundType upperBoundType) { } @Override - public boolean equals(@CheckForNull Object object) { + public boolean equals(@CheckForNull @UnknownSignedness Object object) { if (object == this) { return true; } else if (object instanceof RegularContiguousSet) { @@ -217,7 +218,7 @@ public boolean equals(@CheckForNull Object object) { // copied to make sure not to use the GWT-emulated version @Override - public int hashCode() { + public int hashCode(@UnknownSignedness RegularContiguousSet this) { return Sets.hashCodeImpl(this); } diff --git a/guava/src/com/google/common/collect/RegularImmutableBiMap.java b/guava/src/com/google/common/collect/RegularImmutableBiMap.java index d07e079d6e90..d9cf279d9b78 100644 --- a/guava/src/com/google/common/collect/RegularImmutableBiMap.java +++ b/guava/src/com/google/common/collect/RegularImmutableBiMap.java @@ -177,7 +177,7 @@ boolean isHashCodeFast() { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness RegularImmutableBiMap this) { return hashCode; } @@ -259,7 +259,7 @@ boolean isHashCodeFast() { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness InverseEntrySet this) { return hashCode; } diff --git a/guava/src/com/google/common/collect/RegularImmutableList.java b/guava/src/com/google/common/collect/RegularImmutableList.java index e35b40c42f3c..89b5b29705db 100644 --- a/guava/src/com/google/common/collect/RegularImmutableList.java +++ b/guava/src/com/google/common/collect/RegularImmutableList.java @@ -118,7 +118,7 @@ public Spliterator spliterator() { @Pure @Override -public int hashCode() { return super.hashCode(); } +public int hashCode(@UnknownSignedness RegularImmutableList this) { return super.hashCode(); } @Pure @Override diff --git a/guava/src/com/google/common/collect/RegularImmutableMultiset.java b/guava/src/com/google/common/collect/RegularImmutableMultiset.java index 1169e124de4b..7408f5ec9f7c 100644 --- a/guava/src/com/google/common/collect/RegularImmutableMultiset.java +++ b/guava/src/com/google/common/collect/RegularImmutableMultiset.java @@ -194,7 +194,7 @@ Entry getEntry(int index) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness RegularImmutableMultiset this) { return hashCode; } } diff --git a/guava/src/com/google/common/collect/RegularImmutableSet.java b/guava/src/com/google/common/collect/RegularImmutableSet.java index 7b79268e4f5a..a3cd41631285 100644 --- a/guava/src/com/google/common/collect/RegularImmutableSet.java +++ b/guava/src/com/google/common/collect/RegularImmutableSet.java @@ -23,6 +23,7 @@ import javax.annotation.CheckForNull; import org.checkerframework.checker.index.qual.NonNegative; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.framework.qual.AnnotatedFor; @@ -56,7 +57,7 @@ final class RegularImmutableSet extends ImmutableSet.CachingAsList { @Pure @Override - public boolean contains(@CheckForNull Object target) { + public boolean contains(@CheckForNull @UnknownSignedness Object target) { @Nullable Object[] table = this.table; if (target == null || table.length == 0) { return false; @@ -122,7 +123,7 @@ boolean isPartialView() { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness RegularImmutableSet this) { return hashCode; } diff --git a/guava/src/com/google/common/collect/ReverseOrdering.java b/guava/src/com/google/common/collect/ReverseOrdering.java index 0f1ab8456783..fe6d7bec74cf 100644 --- a/guava/src/com/google/common/collect/ReverseOrdering.java +++ b/guava/src/com/google/common/collect/ReverseOrdering.java @@ -23,6 +23,7 @@ import java.util.Iterator; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.framework.qual.AnnotatedFor; @@ -96,7 +97,7 @@ public E max(Iterable iterable) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ReverseOrdering this) { return -forwardOrder.hashCode(); } diff --git a/guava/src/com/google/common/collect/Sets.java b/guava/src/com/google/common/collect/Sets.java index 9b771f387586..f4d6f0175934 100644 --- a/guava/src/com/google/common/collect/Sets.java +++ b/guava/src/com/google/common/collect/Sets.java @@ -1145,7 +1145,7 @@ public boolean equals(@CheckForNull @UnknownSignedness Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness FilteredSet this) { return hashCodeImpl(this); } } @@ -1474,7 +1474,7 @@ public boolean equals(@CheckForNull @UnknownSignedness Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness CartesianSet this) { // Warning: this is broken if size() == 0, so it is critical that we // substitute an empty ImmutableSet to the user in place of this @@ -1617,7 +1617,7 @@ public boolean equals(@CheckForNull @UnknownSignedness Object obj) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness PowerSet this) { /* * The sum of the sums of the hash codes in each subset is just the sum of * each input element's hash code times the number of sets that element diff --git a/guava/src/com/google/common/collect/SingletonImmutableList.java b/guava/src/com/google/common/collect/SingletonImmutableList.java index 3a840b5aad7e..cb99bb68de2c 100644 --- a/guava/src/com/google/common/collect/SingletonImmutableList.java +++ b/guava/src/com/google/common/collect/SingletonImmutableList.java @@ -24,6 +24,7 @@ import java.util.Spliterator; import org.checkerframework.checker.index.qual.NonNegative; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.dataflow.qual.SideEffectFree; import org.checkerframework.framework.qual.AnnotatedFor; @@ -85,14 +86,14 @@ boolean isPartialView() { } @Pure -public boolean contains(@Nullable Object arg0) { return super.contains(arg0); } +public boolean contains(@Nullable @UnknownSignedness Object arg0) { return super.contains(arg0); } @Pure -public boolean equals(@Nullable Object arg0) { return super.equals(arg0); } +public boolean equals(@Nullable @UnknownSignedness Object arg0) { return super.equals(arg0); } @Pure -public int indexOf(@Nullable Object arg0) { return super.indexOf(arg0); } +public int indexOf(@Nullable @UnknownSignedness Object arg0) { return super.indexOf(arg0); } @Pure -public int lastIndexOf(@Nullable Object arg0) { return super.lastIndexOf(arg0); } +public int lastIndexOf(@Nullable @UnknownSignedness Object arg0) { return super.lastIndexOf(arg0); } } diff --git a/guava/src/com/google/common/collect/SingletonImmutableSet.java b/guava/src/com/google/common/collect/SingletonImmutableSet.java index 2de73aa7101e..50bdde7afcfd 100644 --- a/guava/src/com/google/common/collect/SingletonImmutableSet.java +++ b/guava/src/com/google/common/collect/SingletonImmutableSet.java @@ -22,6 +22,7 @@ import javax.annotation.CheckForNull; import org.checkerframework.checker.index.qual.NonNegative; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.framework.qual.AnnotatedFor; import org.checkerframework.checker.nullness.qual.Nullable; @@ -54,7 +55,7 @@ final class SingletonImmutableSet extends ImmutableSet { @Pure @Override - public boolean contains(@CheckForNull Object target) { + public boolean contains(@CheckForNull @UnknownSignedness Object target) { return element.equals(target); } @@ -81,7 +82,7 @@ int copyIntoArray(@Nullable Object[] dst, int offset) { @Pure @Override - public final int hashCode() { + public int hashCode(@UnknownSignedness SingletonImmutableSet this) { return element.hashCode(); } @@ -92,5 +93,5 @@ public String toString() { } @Pure -public boolean equals(@Nullable Object arg0) { return super.equals(arg0); } +public boolean equals(@Nullable @UnknownSignedness Object arg0) { return super.equals(arg0); } } diff --git a/guava/src/com/google/common/collect/Synchronized.java b/guava/src/com/google/common/collect/Synchronized.java index c3a8b4a2b141..2fbec1c64a9e 100644 --- a/guava/src/com/google/common/collect/Synchronized.java +++ b/guava/src/com/google/common/collect/Synchronized.java @@ -305,7 +305,7 @@ public boolean equals(@CheckForNull @UnknownSignedness Object o) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness SynchronizedSet this) { synchronized (mutex) { return delegate().hashCode(); } @@ -496,7 +496,7 @@ public boolean equals(@CheckForNull @UnknownSignedness Object o) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness SynchronizedList this) { synchronized (mutex) { return delegate().hashCode(); } @@ -606,7 +606,7 @@ public boolean equals(@CheckForNull @UnknownSignedness Object o) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness SynchronizedMultiset this) { synchronized (mutex) { return delegate().hashCode(); } @@ -659,7 +659,7 @@ public boolean isEmpty() { @Pure @Override - public boolean containsKey(@CheckForNull Object key) { + public boolean containsKey(@CheckForNull @UnknownSignedness Object key) { synchronized (mutex) { return delegate().containsKey(key); } @@ -810,7 +810,7 @@ public boolean equals(@CheckForNull Object o) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness SynchronizedMultimap this) { synchronized (mutex) { return delegate().hashCode(); } @@ -1322,7 +1322,7 @@ public boolean equals(@CheckForNull Object o) { @Pure @Override - public int hashCode() { + public int hashCode(@UnknownSignedness SynchronizedMap this) { synchronized (mutex) { return delegate().hashCode(); } @@ -1918,7 +1918,7 @@ public boolean equals(@CheckForNull Object obj) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness SynchronizedEntry this) { synchronized (mutex) { return delegate().hashCode(); } @@ -2320,7 +2320,7 @@ public Map apply(Map t) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness SynchronizedTable this) { synchronized (mutex) { return delegate().hashCode(); } diff --git a/guava/src/com/google/common/collect/Table.java b/guava/src/com/google/common/collect/Table.java index 7821450634f7..5fe7202b0e1d 100644 --- a/guava/src/com/google/common/collect/Table.java +++ b/guava/src/com/google/common/collect/Table.java @@ -125,7 +125,7 @@ V get( * its cell view, as returned by {@link #cellSet}. */ @Override - int hashCode(); + int hashCode(@UnknownSignedness Table this); // Mutators @@ -285,6 +285,6 @@ interface Cell< * e.getColumnKey(), e.getValue())}. */ @Override - int hashCode(); + int hashCode(@UnknownSignedness Cell this); } } diff --git a/guava/src/com/google/common/collect/Tables.java b/guava/src/com/google/common/collect/Tables.java index 151d4693213e..0c994ea521fc 100644 --- a/guava/src/com/google/common/collect/Tables.java +++ b/guava/src/com/google/common/collect/Tables.java @@ -188,7 +188,7 @@ public boolean equals(@CheckForNull Object obj) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness AbstractCell this) { return Objects.hashCode(getRowKey(), getColumnKey(), getValue()); } diff --git a/guava/src/com/google/common/collect/TreeBasedTable.java b/guava/src/com/google/common/collect/TreeBasedTable.java index 96c2802e46bd..a99deaf0c229 100644 --- a/guava/src/com/google/common/collect/TreeBasedTable.java +++ b/guava/src/com/google/common/collect/TreeBasedTable.java @@ -33,6 +33,7 @@ import java.util.TreeMap; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.KeyFor; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * Implementation of {@code Table} whose row keys and column keys are ordered by their natural @@ -286,7 +287,7 @@ void maintainEmptyInvariant() { } @Override - public boolean containsKey(@CheckForNull Object key) { + public boolean containsKey(@CheckForNull @UnknownSignedness Object key) { return rangeContains(key) && super.containsKey(key); } diff --git a/guava/src/com/google/common/collect/TreeMultiset.java b/guava/src/com/google/common/collect/TreeMultiset.java index 3e2561d7d564..2b3bd07940b6 100644 --- a/guava/src/com/google/common/collect/TreeMultiset.java +++ b/guava/src/com/google/common/collect/TreeMultiset.java @@ -1108,7 +1108,7 @@ private void readObject(ObjectInputStream stream) throws IOException, ClassNotFo private static final long serialVersionUID = 1; @Pure -public boolean contains(@Nullable Object arg0) { return super.contains(arg0); } +public boolean contains(@Nullable @UnknownSignedness Object arg0) { return super.contains(arg0); } public boolean containsAll(Collection arg0) { return super.containsAll(arg0); } diff --git a/guava/src/com/google/common/collect/TreeRangeMap.java b/guava/src/com/google/common/collect/TreeRangeMap.java index f4c0ccf459af..bde057238026 100644 --- a/guava/src/com/google/common/collect/TreeRangeMap.java +++ b/guava/src/com/google/common/collect/TreeRangeMap.java @@ -633,7 +633,7 @@ public boolean equals(@CheckForNull Object o) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness SubRangeMap this) { return asMapOfRanges().hashCode(); } @@ -815,7 +815,7 @@ public boolean equals(@CheckForNull Object o) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness TreeRangeMap this) { return asMapOfRanges().hashCode(); } diff --git a/guava/src/com/google/common/collect/TreeRangeSet.java b/guava/src/com/google/common/collect/TreeRangeSet.java index 308992f804ba..d82f5423a914 100644 --- a/guava/src/com/google/common/collect/TreeRangeSet.java +++ b/guava/src/com/google/common/collect/TreeRangeSet.java @@ -32,6 +32,7 @@ import java.util.TreeMap; import javax.annotation.CheckForNull; import org.checkerframework.checker.index.qual.NonNegative; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * An implementation of {@link RangeSet} backed by a {@link TreeMap}. @@ -109,12 +110,12 @@ protected Collection> delegate() { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness AsRanges this) { return Sets.hashCodeImpl(this); } @Override - public boolean equals(@CheckForNull Object o) { + public boolean equals(@CheckForNull @UnknownSignedness Object o) { return Sets.equalsImpl(this, o); } } @@ -338,13 +339,13 @@ public Comparator> comparator() { } @Override - public boolean containsKey(@CheckForNull Object key) { + public boolean containsKey(@CheckForNull @UnknownSignedness Object key) { return get(key) != null; } @Override @CheckForNull - public Range get(@CheckForNull Object key) { + public Range get(@CheckForNull @UnknownSignedness Object key) { if (key instanceof Cut) { try { @SuppressWarnings("unchecked") // we catch CCEs @@ -634,7 +635,7 @@ protected Entry, Range> computeNext() { @Override @CheckForNull - public Range get(@CheckForNull Object key) { + public Range get(@CheckForNull @UnknownSignedness Object key) { if (key instanceof Cut) { try { @SuppressWarnings("unchecked") @@ -652,7 +653,7 @@ public Range get(@CheckForNull Object key) { } @Override - public boolean containsKey(@CheckForNull Object key) { + public boolean containsKey(@CheckForNull @UnknownSignedness Object key) { return get(key) != null; } } @@ -746,13 +747,13 @@ public Comparator> comparator() { } @Override - public boolean containsKey(@CheckForNull Object key) { + public boolean containsKey(@CheckForNull @UnknownSignedness Object key) { return get(key) != null; } @Override @CheckForNull - public Range get(@CheckForNull Object key) { + public Range get(@CheckForNull @UnknownSignedness Object key) { if (key instanceof Cut) { try { @SuppressWarnings("unchecked") // we catch CCE's diff --git a/guava/src/com/google/common/eventbus/Subscriber.java b/guava/src/com/google/common/eventbus/Subscriber.java index 71ee197c9b25..42f7e93032eb 100644 --- a/guava/src/com/google/common/eventbus/Subscriber.java +++ b/guava/src/com/google/common/eventbus/Subscriber.java @@ -22,6 +22,7 @@ import java.lang.reflect.Method; import java.util.concurrent.Executor; import javax.annotation.CheckForNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * A subscriber method on a specific object, plus the executor that should be used for dispatching @@ -101,7 +102,7 @@ private SubscriberExceptionContext context(Object event) { } @Override - public final int hashCode() { + public final int hashCode(@UnknownSignedness Subscriber this) { return (31 + method.hashCode()) * 31 + System.identityHashCode(target); } diff --git a/guava/src/com/google/common/eventbus/SubscriberRegistry.java b/guava/src/com/google/common/eventbus/SubscriberRegistry.java index 46e982016c55..c9df205fa76a 100644 --- a/guava/src/com/google/common/eventbus/SubscriberRegistry.java +++ b/guava/src/com/google/common/eventbus/SubscriberRegistry.java @@ -47,6 +47,7 @@ import java.util.concurrent.ConcurrentMap; import java.util.concurrent.CopyOnWriteArraySet; import javax.annotation.CheckForNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * Registry of subscribers to a single event bus. @@ -254,7 +255,7 @@ private static final class MethodIdentifier { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness MethodIdentifier this) { return Objects.hashCode(name, parameterTypes); } diff --git a/guava/src/com/google/common/graph/AbstractGraph.java b/guava/src/com/google/common/graph/AbstractGraph.java index 9402be5d9360..4deb3aab45e1 100644 --- a/guava/src/com/google/common/graph/AbstractGraph.java +++ b/guava/src/com/google/common/graph/AbstractGraph.java @@ -18,6 +18,7 @@ import com.google.common.annotations.Beta; import javax.annotation.CheckForNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * This class provides a skeletal implementation of {@link Graph}. It is recommended to extend this @@ -47,7 +48,7 @@ && nodes().equals(other.nodes()) } @Override - public final int hashCode() { + public final int hashCode(@UnknownSignedness AbstractGraph this) { return edges().hashCode(); } diff --git a/guava/src/com/google/common/graph/AbstractNetwork.java b/guava/src/com/google/common/graph/AbstractNetwork.java index ab002bfd0e19..0dc773b6fa4e 100644 --- a/guava/src/com/google/common/graph/AbstractNetwork.java +++ b/guava/src/com/google/common/graph/AbstractNetwork.java @@ -275,7 +275,7 @@ && nodes().equals(other.nodes()) } @Override - public final int hashCode() { + public final int hashCode(@UnknownSignedness AbstractNetwork this) { return edgeIncidentNodesMap(this).hashCode(); } diff --git a/guava/src/com/google/common/graph/AbstractValueGraph.java b/guava/src/com/google/common/graph/AbstractValueGraph.java index 5b8e520c35e8..f4e00829c2fa 100644 --- a/guava/src/com/google/common/graph/AbstractValueGraph.java +++ b/guava/src/com/google/common/graph/AbstractValueGraph.java @@ -25,6 +25,7 @@ import java.util.Optional; import java.util.Set; import javax.annotation.CheckForNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * This class provides a skeletal implementation of {@link ValueGraph}. It is recommended to extend @@ -134,7 +135,7 @@ && nodes().equals(other.nodes()) } @Override - public final int hashCode() { + public final int hashCode(@UnknownSignedness AbstractValueGraph this) { return edgeValueMap(this).hashCode(); } diff --git a/guava/src/com/google/common/graph/DirectedGraphConnections.java b/guava/src/com/google/common/graph/DirectedGraphConnections.java index 8d72a786f859..e58a772970aa 100644 --- a/guava/src/com/google/common/graph/DirectedGraphConnections.java +++ b/guava/src/com/google/common/graph/DirectedGraphConnections.java @@ -95,7 +95,7 @@ public boolean equals(@CheckForNull Object that) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness Pred this) { // Adding the class hashCode to avoid a clash with Succ instances. return Pred.class.hashCode() + node.hashCode(); } @@ -116,7 +116,7 @@ public boolean equals(@CheckForNull Object that) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness Succ this) { // Adding the class hashCode to avoid a clash with Pred instances. return Succ.class.hashCode() + node.hashCode(); } @@ -465,7 +465,7 @@ public void removePredecessor(N node) { @SuppressWarnings("unchecked") @Override @CheckForNull - public V removeSuccessor(Object node) { + public V removeSuccessor(@UnknownSignedness Object node) { checkNotNull(node); Object previousValue = adjacentNodeValues.get(node); Object removedValue; diff --git a/guava/src/com/google/common/graph/ElementOrder.java b/guava/src/com/google/common/graph/ElementOrder.java index b5985a280b86..24a0c1de65a9 100644 --- a/guava/src/com/google/common/graph/ElementOrder.java +++ b/guava/src/com/google/common/graph/ElementOrder.java @@ -29,6 +29,7 @@ import java.util.Comparator; import java.util.Map; import javax.annotation.CheckForNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * Used to represent the order of elements in a data structure that supports different options for @@ -174,7 +175,7 @@ public boolean equals(@CheckForNull Object obj) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ElementOrder this) { return Objects.hashCode(type, comparator); } diff --git a/guava/src/com/google/common/graph/EndpointPair.java b/guava/src/com/google/common/graph/EndpointPair.java index fe2397c6b97b..2b939077bdec 100644 --- a/guava/src/com/google/common/graph/EndpointPair.java +++ b/guava/src/com/google/common/graph/EndpointPair.java @@ -25,6 +25,7 @@ import com.google.common.collect.UnmodifiableIterator; import com.google.errorprone.annotations.Immutable; import javax.annotation.CheckForNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * An immutable pair representing the two endpoints of an edge in a graph. The {@link EndpointPair} @@ -142,7 +143,7 @@ public final UnmodifiableIterator iterator() { * nodeU().hashCode() + nodeV().hashCode()}. */ @Override - public abstract int hashCode(); + public abstract int hashCode(@UnknownSignedness EndpointPair this); private static final class Ordered extends EndpointPair { private Ordered(N source, N target) { @@ -182,7 +183,7 @@ public boolean equals(@CheckForNull Object obj) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness Ordered this) { return Objects.hashCode(source(), target()); } @@ -242,7 +243,7 @@ public boolean equals(@CheckForNull Object obj) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness Unordered this) { return nodeU().hashCode() + nodeV().hashCode(); } diff --git a/guava/src/com/google/common/graph/Graph.java b/guava/src/com/google/common/graph/Graph.java index 5dc0e71faf6d..291fbed8efe3 100644 --- a/guava/src/com/google/common/graph/Graph.java +++ b/guava/src/com/google/common/graph/Graph.java @@ -21,6 +21,7 @@ import java.util.Collection; import java.util.Set; import javax.annotation.CheckForNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * An interface for extends BaseGraph { *

A reference implementation of this is provided by {@link AbstractGraph#hashCode()}. */ @Override - int hashCode(); + int hashCode(@UnknownSignedness Graph this); } diff --git a/guava/src/com/google/common/graph/Network.java b/guava/src/com/google/common/graph/Network.java index c700d3378de6..ea3195acf6bd 100644 --- a/guava/src/com/google/common/graph/Network.java +++ b/guava/src/com/google/common/graph/Network.java @@ -21,6 +21,7 @@ import java.util.Optional; import java.util.Set; import javax.annotation.CheckForNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * An interface for extends SuccessorsFunction, PredecessorsFuncti *

A reference implementation of this is provided by {@link AbstractNetwork#hashCode()}. */ @Override - int hashCode(); + int hashCode(@UnknownSignedness Network this); } diff --git a/guava/src/com/google/common/graph/ValueGraph.java b/guava/src/com/google/common/graph/ValueGraph.java index a13e87eb9833..230e248ed05d 100644 --- a/guava/src/com/google/common/graph/ValueGraph.java +++ b/guava/src/com/google/common/graph/ValueGraph.java @@ -21,6 +21,7 @@ import java.util.Optional; import java.util.Set; import javax.annotation.CheckForNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * An interface for extends BaseGraph { *

A reference implementation of this is provided by {@link AbstractValueGraph#hashCode()}. */ @Override - int hashCode(); + int hashCode(@UnknownSignedness ValueGraph this); } diff --git a/guava/src/com/google/common/hash/BloomFilter.java b/guava/src/com/google/common/hash/BloomFilter.java index e7e6ba96f403..601e08300a29 100644 --- a/guava/src/com/google/common/hash/BloomFilter.java +++ b/guava/src/com/google/common/hash/BloomFilter.java @@ -40,6 +40,7 @@ import org.checkerframework.checker.index.qual.NonNegative; import org.checkerframework.checker.index.qual.Positive; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.common.value.qual.IntRange; /** @@ -296,7 +297,7 @@ public boolean equals(@CheckForNull Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness BloomFilter this) { return Objects.hashCode(numHashFunctions, funnel, strategy, bits); } diff --git a/guava/src/com/google/common/hash/BloomFilterStrategies.java b/guava/src/com/google/common/hash/BloomFilterStrategies.java index 662a41890904..e20b398082c5 100644 --- a/guava/src/com/google/common/hash/BloomFilterStrategies.java +++ b/guava/src/com/google/common/hash/BloomFilterStrategies.java @@ -24,6 +24,7 @@ import java.util.concurrent.atomic.AtomicLongArray; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.common.value.qual.IntRange; import org.checkerframework.common.value.qual.MinLen; @@ -314,7 +315,7 @@ public boolean equals(@CheckForNull Object o) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness LockFreeBitArray this) { // TODO(lowasser): avoid allocation here return Arrays.hashCode(toPlainArray(data)); } diff --git a/guava/src/com/google/common/hash/Funnels.java b/guava/src/com/google/common/hash/Funnels.java index db88736065a0..62b3525b1d90 100644 --- a/guava/src/com/google/common/hash/Funnels.java +++ b/guava/src/com/google/common/hash/Funnels.java @@ -26,6 +26,7 @@ import org.checkerframework.checker.index.qual.NonNegative; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.checker.signedness.qual.PolySigned; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.common.value.qual.MinLen; /** @@ -122,7 +123,7 @@ public boolean equals(@CheckForNull Object o) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness StringCharsetFunnel this) { return StringCharsetFunnel.class.hashCode() ^ charset.hashCode(); } @@ -209,7 +210,7 @@ public boolean equals(@CheckForNull Object o) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness SequentialFunnel this) { return SequentialFunnel.class.hashCode() ^ elementFunnel.hashCode(); } } diff --git a/guava/src/com/google/common/hash/HashCode.java b/guava/src/com/google/common/hash/HashCode.java index 1e9b85a23e3f..d8e6fd470529 100644 --- a/guava/src/com/google/common/hash/HashCode.java +++ b/guava/src/com/google/common/hash/HashCode.java @@ -29,6 +29,7 @@ import org.checkerframework.checker.index.qual.NonNegative; import org.checkerframework.checker.index.qual.SameLen; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.common.value.qual.ArrayLenRange; import org.checkerframework.common.value.qual.IntRange; import org.checkerframework.common.value.qual.MinLen; @@ -403,7 +404,7 @@ public final boolean equals(@CheckForNull Object object) { * probably not what you want to use. */ @Override - public final int hashCode() { + public final int hashCode(@UnknownSignedness HashCode this) { // If we have at least 4 bytes (32 bits), just take the first 4 bytes. Since this is // already a (presumably) high-quality hash code, any four bytes of it will do. if (bits() >= 32) { diff --git a/guava/src/com/google/common/hash/Hasher.java b/guava/src/com/google/common/hash/Hasher.java index 91674eb2b0d6..ca606ce17635 100644 --- a/guava/src/com/google/common/hash/Hasher.java +++ b/guava/src/com/google/common/hash/Hasher.java @@ -22,6 +22,7 @@ import java.nio.ByteBuffer; import java.nio.charset.Charset; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * A {@link PrimitiveSink} that can compute a hash code after reading the input. Each hasher should @@ -141,5 +142,5 @@ public interface Hasher extends PrimitiveSink { */ @Override @Deprecated - int hashCode(); + int hashCode(@UnknownSignedness Hasher this); } diff --git a/guava/src/com/google/common/hash/Hashing.java b/guava/src/com/google/common/hash/Hashing.java index de6f309c5f41..5c0d6789c978 100644 --- a/guava/src/com/google/common/hash/Hashing.java +++ b/guava/src/com/google/common/hash/Hashing.java @@ -32,6 +32,7 @@ import org.checkerframework.checker.index.qual.NonNegative; import org.checkerframework.checker.index.qual.Positive; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.common.value.qual.IntRange; import org.checkerframework.common.value.qual.MinLen; @@ -723,7 +724,7 @@ public boolean equals(@CheckForNull Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ConcatenatedHashFunction this) { return Arrays.hashCode(functions); } } diff --git a/guava/src/com/google/common/hash/Murmur3_128HashFunction.java b/guava/src/com/google/common/hash/Murmur3_128HashFunction.java index 762cc90ccc05..724fec48334c 100644 --- a/guava/src/com/google/common/hash/Murmur3_128HashFunction.java +++ b/guava/src/com/google/common/hash/Murmur3_128HashFunction.java @@ -34,6 +34,7 @@ import javax.annotation.CheckForNull; import org.checkerframework.checker.index.qual.NonNegative; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * See MurmurHash3_x64_128 in the @@ -82,7 +83,7 @@ public boolean equals(@CheckForNull Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness Murmur3_128HashFunction this) { return getClass().hashCode() ^ seed; } diff --git a/guava/src/com/google/common/hash/Murmur3_32HashFunction.java b/guava/src/com/google/common/hash/Murmur3_32HashFunction.java index 308ec8dc7db3..3386ddc7d70a 100644 --- a/guava/src/com/google/common/hash/Murmur3_32HashFunction.java +++ b/guava/src/com/google/common/hash/Murmur3_32HashFunction.java @@ -43,6 +43,7 @@ import org.checkerframework.checker.index.qual.LTLengthOf; import org.checkerframework.checker.index.qual.NonNegative; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.common.value.qual.MinLen; /** @@ -105,7 +106,7 @@ public boolean equals(@CheckForNull Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness Murmur3_32HashFunction this) { return getClass().hashCode() ^ seed; } diff --git a/guava/src/com/google/common/hash/SipHashFunction.java b/guava/src/com/google/common/hash/SipHashFunction.java index a854db188ff2..ab94b0cf0191 100644 --- a/guava/src/com/google/common/hash/SipHashFunction.java +++ b/guava/src/com/google/common/hash/SipHashFunction.java @@ -27,6 +27,7 @@ import javax.annotation.CheckForNull; import org.checkerframework.checker.index.qual.NonNegative; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * {@link HashFunction} implementation of SipHash-c-d. @@ -93,7 +94,7 @@ public boolean equals(@CheckForNull Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness SipHashFunction this) { return (int) (getClass().hashCode() ^ c ^ d ^ k0 ^ k1); } diff --git a/guava/src/com/google/common/io/BaseEncoding.java b/guava/src/com/google/common/io/BaseEncoding.java index 3e7d5450c90b..01f58a29d32a 100644 --- a/guava/src/com/google/common/io/BaseEncoding.java +++ b/guava/src/com/google/common/io/BaseEncoding.java @@ -44,6 +44,7 @@ import org.checkerframework.checker.index.qual.NonNegative; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.checker.signedness.qual.PolySigned; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.common.value.qual.ArrayLen; import org.checkerframework.common.value.qual.MinLen; @@ -567,7 +568,7 @@ public boolean equals(@CheckForNull Object other) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness Alphabet this) { return Arrays.hashCode(chars); } } @@ -892,7 +893,7 @@ public boolean equals(@CheckForNull Object other) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness StandardBaseEncoding this) { return alphabet.hashCode() ^ Objects.hashCode(paddingChar); } } diff --git a/guava/src/com/google/common/math/PairedStats.java b/guava/src/com/google/common/math/PairedStats.java index 31ab9b71966f..d6f16b0ca4bf 100644 --- a/guava/src/com/google/common/math/PairedStats.java +++ b/guava/src/com/google/common/math/PairedStats.java @@ -29,6 +29,7 @@ import java.nio.ByteBuffer; import java.nio.ByteOrder; import javax.annotation.CheckForNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * An immutable value object capturing some basic statistics about a collection of paired double @@ -234,7 +235,7 @@ public boolean equals(@CheckForNull Object obj) { * including the floating point values. See the note on {@link #equals} for details. */ @Override - public int hashCode() { + public int hashCode(@UnknownSignedness PairedStats this) { return Objects.hashCode(xStats, yStats, sumOfProductsOfDeltas); } diff --git a/guava/src/com/google/common/math/Stats.java b/guava/src/com/google/common/math/Stats.java index e7ecc97350ca..f1647481247d 100644 --- a/guava/src/com/google/common/math/Stats.java +++ b/guava/src/com/google/common/math/Stats.java @@ -38,6 +38,7 @@ import java.util.stream.LongStream; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.common.value.qual.MinLen; /** @@ -441,7 +442,7 @@ && doubleToLongBits(min) == doubleToLongBits(other.min) * including the floating point values. See the note on {@link #equals} for details. */ @Override - public int hashCode() { + public int hashCode(@UnknownSignedness Stats this) { return Objects.hashCode(count, mean, sumOfSquaresOfDeltas, min, max); } diff --git a/guava/src/com/google/common/net/HostAndPort.java b/guava/src/com/google/common/net/HostAndPort.java index a27eb65ff3ba..225f14ea1ac6 100644 --- a/guava/src/com/google/common/net/HostAndPort.java +++ b/guava/src/com/google/common/net/HostAndPort.java @@ -26,6 +26,7 @@ import com.google.errorprone.annotations.Immutable; import java.io.Serializable; import javax.annotation.CheckForNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * An immutable representation of a host and port. @@ -293,7 +294,7 @@ public boolean equals(@CheckForNull Object other) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness HostAndPort this) { return Objects.hashCode(host, port); } diff --git a/guava/src/com/google/common/net/HostSpecifier.java b/guava/src/com/google/common/net/HostSpecifier.java index c57f3d97593c..a8bcfbc72b66 100644 --- a/guava/src/com/google/common/net/HostSpecifier.java +++ b/guava/src/com/google/common/net/HostSpecifier.java @@ -20,6 +20,7 @@ import java.net.InetAddress; import java.text.ParseException; import javax.annotation.CheckForNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * A syntactically valid host specifier, suitable for use in a URI. This may be either a numeric IP @@ -152,7 +153,7 @@ public boolean equals(@CheckForNull Object other) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness HostSpecifier this) { return canonicalForm.hashCode(); } diff --git a/guava/src/com/google/common/net/InternetDomainName.java b/guava/src/com/google/common/net/InternetDomainName.java index d71a9d5c3c6c..fc68bbc62ec8 100644 --- a/guava/src/com/google/common/net/InternetDomainName.java +++ b/guava/src/com/google/common/net/InternetDomainName.java @@ -31,6 +31,7 @@ import com.google.thirdparty.publicsuffix.PublicSuffixType; import java.util.List; import javax.annotation.CheckForNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * An immutable well-formed internet domain name, such as {@code com} or {@code foo.co.uk}. Only @@ -638,7 +639,7 @@ public boolean equals(@CheckForNull Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness InternetDomainName this) { return name.hashCode(); } } diff --git a/guava/src/com/google/common/net/MediaType.java b/guava/src/com/google/common/net/MediaType.java index a713d0b17ae5..b66e7773c237 100644 --- a/guava/src/com/google/common/net/MediaType.java +++ b/guava/src/com/google/common/net/MediaType.java @@ -44,6 +44,7 @@ import java.util.Map; import java.util.Map.Entry; import javax.annotation.CheckForNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * Represents an Internet Media Type @@ -1144,7 +1145,7 @@ public boolean equals(@CheckForNull Object obj) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness MediaType this) { // racy single-check idiom int h = hashCode; if (h == 0) { diff --git a/guava/src/com/google/common/primitives/Booleans.java b/guava/src/com/google/common/primitives/Booleans.java index 4b4dc5b3250a..3ea13c9103aa 100644 --- a/guava/src/com/google/common/primitives/Booleans.java +++ b/guava/src/com/google/common/primitives/Booleans.java @@ -514,7 +514,7 @@ public boolean equals(@CheckForNull @UnknownSignedness Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness BooleanArrayAsList this) { int result = 1; for (int i = start; i < end; i++) { result = 31 * result + Booleans.hashCode(array[i]); diff --git a/guava/src/com/google/common/primitives/Bytes.java b/guava/src/com/google/common/primitives/Bytes.java index 5c7bb7135059..4079eae3c3a1 100644 --- a/guava/src/com/google/common/primitives/Bytes.java +++ b/guava/src/com/google/common/primitives/Bytes.java @@ -379,7 +379,7 @@ public boolean equals(@CheckForNull @UnknownSignedness Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ByteArrayAsList this) { int result = 1; for (int i = start; i < end; i++) { result = 31 * result + Bytes.hashCode(array[i]); diff --git a/guava/src/com/google/common/primitives/Chars.java b/guava/src/com/google/common/primitives/Chars.java index a53bb8a6caff..d7154f447bd2 100644 --- a/guava/src/com/google/common/primitives/Chars.java +++ b/guava/src/com/google/common/primitives/Chars.java @@ -649,7 +649,7 @@ public boolean equals(@CheckForNull @UnknownSignedness Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness CharArrayAsList this) { int result = 1; for (int i = start; i < end; i++) { result = 31 * result + Chars.hashCode(array[i]); diff --git a/guava/src/com/google/common/primitives/Doubles.java b/guava/src/com/google/common/primitives/Doubles.java index e0b020ae1dc5..a9af81b38025 100644 --- a/guava/src/com/google/common/primitives/Doubles.java +++ b/guava/src/com/google/common/primitives/Doubles.java @@ -663,7 +663,7 @@ public boolean equals(@CheckForNull @UnknownSignedness Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness DoubleArrayAsList this) { int result = 1; for (int i = start; i < end; i++) { result = 31 * result + Doubles.hashCode(array[i]); diff --git a/guava/src/com/google/common/primitives/Floats.java b/guava/src/com/google/common/primitives/Floats.java index c9c4a301f653..146fd575ae67 100644 --- a/guava/src/com/google/common/primitives/Floats.java +++ b/guava/src/com/google/common/primitives/Floats.java @@ -649,7 +649,7 @@ public boolean equals(@CheckForNull @UnknownSignedness Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness FloatArrayAsList this) { int result = 1; for (int i = start; i < end; i++) { result = 31 * result + Floats.hashCode(array[i]); diff --git a/guava/src/com/google/common/primitives/ImmutableDoubleArray.java b/guava/src/com/google/common/primitives/ImmutableDoubleArray.java index 9d138bbf0a2b..aeed1095e7e2 100644 --- a/guava/src/com/google/common/primitives/ImmutableDoubleArray.java +++ b/guava/src/com/google/common/primitives/ImmutableDoubleArray.java @@ -607,7 +607,7 @@ public boolean equals(@CheckForNull @UnknownSignedness Object object) { // Because we happen to use the same formula. If that changes, just don't override this. @Override - public int hashCode() { + public int hashCode(@UnknownSignedness AsList this) { return parent.hashCode(); } @@ -649,7 +649,7 @@ private static boolean areEqual(double a, double b) { /** Returns an unspecified hash code for the contents of this immutable array. */ @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ImmutableDoubleArray this) { int hash = 1; for (int i = start; i < end; i++) { hash *= 31; diff --git a/guava/src/com/google/common/primitives/ImmutableIntArray.java b/guava/src/com/google/common/primitives/ImmutableIntArray.java index 5d983e2bcd56..95fa420a958e 100644 --- a/guava/src/com/google/common/primitives/ImmutableIntArray.java +++ b/guava/src/com/google/common/primitives/ImmutableIntArray.java @@ -607,7 +607,7 @@ public boolean equals(@CheckForNull @UnknownSignedness Object object) { // Because we happen to use the same formula. If that changes, just don't override this. @Override - public int hashCode() { + public int hashCode(@UnknownSignedness AsList this) { return parent.hashCode(); } @@ -643,7 +643,7 @@ public boolean equals(@CheckForNull Object object) { /** Returns an unspecified hash code for the contents of this immutable array. */ @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ImmutableIntArray this) { int hash = 1; for (int i = start; i < end; i++) { hash *= 31; diff --git a/guava/src/com/google/common/primitives/ImmutableLongArray.java b/guava/src/com/google/common/primitives/ImmutableLongArray.java index 5612c751340b..941a4ca5dc62 100644 --- a/guava/src/com/google/common/primitives/ImmutableLongArray.java +++ b/guava/src/com/google/common/primitives/ImmutableLongArray.java @@ -609,7 +609,7 @@ public boolean equals(@CheckForNull @UnknownSignedness Object object) { // Because we happen to use the same formula. If that changes, just don't override this. @Override - public int hashCode() { + public int hashCode(@UnknownSignedness AsList this) { return parent.hashCode(); } @@ -645,7 +645,7 @@ public boolean equals(@CheckForNull Object object) { /** Returns an unspecified hash code for the contents of this immutable array. */ @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ImmutableLongArray this) { int hash = 1; for (int i = start; i < end; i++) { hash *= 31; diff --git a/guava/src/com/google/common/primitives/Ints.java b/guava/src/com/google/common/primitives/Ints.java index 906dcc3325f4..bd4a49b7c8a8 100644 --- a/guava/src/com/google/common/primitives/Ints.java +++ b/guava/src/com/google/common/primitives/Ints.java @@ -709,7 +709,7 @@ public boolean equals(@CheckForNull @UnknownSignedness Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness IntArrayAsList this) { int result = 1; for (int i = start; i < end; i++) { result = 31 * result + Ints.hashCode(array[i]); diff --git a/guava/src/com/google/common/primitives/Longs.java b/guava/src/com/google/common/primitives/Longs.java index 32082d8aba6b..2bfc3f7bb570 100644 --- a/guava/src/com/google/common/primitives/Longs.java +++ b/guava/src/com/google/common/primitives/Longs.java @@ -807,7 +807,7 @@ public boolean equals(@CheckForNull @UnknownSignedness Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness LongArrayAsList this) { int result = 1; for (int i = start; i < end; i++) { result = 31 * result + Longs.hashCode(array[i]); diff --git a/guava/src/com/google/common/primitives/Shorts.java b/guava/src/com/google/common/primitives/Shorts.java index 8c0b53195f47..9370fcebeec6 100644 --- a/guava/src/com/google/common/primitives/Shorts.java +++ b/guava/src/com/google/common/primitives/Shorts.java @@ -701,7 +701,7 @@ public boolean equals(@CheckForNull @UnknownSignedness Object object) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ShortArrayAsList this) { int result = 1; for (int i = start; i < end; i++) { result = 31 * result + Shorts.hashCode(array[i]); diff --git a/guava/src/com/google/common/primitives/UnsignedInteger.java b/guava/src/com/google/common/primitives/UnsignedInteger.java index 888031d4ae2f..96fc1cbaefbc 100644 --- a/guava/src/com/google/common/primitives/UnsignedInteger.java +++ b/guava/src/com/google/common/primitives/UnsignedInteger.java @@ -236,7 +236,7 @@ public int compareTo(UnsignedInteger other) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness UnsignedInteger this) { return value; } diff --git a/guava/src/com/google/common/primitives/UnsignedLong.java b/guava/src/com/google/common/primitives/UnsignedLong.java index af72b5d55ca7..edcc662c564d 100644 --- a/guava/src/com/google/common/primitives/UnsignedLong.java +++ b/guava/src/com/google/common/primitives/UnsignedLong.java @@ -25,6 +25,7 @@ import org.checkerframework.checker.index.qual.NonNegative; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.checker.signedness.qual.Signed; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.checker.signedness.qual.Unsigned; import org.checkerframework.common.value.qual.IntRange; import org.checkerframework.common.value.qual.PolyValue; @@ -258,7 +259,7 @@ public int compareTo(UnsignedLong o) { @Override @SuppressWarnings("signedness:argument") - public int hashCode() { + public int hashCode(@UnknownSignedness UnsignedLong this) { return Longs.hashCode(value); } diff --git a/guava/src/com/google/common/reflect/AbstractInvocationHandler.java b/guava/src/com/google/common/reflect/AbstractInvocationHandler.java index ff921959db39..c79aa90970ff 100644 --- a/guava/src/com/google/common/reflect/AbstractInvocationHandler.java +++ b/guava/src/com/google/common/reflect/AbstractInvocationHandler.java @@ -20,6 +20,7 @@ import java.util.Arrays; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * Abstract implementation of {@link InvocationHandler} that handles {@link Object#equals}, {@link @@ -120,7 +121,7 @@ public boolean equals(@CheckForNull Object obj) { * delegate to this method. Subclasses can override this method to provide custom equality. */ @Override - public int hashCode() { + public int hashCode(@UnknownSignedness AbstractInvocationHandler this) { return super.hashCode(); } diff --git a/guava/src/com/google/common/reflect/ClassPath.java b/guava/src/com/google/common/reflect/ClassPath.java index 627532f8408e..20333d39fef9 100644 --- a/guava/src/com/google/common/reflect/ClassPath.java +++ b/guava/src/com/google/common/reflect/ClassPath.java @@ -50,6 +50,7 @@ import java.util.jar.Manifest; import java.util.logging.Logger; import javax.annotation.CheckForNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * Scans the source of a {@link ClassLoader} and finds all loadable classes and resources. @@ -272,7 +273,7 @@ final File getFile() { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ResourceInfo this) { return resourceName.hashCode(); } @@ -559,7 +560,7 @@ public boolean equals(@CheckForNull Object obj) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness LocationInfo this) { return home.hashCode(); } diff --git a/guava/src/com/google/common/reflect/Invokable.java b/guava/src/com/google/common/reflect/Invokable.java index e6d3b6c53f7f..f0df59fb2255 100644 --- a/guava/src/com/google/common/reflect/Invokable.java +++ b/guava/src/com/google/common/reflect/Invokable.java @@ -33,6 +33,7 @@ import java.util.Arrays; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * Wrapper around either a {@link Method} or a {@link Constructor}. Convenience API is provided to @@ -221,7 +222,7 @@ public boolean equals(@CheckForNull Object obj) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness Invokable this) { return member.hashCode(); } diff --git a/guava/src/com/google/common/reflect/Parameter.java b/guava/src/com/google/common/reflect/Parameter.java index c3c46eca9d08..6b796f0d36fe 100644 --- a/guava/src/com/google/common/reflect/Parameter.java +++ b/guava/src/com/google/common/reflect/Parameter.java @@ -24,6 +24,7 @@ import java.lang.reflect.AnnotatedType; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * Represents a method or constructor parameter. @@ -140,7 +141,7 @@ public boolean equals(@CheckForNull Object obj) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness Parameter this) { return position; } diff --git a/guava/src/com/google/common/reflect/TypeParameter.java b/guava/src/com/google/common/reflect/TypeParameter.java index 69cd8291a909..ec969a1b11fa 100644 --- a/guava/src/com/google/common/reflect/TypeParameter.java +++ b/guava/src/com/google/common/reflect/TypeParameter.java @@ -19,6 +19,7 @@ import java.lang.reflect.Type; import java.lang.reflect.TypeVariable; import javax.annotation.CheckForNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * Captures a free type variable that can be used in {@link TypeToken#where}. For example: @@ -55,7 +56,7 @@ protected TypeParameter() { } @Override - public final int hashCode() { + public final int hashCode(@UnknownSignedness TypeParameter this) { return typeVariable.hashCode(); } diff --git a/guava/src/com/google/common/reflect/TypeResolver.java b/guava/src/com/google/common/reflect/TypeResolver.java index 32517eb8782f..063e7fd6f44c 100644 --- a/guava/src/com/google/common/reflect/TypeResolver.java +++ b/guava/src/com/google/common/reflect/TypeResolver.java @@ -35,6 +35,7 @@ import java.util.Set; import java.util.concurrent.atomic.AtomicInteger; import javax.annotation.CheckForNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * An object of this class encapsulates type mappings from type variables. Mappings are established @@ -556,7 +557,7 @@ static final class TypeVariableKey { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness TypeVariableKey this) { return Objects.hashCode(var.getGenericDeclaration(), var.getName()); } diff --git a/guava/src/com/google/common/reflect/TypeToken.java b/guava/src/com/google/common/reflect/TypeToken.java index fea1d53a2fab..0f93c7972798 100644 --- a/guava/src/com/google/common/reflect/TypeToken.java +++ b/guava/src/com/google/common/reflect/TypeToken.java @@ -48,6 +48,7 @@ import java.util.Map; import java.util.Set; import javax.annotation.CheckForNull; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; /** * A {@link Type} with generics. @@ -838,7 +839,7 @@ public boolean equals(@CheckForNull Object o) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness TypeToken this) { return runtimeType.hashCode(); } diff --git a/guava/src/com/google/common/reflect/Types.java b/guava/src/com/google/common/reflect/Types.java index ef7dd5ad2c42..3f271994ef49 100644 --- a/guava/src/com/google/common/reflect/Types.java +++ b/guava/src/com/google/common/reflect/Types.java @@ -46,6 +46,7 @@ import java.util.concurrent.atomic.AtomicReference; import javax.annotation.CheckForNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.checker.signedness.qual.UnknownSignedness; import org.checkerframework.common.value.qual.MinLen; /** @@ -239,7 +240,7 @@ public String toString() { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness GenericArrayTypeImpl this) { return componentType.hashCode(); } @@ -301,7 +302,7 @@ public String toString() { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness ParameterizedTypeImpl this) { return (ownerType == null ? 0 : ownerType.hashCode()) ^ argumentsList.hashCode() ^ rawType.hashCode(); @@ -435,7 +436,7 @@ public String toString() { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness TypeVariableImpl this) { return genericDeclaration.hashCode() ^ name.hashCode(); } @@ -500,7 +501,7 @@ public boolean equals(@CheckForNull Object obj) { } @Override - public int hashCode() { + public int hashCode(@UnknownSignedness WildcardTypeImpl this) { return lowerBounds.hashCode() ^ upperBounds.hashCode(); } diff --git a/pom.xml b/pom.xml index 088202ecbc52..d2bd1be264c1 100644 --- a/pom.xml +++ b/pom.xml @@ -15,7 +15,7 @@ %regex[.*.class] 1.1.2 - 3.34.0 + 3.35.0 1.20 3.1.0