Postpone companion object field visibility

Have to reconsider this issue because of interface companion objects.
This commit is contained in:
Dmitry Petrov
2018-09-25 17:47:54 +03:00
parent 792ff3c39e
commit 0dd04c3424
15 changed files with 241 additions and 3 deletions
@@ -1,5 +1,4 @@
// !LANGUAGE: +ProperVisibilityForCompanionObjectInstanceField
// IGNORE_BACKEND: JS, JS_IR, JVM_IR
inline fun on(body: () -> Any) = body().toString()
@@ -0,0 +1,16 @@
// LANGUAGE_VERSION: 1.2
inline fun on(body: () -> Any) = body().toString()
class A {
fun test() = foo()
private companion object {
private fun foo() = on { this }
override fun toString() = "OK"
}
}
fun box() = A().test()
@@ -0,0 +1,16 @@
// LANGUAGE_VERSION: 1.3
inline fun on(body: () -> Any) = body().toString()
class A {
fun test() = foo()
private companion object {
private fun foo() = on { this }
override fun toString() = "OK"
}
}
fun box() = A().test()
@@ -1,5 +1,4 @@
// !LANGUAGE: +ProperVisibilityForCompanionObjectInstanceField
// IGNORE_BACKEND: JS, JS_IR, JVM_IR
interface A {
fun test() = ok()
@@ -0,0 +1,13 @@
// LANGUAGE_VERSION: 1.2
interface A {
fun test() = ok()
private companion object {
fun ok() = "OK"
}
}
class C : A
fun box() = C().test()
@@ -0,0 +1,13 @@
// LANGUAGE_VERSION: 1.3
interface A {
fun test() = ok()
private companion object {
fun ok() = "OK"
}
}
class C : A
fun box() = C().test()