Allow inferring property type from its getter

#KT-550 Fixed
This commit is contained in:
Denis Zharkov
2016-11-14 14:17:39 +03:00
parent 51a5bf9f7e
commit 6fca46a452
32 changed files with 460 additions and 38 deletions
@@ -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<!>
}