From 2c4c1d7cc6db42f2809147fb6fa52e7878028129 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Fri, 2 Aug 2013 16:23:56 +0400 Subject: [PATCH] hashCode, equals, toString for JavaElement --- .../resolve/java/structure/JavaElementImpl.java | 15 +++++++++++++++ .../lang/resolve/java/structure/JavaType.java | 10 ++++++++++ .../java/structure/JavaTypeSubstitutor.java | 17 ++++++++++++++++- 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaElementImpl.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaElementImpl.java index e12a7917d81..8b9a3cd9d8d 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaElementImpl.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaElementImpl.java @@ -31,4 +31,19 @@ public abstract class JavaElementImpl implements JavaElement { public PsiElement getPsi() { return psiElement; } + + @Override + public int hashCode() { + return getPsi().hashCode(); + } + + @Override + public boolean equals(Object obj) { + return obj instanceof JavaElement && getPsi().equals(((JavaElement) obj).getPsi()); + } + + @Override + public String toString() { + return getClass().getSimpleName() + ": " + getPsi(); + } } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaType.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaType.java index 757fdb679a0..67f43f898d8 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaType.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaType.java @@ -67,8 +67,18 @@ public abstract class JavaType { }); } + @Override + public int hashCode() { + return getPsi().hashCode(); + } + @Override public boolean equals(Object obj) { return obj instanceof JavaType && getPsi().equals(((JavaType) obj).getPsi()); } + + @Override + public String toString() { + return getClass().getSimpleName() + ": " + getPsi(); + } } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaTypeSubstitutor.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaTypeSubstitutor.java index 09e36abfb03..826f833c5cf 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaTypeSubstitutor.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaTypeSubstitutor.java @@ -33,6 +33,21 @@ public class JavaTypeSubstitutor { @NotNull public JavaType substitute(@NotNull JavaType type) { - return JavaType.create(psiSubstitutor.substitute(type.getPsi())); + return JavaType.create(getPsi().substitute(type.getPsi())); + } + + @Override + public int hashCode() { + return getPsi().hashCode(); + } + + @Override + public boolean equals(Object obj) { + return obj instanceof JavaTypeSubstitutor && getPsi().equals(((JavaTypeSubstitutor) obj).getPsi()); + } + + @Override + public String toString() { + return getClass().getSimpleName() + ": " + getPsi(); } }