diff options
author | 2015-04-25 19:28:15 +0000 | |
---|---|---|
committer | 2015-04-27 18:51:42 +0000 | |
commit | 7a9721440a1adfa6757b946e87d9865a55b26368 (patch) | |
tree | cae5fae5169b3eb64cbeb4191c360ce8d1f39429 /src/main/java/com/google/devtools/build/lib | |
parent | 307ecd815aa02768b7318888a3a9126a041111c9 (diff) |
Fix SkylarkList#equals
--
MOS_MIGRATED_REVID=92063536
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/syntax/SkylarkList.java | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkList.java b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkList.java index 5562fbf851..2d6f39722e 100644 --- a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkList.java +++ b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkList.java @@ -83,6 +83,28 @@ public abstract class SkylarkList implements Iterable<Object> { return EvalUtils.prettyPrintValue(this); } + @Override + public boolean equals(Object object) { + if (this == object) { + return true; + } + if (!(object instanceof SkylarkList)) { + return false; + } + SkylarkList other = (SkylarkList) object; + if (this.isTuple() != other.isTuple()) { + return false; + } + return toList().equals(other.toList()); + } + + @Override + public int hashCode() { + return SkylarkList.class.hashCode() + + Boolean.valueOf(isTuple()).hashCode() + + 31 * toList().hashCode(); + } + // TODO(bazel-team): we should be very careful using this method. Check and remove // auto conversions on the Java-Skylark interface if possible. /** @@ -180,23 +202,6 @@ public abstract class SkylarkList implements Iterable<Object> { public String toString() { return EvalUtils.prettyPrintValue(this); } - - @Override - public int hashCode() { - return list.hashCode(); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (!(obj instanceof SimpleSkylarkList)) { - return false; - } - SimpleSkylarkList other = (SimpleSkylarkList) obj; - return other.list.equals(this.list); - } } /** |