From 9359d0aab457213922af067a0abc59e89a9a412c Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Wed, 8 Jun 2016 14:20:09 +0300 Subject: [PATCH] Compare anonymous classes with psi only to avoid counting qualified name --- .../KtLightClassForAnonymousDeclaration.kt | 16 ++++++++++++++++ .../asJava/KtLightClassForExplicitDeclaration.kt | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/KtLightClassForAnonymousDeclaration.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/KtLightClassForAnonymousDeclaration.kt index 50c16b32acc..9dfbffe1977 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/KtLightClassForAnonymousDeclaration.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/KtLightClassForAnonymousDeclaration.kt @@ -18,6 +18,7 @@ package org.jetbrains.kotlin.asJava import com.intellij.openapi.diagnostic.Logger import com.intellij.psi.* +import com.intellij.psi.impl.InheritanceImplUtil import com.intellij.psi.search.GlobalSearchScope import com.intellij.reference.SoftReference import org.jetbrains.kotlin.name.FqName @@ -88,6 +89,21 @@ internal open class KtLightClassForAnonymousDeclaration(name: FqName, return false } + override fun getName(): String? = null + + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (other == null || javaClass != other.javaClass) return false + + val aClass = other as KtLightClassForAnonymousDeclaration + + return classOrObject == aClass.classOrObject + } + + override fun hashCode(): Int { + return classOrObject.hashCode() + } + companion object { private val LOG = Logger.getInstance(KtLightClassForAnonymousDeclaration::class.java) } diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/KtLightClassForExplicitDeclaration.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/KtLightClassForExplicitDeclaration.kt index 07c27c6a8f1..e5699567674 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/KtLightClassForExplicitDeclaration.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/KtLightClassForExplicitDeclaration.kt @@ -252,7 +252,7 @@ open class KtLightClassForExplicitDeclaration( override fun getTypeParameters(): Array = _typeParameterList.typeParameters - override fun getName(): String = classFqName.shortName().asString() + override fun getName(): String? = classFqName.shortName().asString() override fun getQualifiedName(): String = classFqName.asString()