Files
kotlin-fork/compiler/testData/codegen/box/dataClasses/kt49715.kt
T
Xin Wang 24105139ea Handle methods descriptor clash in data class
1. Extension functions declared in data classes are generated earlier by `generateMembersDeclaredInClassBody`
2. Extension functions fake override from parent class are generated earlier by `generateFakeOverrideMemberDeclarations`

So it is safe to filter out extension functions inside `generateAdditionalMembersForDataClass`

 #KT-49715
 #KT-51798
2022-04-05 01:06:57 +02:00

23 lines
473 B
Kotlin
Vendored

// IGNORE_BACKEND_FIR: JVM_IR
// FIR status: [IR VALIDATION] Duplicate IR node: FUN GENERATED_DATA_CLASS_MEMBER name:toString
// CHECK_BYTECODE_LISTING
// WITH_STDLIB
import kotlin.test.*
interface A {
fun Any.toString(): String = "hello"
}
data class B(val x: Int) : A {
fun Any.hi() = "hi"
}
fun box(): String {
val b = B(1)
assertEquals("B(x=1)", b.toString())
assertTrue(b == B(1))
assertTrue(1.hashCode() == b.hashCode())
return "OK"
}