Fix for KT-10729: Accessing private const field in companion object from a function in the same companion generates run-time error

This commit is contained in:
Michael Bogdanov
2016-02-01 14:04:24 +03:00
parent 9790afb1bd
commit 5f38c1d571
10 changed files with 94 additions and 4 deletions
@@ -0,0 +1,10 @@
class My {
companion object {
private val my: String = "O"
get() = field + "K"
fun getValue() = my
}
}
fun box() = My.getValue()
@@ -0,0 +1,10 @@
class My {
companion object {
private val my: String = "O"
get() = { field }() + "K"
fun getValue() = my
}
}
fun box() = My.getValue()
+20
View File
@@ -0,0 +1,20 @@
class IntentionsBundle {
companion object {
fun message(key: String): String {
return key + BUNDLE
}
fun message2(key: String): String {
return { key + BUNDLE }()
}
private const val BUNDLE = "K"
}
}
fun box(): String {
if (IntentionsBundle.message("O") != "OK") return "fail 1: ${IntentionsBundle.message("O")}"
return IntentionsBundle.message2("O")
}
@@ -0,0 +1,5 @@
import test.*
fun box(): String {
return IntentionsBundle.message()
}
@@ -0,0 +1,14 @@
package test
class IntentionsBundle {
companion object {
internal inline fun message(): String {
return KEY + BUNDLE
}
private const val BUNDLE = "K"
protected const val KEY = "O"
}
}