Private outer functions are now accessed via bridge methods. Added tests.
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
class C {
|
||||
private fun String.ext() : String = ""
|
||||
private fun f() {}
|
||||
|
||||
public fun foo() : String {
|
||||
{
|
||||
"".ext()
|
||||
f()
|
||||
}.invoke()
|
||||
|
||||
object : Runnable {
|
||||
public override fun run() {
|
||||
"".ext()
|
||||
f()
|
||||
}
|
||||
}.run()
|
||||
|
||||
Inner().innerFun()
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
private class Inner() {
|
||||
fun innerFun() {
|
||||
"".ext()
|
||||
f()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun box() = C().foo()
|
||||
@@ -0,0 +1,27 @@
|
||||
class C{
|
||||
private var v : Int = 0
|
||||
|
||||
public fun foo() : Int {
|
||||
{
|
||||
v = v + 1
|
||||
}.invoke()
|
||||
|
||||
object : Runnable {
|
||||
public override fun run() {
|
||||
v = v + 1
|
||||
}
|
||||
}.run()
|
||||
|
||||
Inner().innerFun()
|
||||
|
||||
return v
|
||||
}
|
||||
|
||||
private class Inner() {
|
||||
fun innerFun() {
|
||||
v = v + 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun box() = if (C().foo() == 3) "OK" else "NOT OK"
|
||||
Reference in New Issue
Block a user