aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google
diff options
context:
space:
mode:
authorGravatar lberki <lberki@google.com>2017-07-11 09:41:50 +0200
committerGravatar László Csomor <laszlocsomor@google.com>2017-07-11 10:56:24 +0200
commit5ed49b0da44a61cf178f6ea42db647ec7804b774 (patch)
tree09f3cd318664d6ab1e2984d5e6fca85755ce1734 /src/main/java/com/google
parente9b39df07f693f44bed5df13e4d38c1d774995f1 (diff)
Make CcToolchainProvider#equals() be the object identity.
That's the only way to provide sane behavior both in Skylark and in Java. RELNOTES: None. PiperOrigin-RevId: 161496153
Diffstat (limited to 'src/main/java/com/google')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
index 29715a7d78..a41f06577f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
@@ -379,4 +379,17 @@ public final class CcToolchainProvider
public ImmutableList<String> getLinkOptions() {
return cppConfiguration.getLinkOptions(sysroot);
}
+
+ // Not all of CcToolchainProvider is exposed to Skylark, which makes implementing deep equality
+ // impossible: if Java-only parts are considered, the behavior is surprising in Skylark, if they
+ // are not, the behavior is surprising in Java. Thus, object identity it is.
+ @Override
+ public boolean equals(Object other) {
+ return other == this;
+ }
+
+ @Override
+ public int hashCode() {
+ return System.identityHashCode(this);
+ }
}