diff options
author | 2017-07-11 09:41:50 +0200 | |
---|---|---|
committer | 2017-07-11 10:56:24 +0200 | |
commit | 5ed49b0da44a61cf178f6ea42db647ec7804b774 (patch) | |
tree | 09f3cd318664d6ab1e2984d5e6fca85755ce1734 /src/main/java/com/google | |
parent | e9b39df07f693f44bed5df13e4d38c1d774995f1 (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.java | 13 |
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); + } } |