| 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 |