24105139ea
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
23 lines
473 B
Kotlin
Vendored
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"
|
|
}
|