04c5bbdcf8
Generate $delegate method as instance method in PropertyReferenceDelegationLowering, and remove dispatch receiver later in MakePropertyDelegateMethodsStatic. The method needs to be static to be non-overridable (see delegateMethodIsNonOverridable.kt), and public to be accessible in reflection. Otherwise we generated incorrect IR where a static function accessed an instance field of the containing class, which failed in multiple places including LocalDeclarationsLowering. #KT-48350 Fixed
15 lines
186 B
Kotlin
Vendored
15 lines
186 B
Kotlin
Vendored
// WITH_RUNTIME
|
|
|
|
val a = 1
|
|
val b = 2
|
|
|
|
open class C {
|
|
open val x by run { ::a }
|
|
open val y by ::a
|
|
}
|
|
|
|
class D : C() {
|
|
override val x by run { ::b }
|
|
override val y by ::b
|
|
}
|