From a4392c9fc944e9d1bfc9fe165b7664c31d820ff7 Mon Sep 17 00:00:00 2001 From: "Maxim.Mossienko" Date: Wed, 6 Apr 2016 17:59:58 +0200 Subject: [PATCH] ensure Value parameter of an index has proper equals and hashcode --- .../java/stubs/impl/PsiJavaFileStubImpl.java | 20 ++++++++++++++++ .../resolve/GroovyTraitFieldsFileIndex.java | 24 ++++++++++++++++++- .../resolve/GroovyTraitMethodsFileIndex.java | 2 +- 3 files changed, 44 insertions(+), 2 deletions(-) diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiJavaFileStubImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiJavaFileStubImpl.java index e7c83d772607..f86c266b385c 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiJavaFileStubImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiJavaFileStubImpl.java @@ -75,4 +75,24 @@ public class PsiJavaFileStubImpl extends PsiFileStubImpl implements public String toString() { return "PsiJavaFileStub [" + myPackageName + "]"; } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + PsiJavaFileStubImpl stub = (PsiJavaFileStubImpl)o; + + if (myCompiled != stub.myCompiled) return false; + if (myPackageName != null ? !myPackageName.equals(stub.myPackageName) : stub.myPackageName != null) return false; + + return true; + } + + @Override + public int hashCode() { + int result = myPackageName != null ? myPackageName.hashCode() : 0; + result = 31 * result + (myCompiled ? 1 : 0); + return result; + } } \ No newline at end of file diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/resolve/GroovyTraitFieldsFileIndex.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/resolve/GroovyTraitFieldsFileIndex.java index e245f2fc4243..e4a94bad2441 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/resolve/GroovyTraitFieldsFileIndex.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/resolve/GroovyTraitFieldsFileIndex.java @@ -105,7 +105,7 @@ public class GroovyTraitFieldsFileIndex @Override public int getVersion() { - return 3; + return 4; } private static Collection index(FileContent inputData) { @@ -212,5 +212,27 @@ public class GroovyTraitFieldsFileIndex this.typeString = typeString; this.name = name; } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + TraitFieldDescriptor that = (TraitFieldDescriptor)o; + + if (flags != that.flags) return false; + if (!typeString.equals(that.typeString)) return false; + if (!name.equals(that.name)) return false; + + return true; + } + + @Override + public int hashCode() { + int result = (int)flags; + result = 31 * result + typeString.hashCode(); + result = 31 * result + name.hashCode(); + return result; + } } } \ No newline at end of file diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/resolve/GroovyTraitMethodsFileIndex.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/resolve/GroovyTraitMethodsFileIndex.java index 5ff51581365b..6fd998d2c3b2 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/resolve/GroovyTraitMethodsFileIndex.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/resolve/GroovyTraitMethodsFileIndex.java @@ -76,7 +76,7 @@ public class GroovyTraitMethodsFileIndex extends SingleEntryFileBasedIndexExtens @Override public int getVersion() { - return ClassFileStubBuilder.STUB_VERSION; + return ClassFileStubBuilder.STUB_VERSION + 1; } @NotNull