// WITH_STDLIB open class GrandParent { override fun equals(renamed: Any?): Boolean { return super.equals(renamed) } } open class Parent() : GrandParent() data class A(val a: IntArray) : Parent() { override fun equals(renamed: Any?): Boolean { if (this === renamed) return true if (javaClass != renamed?.javaClass) return false if (!super.equals(renamed)) return false renamed as A if (!a.contentEquals(renamed.a)) return false return true } override fun hashCode(): Int { return a.contentHashCode() } }