Allow inferring property type from its getter
#KT-550 Fixed
This commit is contained in:
+41
@@ -0,0 +1,41 @@
|
||||
// !CHECK_TYPE
|
||||
interface A {
|
||||
val x: Int
|
||||
|
||||
val z: Comparable<*>
|
||||
}
|
||||
|
||||
open class B {
|
||||
open var y = ""
|
||||
|
||||
open val z: CharSequence = ""
|
||||
}
|
||||
|
||||
class C : B(), A {
|
||||
override val x
|
||||
get() = 1
|
||||
|
||||
override var y
|
||||
get() = super.y
|
||||
set(value) {
|
||||
value checkType { _<String>() }
|
||||
}
|
||||
|
||||
override var z
|
||||
get() = ""
|
||||
set(value) {
|
||||
value checkType { _<String>() }
|
||||
}
|
||||
}
|
||||
|
||||
fun foo(c: C) {
|
||||
c.x checkType { _<Int>() }
|
||||
c.y checkType { _<String>() }
|
||||
c.z checkType { _<String>() }
|
||||
|
||||
c.y = ""
|
||||
c.y = <!CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>
|
||||
|
||||
c.z = ""
|
||||
c.z = <!CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>
|
||||
}
|
||||
Reference in New Issue
Block a user