Tighter equals/hashCode method checking.
Test: false-positive no longer triggered
Bug: 32721082
Change-Id: I49b6225a7282d0bb84b0dfb4cabe56e9f68186a9
diff --git a/tools/apilint/apilint.py b/tools/apilint/apilint.py
index 48a1330..3fedea2 100644
--- a/tools/apilint/apilint.py
+++ b/tools/apilint/apilint.py
@@ -403,9 +403,12 @@
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")