diff --git a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUMethod.kt b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUMethod.kt index 85fbd148fce..d4bbb1f8a07 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUMethod.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUMethod.kt @@ -185,6 +185,23 @@ private class UastFakeLightMethod(private val original: KtFunction, containingCl } override fun getParent(): PsiElement? = containingClass + + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (javaClass != other?.javaClass) return false + + other as UastFakeLightMethod + + if (original != other.original) return false + + return true + } + + override fun hashCode(): Int { + var result = super.hashCode() + result = 31 * result + original.hashCode() + return result + } } class KotlinUMethodWithFakeLightDelegate(val original: KtFunction, containingLightClass: PsiClass, givenParent: UElement?) : diff --git a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUMethod.kt.191 b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUMethod.kt.191 index d4f11d6f361..263b29e2ac5 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUMethod.kt.191 +++ b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUMethod.kt.191 @@ -188,6 +188,23 @@ private class UastFakeLightMethod(private val original: KtFunction, containingCl } override fun getParent(): PsiElement? = containingClass + + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (javaClass != other?.javaClass) return false + + other as UastFakeLightMethod + + if (original != other.original) return false + + return true + } + + override fun hashCode(): Int { + var result = super.hashCode() + result = 31 * result + original.hashCode() + return result + } } class KotlinUMethodWithFakeLightDelegate(val original: KtFunction, containingLightClass: PsiClass, givenParent: UElement?) : diff --git a/plugins/uast-kotlin/tests/KotlinUastApiTest.kt b/plugins/uast-kotlin/tests/KotlinUastApiTest.kt index 69190e91c57..5b232cd145e 100644 --- a/plugins/uast-kotlin/tests/KotlinUastApiTest.kt +++ b/plugins/uast-kotlin/tests/KotlinUastApiTest.kt @@ -638,6 +638,9 @@ class KotlinUastApiTest : AbstractKotlinUastTest() { function10 -> PsiType:T function11 -> PsiType:T """.trimIndent(), methods.joinToString("\n") { m -> m.name + " -> " + m.returnType.toString() }) + for (method in methods.drop(3)) { + assertEquals("assert return types comparable for '${method.name}'", method.returnType, method.returnType) + } } }