| Index: editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/type/TypeImpl.java
|
| diff --git a/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/type/TypeImpl.java b/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/type/TypeImpl.java
|
| index 82d54118ac04159f7e040f64e5c6143e6d77607c..a2198f92716603e9193a357959a287072ee3ba8e 100644
|
| --- a/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/type/TypeImpl.java
|
| +++ b/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/type/TypeImpl.java
|
| @@ -30,8 +30,8 @@ public abstract class TypeImpl implements Type {
|
| // TODO (jwren) Move this class to "com.google.dart.engine.utilities.collection"
|
| public class TypePair {
|
| private Type firstType;
|
| -
|
| private Type secondType;
|
| + private int cachedHashCode;
|
|
|
| TypePair(Type firstType, Type secondType) {
|
| this.firstType = firstType;
|
| @@ -56,15 +56,20 @@ public abstract class TypeImpl implements Type {
|
| // Guava's Objects class?
|
| @Override
|
| public int hashCode() {
|
| - int firstHashCode = 0;
|
| - if (firstType != null) {
|
| - firstHashCode = firstType.getElement() == null ? 0 : firstType.getElement().hashCode();
|
| - }
|
| - int secondHashCode = 0;
|
| - if (secondType != null) {
|
| - secondHashCode = secondType.getElement() == null ? 0 : secondType.getElement().hashCode();
|
| + if (cachedHashCode == 0) {
|
| + int firstHashCode = 0;
|
| + if (firstType != null) {
|
| + Element firstElement = firstType.getElement();
|
| + firstHashCode = firstElement == null ? 0 : firstElement.hashCode();
|
| + }
|
| + int secondHashCode = 0;
|
| + if (secondType != null) {
|
| + Element secondElement = secondType.getElement();
|
| + secondHashCode = secondElement == null ? 0 : secondElement.hashCode();
|
| + }
|
| + cachedHashCode = firstHashCode + secondHashCode;
|
| }
|
| - return firstHashCode + secondHashCode;
|
| + return cachedHashCode;
|
| }
|
| }
|
|
|
|
|