c0789b5207
In 1.7.20 we used the nearest Java-based receiver for such field references in backend. Now we are using use-site receiver again, it can lead to accidental usage of derived class property backing field. This is effectively a revert of KT-49507 fix, see commits: -fa914f20-b0a6508d#KT-54393 Fixed #KT-49507 Planned #KT-52338 Planned
22 lines
334 B
Kotlin
Vendored
22 lines
334 B
Kotlin
Vendored
class Box<out T : Foo> {
|
|
constructor(foo: T) /* primary */ {
|
|
super/*Any*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
val foo: T
|
|
field = foo
|
|
get
|
|
|
|
val str: String
|
|
get(): String {
|
|
var foo: Foo = <this>.<get-foo>()
|
|
when {
|
|
foo is Buz -> return foo /*as Buz */.#str /*!! String */
|
|
}
|
|
return ""
|
|
}
|
|
|
|
}
|