diff --git a/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeArrayType.kt b/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeArrayType.kt index 42c5e717d1f..cf7b3395d81 100644 --- a/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeArrayType.kt +++ b/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeArrayType.kt @@ -32,8 +32,8 @@ class JeArrayType(override val psiType: PsiArrayType, override val psiManager: P override fun equals(other: Any?): Boolean{ if (this === other) return true if (other?.javaClass != javaClass) return false - return psiType == (other as? JeArrayType)?.psiType + return componentType == (other as? JeArrayType)?.componentType } - override fun hashCode() = psiType.hashCode() + override fun hashCode() = componentType.hashCode() } \ No newline at end of file diff --git a/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeClassInitializerExecutableTypeMirror.kt b/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeClassInitializerExecutableTypeMirror.kt index 46ad67f4de7..bb01ac46f2f 100644 --- a/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeClassInitializerExecutableTypeMirror.kt +++ b/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeClassInitializerExecutableTypeMirror.kt @@ -45,7 +45,8 @@ class JeClassInitializerExecutableTypeMirror(val initializer: PsiClassInitialize override fun equals(other: Any?): Boolean { if (this === other) return true if (other?.javaClass != javaClass) return false - return initializer == (other as JeClassInitializerExecutableTypeMirror).initializer + other as? JeClassInitializerExecutableTypeMirror ?: return false + return initializer == other.initializer } override fun hashCode() = initializer.hashCode() diff --git a/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeDeclaredType.kt b/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeDeclaredType.kt index 3f5637fb00e..a83044dfbfe 100644 --- a/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeDeclaredType.kt +++ b/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeDeclaredType.kt @@ -80,13 +80,22 @@ class JeDeclaredType( return PsiTypesUtil.getClassType(psiClass).toJeType(psiManager) } - override fun equals(other: Any?): Boolean{ + override fun equals(other: Any?): Boolean { if (this === other) return true if (other?.javaClass != javaClass) return false - return psiType == (other as? JeDeclaredType)?.psiType + other as? JeDeclaredType ?: return false + + return enclosingType == other.enclosingType + && psiClass == other.psiClass + && typeArguments == other.typeArguments + } + + override fun hashCode(): Int { + var result = enclosingType.hashCode() + result = 31 * result + psiClass.hashCode() + result = 31 * result + typeArguments.hashCode() + return result } - - override fun hashCode() = psiType.hashCode() override fun toString() = psiType.getCanonicalText(false) } \ No newline at end of file diff --git a/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeIntersectionType.kt b/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeIntersectionType.kt index e558635d489..4336ff12154 100644 --- a/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeIntersectionType.kt +++ b/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeIntersectionType.kt @@ -31,11 +31,11 @@ class JeIntersectionType( override fun getBounds() = psiType.superTypes.map { it.toJeType(psiManager) } - override fun equals(other: Any?): Boolean{ + override fun equals(other: Any?): Boolean { if (this === other) return true if (other?.javaClass != javaClass) return false - return psiType == (other as? JeIntersectionType)?.psiType + return bounds == (other as? JeIntersectionType)?.bounds } - override fun hashCode() = psiType.hashCode() + override fun hashCode() = bounds.hashCode() } \ No newline at end of file diff --git a/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeMethodExecutableTypeMirror.kt b/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeMethodExecutableTypeMirror.kt index 038d693511a..699b682b496 100644 --- a/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeMethodExecutableTypeMirror.kt +++ b/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeMethodExecutableTypeMirror.kt @@ -71,7 +71,7 @@ class JeMethodExecutableTypeMirror( override fun equals(other: Any?): Boolean { if (this === other) return true if (other?.javaClass != javaClass) return false - return psi == (other as JeMethodExecutableTypeMirror).psi + return psi == (other as? JeMethodExecutableTypeMirror)?.psi } override fun hashCode() = psi.hashCode()