aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/Attribute.java36
1 files changed, 20 insertions, 16 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Attribute.java b/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
index 61878dd4ef..b7f2ca5f42 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
@@ -1836,6 +1836,8 @@ public final class Attribute implements Comparable<Attribute> {
private final ImmutableList<RuleAspect<?>> aspects;
+ private final int hashCode;
+
/**
* Constructs a rule attribute with the specified name, type and default value.
*
@@ -1895,6 +1897,21 @@ public final class Attribute implements Comparable<Attribute> {
this.allowedValues = allowedValues;
this.requiredProviders = requiredProviders;
this.aspects = aspects;
+ this.hashCode = Objects.hash(
+ name,
+ type,
+ propertyFlags,
+ defaultValue,
+ configTransition,
+ splitTransitionProvider,
+ allowedRuleClassesForLabels,
+ allowedRuleClassesForLabelsWarning,
+ allowedFileTypesForLabels,
+ validityPredicate,
+ condition,
+ allowedValues,
+ requiredProviders,
+ aspects);
}
/**
@@ -2261,7 +2278,8 @@ public final class Attribute implements Comparable<Attribute> {
return false;
}
Attribute attribute = (Attribute) o;
- return Objects.equals(name, attribute.name)
+ return Objects.equals(hashCode, attribute.hashCode)
+ && Objects.equals(name, attribute.name)
&& Objects.equals(type, attribute.type)
&& Objects.equals(propertyFlags, attribute.propertyFlags)
&& Objects.equals(defaultValue, attribute.defaultValue)
@@ -2280,21 +2298,7 @@ public final class Attribute implements Comparable<Attribute> {
@Override
public int hashCode() {
- return Objects.hash(
- name,
- type,
- propertyFlags,
- defaultValue,
- configTransition,
- splitTransitionProvider,
- allowedRuleClassesForLabels,
- allowedRuleClassesForLabelsWarning,
- allowedFileTypesForLabels,
- validityPredicate,
- condition,
- allowedValues,
- requiredProviders,
- aspects);
+ return hashCode;
}
/**