implement hashcode when implementing equals.

git-svn-id: https://google-guice.googlecode.com/svn/trunk@1464 d779f126-a31b-0410-b53b-1d3aecad763e
diff --git a/core/src/com/google/inject/internal/ProviderMethod.java b/core/src/com/google/inject/internal/ProviderMethod.java
index 53526fb..c732369 100644
--- a/core/src/com/google/inject/internal/ProviderMethod.java
+++ b/core/src/com/google/inject/internal/ProviderMethod.java
@@ -22,6 +22,7 @@
 import com.google.inject.PrivateBinder;
 import com.google.inject.Provider;
 import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.Objects;
 import com.google.inject.internal.util.StackTraceElements;
 import com.google.inject.spi.Dependency;
 import com.google.inject.spi.ProviderWithDependencies;
@@ -127,4 +128,12 @@
       return false;
     }
   }
+  
+  @Override
+  public int hashCode() {
+    // Avoid calling hashCode on 'instance', which is a user-object
+    // that might not be expecting it.
+    // (We need to call equals, so we do.  But we can avoid hashCode.)
+    return Objects.hashCode(method);
+  }
 }