blob: 38979ba1f75feab5beac85d11db7b828f33055ee [file] [log] [blame]
class Example
{
var a1 = 0
public var a2: Int = 0
private var a3 = 0
var b1 = 0
private set
var b2 = 0
internal set
var b3 = 0
set
public var b4: Int = 0
public set
private var b5 = 0
private set
init {
a1 = 1
a2 = 1
a3 = 1
b1 = 1
b2 = 1
b3 = 1
b4 = 1
b5 = 1
foo { a1 = 1 }
bar()
}
private inline fun bar() { a1 = 1 }
}
inline fun foo(x: () -> Unit) = x()
// Every property should be accessed directly in this example because they all are final class properties with default accessors
// 0 INVOKESPECIAL Example\.set
// JVM_TEMPLATES
// ...except the access in `private inline fun`.
// 2 INVOKEVIRTUAL Example\.set
// JVM_IR_TEMPLATES
// ...including the access in `private inline fun` which we know is only called from `init`.
// 0 INVOKEVIRTUAL Example\.set