Provide equals/hashCode based on psiElementSource

#KT-59445
This commit is contained in:
Vladimir Dolzhenko
2023-06-21 11:24:04 +02:00
committed by Space Team
parent d0477a6a30
commit 7e9a897ef3
@@ -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.JavaElementSourceFactory;
import org.jetbrains.kotlin.load.java.structure.impl.source.JavaSourceFactoryOwner; import org.jetbrains.kotlin.load.java.structure.impl.source.JavaSourceFactoryOwner;
import java.util.Objects;
public abstract class JavaElementImpl<Psi extends PsiElement> implements JavaElement, JavaSourceFactoryOwner { public abstract class JavaElementImpl<Psi extends PsiElement> implements JavaElement, JavaSourceFactoryOwner {
protected final JavaElementPsiSource<Psi> psiElementSource; protected final JavaElementPsiSource<Psi> psiElementSource;
@@ -43,12 +45,15 @@ public abstract class JavaElementImpl<Psi extends PsiElement> implements JavaEle
@Override @Override
public int hashCode() { public int hashCode() {
return getPsi().hashCode(); return psiElementSource.hashCode();
} }
@Override @Override
public boolean equals(Object obj) { public boolean equals(Object o) {
return obj instanceof JavaElementImpl && getPsi().equals(((JavaElementImpl) obj).getPsi()); if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
JavaElementImpl<?> element = (JavaElementImpl<?>) o;
return Objects.equals(psiElementSource, element.psiElementSource);
} }
@Override @Override