Files
Dmitriy Novozhilov 02e327277e [FIR] Report VAL_REASSIGNMENT on assign to non-local vals
In this commit reporting on member properties in init section of class
  is not supported (see KT-55528)

^KT-55493 Fixed
2022-12-20 08:12:09 +00:00

42 lines
765 B
Kotlin
Vendored

// !CHECK_TYPE
interface A {
val x: CharSequence
fun foo(): String?
fun <T, F> bar(x: T, y: F): F?
}
interface B {
var x: String
fun foo(): String
fun <X, Y> bar(x: X, y: Y): Y
}
interface C {
val x: String
}
interface D1 : A, B
interface D2 : B, A
interface D3 : A, C
fun main(d1: D1, d2: D2, d3: D3) {
d1.x.checkType { _<String>() }
d1.x = ""
d1.foo().checkType { _<String>() }
d1.bar(1, "").checkType { _<String>() }
d2.x.checkType { _<String>() }
d2.x = ""
d2.foo().checkType { _<String>() }
d2.bar(1, "").checkType { _<String>() }
d3.x.checkType { _<String>() }
d3.<!VAL_REASSIGNMENT!>x<!> = ""
d3.foo().checkType { _<String?>() }
d3.bar(1, "").checkType { _<String?>() }
}