blob: e0c25c4235227c8379655d24dc77b2557a835d5e [file]
// LANGUAGE:-ProhibitAccessToInvisibleSetterFromDerivedClass
// MODULE: m1
// FILE: base.kt
open class Base {
var foo: String = ""
internal set
}
// MODULE: m2(m1)
// FILE: derived1.kt
fun testBase(b: Base) {
<!INVISIBLE_SETTER!>b.foo<!> = "other"
}
open class Derived1(foo: String) : Base() {
init {
<!INVISIBLE_SETTER_FROM_DERIVED!>this.<!DEBUG_INFO_LEAKING_THIS!>foo<!><!> = foo
}
fun bar(param: String) {
<!INVISIBLE_SETTER_FROM_DERIVED!>foo<!> = param
<!INVISIBLE_SETTER_FROM_DERIVED!>this.foo<!> = param
}
}
open class Derived2 : Derived1("")
fun testFunction(d: Derived1) {
<!INVISIBLE_SETTER_FROM_DERIVED!>d.foo<!> = "other"
}
// MODULE: m3(m2, m1)
// FILE: derived2.kt
fun testDerivied1(d: Derived1) {
<!INVISIBLE_SETTER!>d.foo<!> = "other"
}
fun testDerivied2(d: Derived2) {
<!INVISIBLE_SETTER!>d.foo<!> = "other"
}
class Derivied3(foo: String) : Derived2() {
init {
<!INVISIBLE_SETTER_FROM_DERIVED!>this.foo<!> = foo
}
fun bar1(param: String) {
<!INVISIBLE_SETTER_FROM_DERIVED!>foo<!> = param
<!INVISIBLE_SETTER_FROM_DERIVED!>this.foo<!> = param
}
}