Overridable val should not be treated as constant

#KT-9443 fixed
This commit is contained in:
Alexey Tsvetkov
2015-10-26 18:04:22 +03:00
parent 0a69cca066
commit 294559a94f
6 changed files with 56 additions and 0 deletions
@@ -0,0 +1,18 @@
abstract class BaseClass {
protected open val menuId: Int = 0
public fun run(): Pair<String, Boolean> =
"$menuId" to (menuId == 0)
}
class ImplClass: BaseClass() {
override val menuId: Int = 3
}
public fun box(): String {
val result = ImplClass().run()
if (result != ("3" to false)) return "Fail: $result"
return "OK"
}
@@ -13,6 +13,12 @@ class A {
// val prop4: 2
val prop4 = A.a + 1
// val prop7: 0
open val prop7 = 0
// val prop8: null
val prop8 = prop7
companion object {
val a = 1
}