aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/syntax
diff options
context:
space:
mode:
authorGravatar Francois-Rene Rideau <tunes@google.com>2015-04-25 19:28:15 +0000
committerGravatar Han-Wen Nienhuys <hanwen@google.com>2015-04-27 18:51:42 +0000
commit7a9721440a1adfa6757b946e87d9865a55b26368 (patch)
treecae5fae5169b3eb64cbeb4191c360ce8d1f39429 /src/main/java/com/google/devtools/build/lib/syntax
parent307ecd815aa02768b7318888a3a9126a041111c9 (diff)
Fix SkylarkList#equals
-- MOS_MIGRATED_REVID=92063536
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/syntax')
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/SkylarkList.java39
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);
- }
}
/**