JVM_IR: avoid redundant accessors in private inline funs

Their call sites are all in the same file, so we can check whether the
declarations used in the inline function are accessible from all the
places where it will be inlined.

 #KT-48736 Fixed
This commit is contained in:
pyos
2021-09-13 19:03:01 +02:00
committed by Alexander Udalov
parent ef684c0dff
commit d07070e184
11 changed files with 161 additions and 47 deletions
@@ -0,0 +1,17 @@
package a
open class A {
protected fun protectedFun(): String = "OK"
}
class BSamePackage: A() {
// known to only be called within `BSamePackage`, so accessors are redundant
private inline fun test(): String = protectedFun()
fun onlyTestCallSite() = test()
}
// JVM_TEMPLATES
// 2 INVOKESTATIC a/BSamePackage.access
// JVM_IR_TEMPLATES
// 0 INVOKESTATIC a/BSamePackage.access