Tighter equals/hashCode method checking.

Test: false-positive no longer triggered
Bug: 32721082
Change-Id: I49b6225a7282d0bb84b0dfb4cabe56e9f68186a9
This commit is contained in:
Jeff Sharkey
2016-12-21 13:46:33 -07:00
parent 26c8090647
commit 40d623e676

View File

@@ -403,9 +403,12 @@ def verify_extras(clazz):
def verify_equals(clazz):
"""Verify that equals() and hashCode() must be overridden together."""
methods = [ m.name for m in clazz.methods ]
eq = "equals" in methods
hc = "hashCode" in methods
eq = False
hc = False
for m in clazz.methods:
if " static " in m.raw: continue
if "boolean equals(java.lang.Object)" in m.raw: eq = True
if "int hashCode()" in m.raw: hc = True
if eq != hc:
error(clazz, None, "M8", "Must override both equals and hashCode; missing one")