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(); } }