From 1d917c757c1b84d374d59aea65234032b3dfcd17 Mon Sep 17 00:00:00 2001 From: Baratynskiy Date: Wed, 14 Dec 2016 12:26:22 +0300 Subject: [PATCH] Issue #103 fixed --- .../structure/NetBeansJavaTypeParameter.kt | 37 ++++++++++++++----- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/jetbrains/kotlin/resolve/lang/java/structure/NetBeansJavaTypeParameter.kt b/src/main/java/org/jetbrains/kotlin/resolve/lang/java/structure/NetBeansJavaTypeParameter.kt index 96d4372949be..48c68306d753 100644 --- a/src/main/java/org/jetbrains/kotlin/resolve/lang/java/structure/NetBeansJavaTypeParameter.kt +++ b/src/main/java/org/jetbrains/kotlin/resolve/lang/java/structure/NetBeansJavaTypeParameter.kt @@ -31,18 +31,37 @@ import javax.lang.model.element.TypeParameterElement Created on Sep 7, 2016 */ -class NetBeansJavaTypeParameter(elementHandle : ElemHandle, project : Project) : +class NetBeansJavaTypeParameter(elementHandle: ElemHandle, project: Project) : NetBeansJavaClassifier(elementHandle, project), JavaTypeParameter { - override val name : Name + override val name: Name get() = elementHandle.getName(project) - - override val upperBounds : Collection + + override val upperBounds: Collection get() = elementHandle.getUpperBounds(project) - - override val annotations : Collection + + override val annotations: Collection get() = emptyList() - - override fun findAnnotation(fqName : FqName) : JavaAnnotation? = null - override fun toString() : String = name.asString() + + override fun findAnnotation(fqName: FqName): JavaAnnotation? = null + override fun toString(): String = name.asString() + + override fun equals(other: Any?): Boolean { + if (other !is NetBeansJavaTypeParameter) return false + + val bound = upperBounds.firstOrNull()?.canonicalText ?: "" + val otherBound = other.upperBounds.firstOrNull()?.canonicalText ?: "" + + val fullName = "$name $bound" + val otherFullName = "${other.name} $otherBound" + + return fullName == otherFullName + } + + override fun hashCode(): Int { + val bound = upperBounds.firstOrNull()?.canonicalText ?: "" + + return "$name $bound".hashCode() + } + } \ No newline at end of file