diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/AnnotationsProvider.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/AnnotationsProvider.kt index 5527f2b4e82..078043d6bf7 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/AnnotationsProvider.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/AnnotationsProvider.kt @@ -13,6 +13,5 @@ internal sealed interface AnnotationsProvider { fun annotationInfos(): List operator fun get(classId: ClassId): Collection operator fun contains(classId: ClassId): Boolean - fun isTheSameAs(other: Any?): Boolean fun ownerClassId(): ClassId? } diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/CompositeAnnotationsProvider.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/CompositeAnnotationsProvider.kt index d670f5d599d..f7dba428d3c 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/CompositeAnnotationsProvider.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/CompositeAnnotationsProvider.kt @@ -26,12 +26,11 @@ internal class CompositeAnnotationsProvider(val providers: Collection - myProvider.isTheSameAs(another) - } + other.providers == providers + + override fun hashCode(): Int = providers.hashCode() override fun ownerClassId(): ClassId? = null } diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/EmptyAnnotationsProvider.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/EmptyAnnotationsProvider.kt index 3e83d5c42ee..ae04edcb189 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/EmptyAnnotationsProvider.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/EmptyAnnotationsProvider.kt @@ -13,6 +13,5 @@ internal object EmptyAnnotationsProvider : AnnotationsProvider { override fun annotationInfos(): List = emptyList() override fun get(classId: ClassId): Collection = emptyList() override fun contains(classId: ClassId): Boolean = false - override fun isTheSameAs(other: Any?): Boolean = this === other override fun ownerClassId(): ClassId? = null } diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/SymbolAnnotationsProvider.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/SymbolAnnotationsProvider.kt index e690b7b60b2..8fd67ed15b9 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/SymbolAnnotationsProvider.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/SymbolAnnotationsProvider.kt @@ -36,12 +36,14 @@ internal class SymbolAnnotationsProvider( annotatedSymbol.hasAnnotation(classId, annotationUseSiteTargetFilter) } - override fun isTheSameAs(other: Any?): Boolean = other === this || + override fun equals(other: Any?): Boolean = other === this || other is SymbolAnnotationsProvider<*> && other.ktModule == ktModule && other.annotationUseSiteTargetFilter == annotationUseSiteTargetFilter && annotatedSymbolPointer.pointsToTheSameSymbolAs(other.annotatedSymbolPointer) + override fun hashCode(): Int = annotatedSymbolPointer.hashCode() + override fun ownerClassId(): ClassId? = withAnnotatedSymbol { annotatedSymbol -> (annotatedSymbol as? KtClassLikeSymbol)?.classIdIfNonLocal } diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/SymbolLightLazyAnnotation.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/SymbolLightLazyAnnotation.kt index 05fa4a57d0d..5bd39578a62 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/SymbolLightLazyAnnotation.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/SymbolLightLazyAnnotation.kt @@ -55,7 +55,7 @@ internal class SymbolLightLazyAnnotation( other.annotationApplication.index == annotationApplication.index && other.annotationApplication.useSiteTarget == annotationApplication.useSiteTarget && other.annotationApplication.isCallWithArguments == annotationApplication.isCallWithArguments && - annotationsProvider.isTheSameAs(other.annotationsProvider) && + other.annotationsProvider == annotationsProvider && other.parent == parent override fun hashCode(): Int = fqName.hashCode()