From 3725ef8cdf5298eadc05731de42ae0d6212cd5bb Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Tue, 6 Oct 2015 11:09:31 +0300 Subject: [PATCH] Open / data forbidden code fix (eval4j) --- eval4j/src/org/jetbrains/eval4j/members.kt | 25 ++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/eval4j/src/org/jetbrains/eval4j/members.kt b/eval4j/src/org/jetbrains/eval4j/members.kt index 25993291625..51032a3fb1b 100644 --- a/eval4j/src/org/jetbrains/eval4j/members.kt +++ b/eval4j/src/org/jetbrains/eval4j/members.kt @@ -21,12 +21,33 @@ import org.jetbrains.org.objectweb.asm.Opcodes.* import org.jetbrains.org.objectweb.asm.* import org.jetbrains.org.objectweb.asm.tree.FieldInsnNode -open data class MemberDescription( +open class MemberDescription protected constructor( val ownerInternalName: String, val name: String, val desc: String, val isStatic: Boolean -) +) { + override fun equals(other: Any?): Boolean { + if (this === other) return true + return (other is MemberDescription + && ownerInternalName == other.ownerInternalName + && name == other.name + && desc == other.desc + && isStatic == other.isStatic + ) + } + + override fun hashCode(): Int { + var result = 13; + result = result * 23 + ownerInternalName.hashCode() + result = result * 23 + name.hashCode() + result = result * 23 + desc.hashCode() + result = result * 23 + isStatic.hashCode() + return result + } + + override fun toString() = "MemberDescription(ownerInternalName = $ownerInternalName, name = $name, desc = $desc, isStatic = $isStatic)" +} val MemberDescription.ownerType: Type get() = Type.getObjectType(ownerInternalName)