From 7e9a897ef368a67f29f1f8bd3f399b717af6dc80 Mon Sep 17 00:00:00 2001 From: Vladimir Dolzhenko Date: Wed, 21 Jun 2023 11:24:04 +0200 Subject: [PATCH] Provide equals/hashCode based on psiElementSource #KT-59445 --- .../load/java/structure/impl/JavaElementImpl.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/compiler/resolution.common.jvm/src/org/jetbrains/kotlin/load/java/structure/impl/JavaElementImpl.java b/compiler/resolution.common.jvm/src/org/jetbrains/kotlin/load/java/structure/impl/JavaElementImpl.java index 361a1d74434..aa92b004ba4 100644 --- a/compiler/resolution.common.jvm/src/org/jetbrains/kotlin/load/java/structure/impl/JavaElementImpl.java +++ b/compiler/resolution.common.jvm/src/org/jetbrains/kotlin/load/java/structure/impl/JavaElementImpl.java @@ -23,6 +23,8 @@ import org.jetbrains.kotlin.load.java.structure.impl.source.JavaElementPsiSource import org.jetbrains.kotlin.load.java.structure.impl.source.JavaElementSourceFactory; import org.jetbrains.kotlin.load.java.structure.impl.source.JavaSourceFactoryOwner; +import java.util.Objects; + public abstract class JavaElementImpl implements JavaElement, JavaSourceFactoryOwner { protected final JavaElementPsiSource psiElementSource; @@ -43,12 +45,15 @@ public abstract class JavaElementImpl implements JavaEle @Override public int hashCode() { - return getPsi().hashCode(); + return psiElementSource.hashCode(); } @Override - public boolean equals(Object obj) { - return obj instanceof JavaElementImpl && getPsi().equals(((JavaElementImpl) obj).getPsi()); + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + JavaElementImpl element = (JavaElementImpl) o; + return Objects.equals(psiElementSource, element.psiElementSource); } @Override