| // IGNORE_BACKEND: JVM_IR |
| // ^^^ CIRCULAR REFERENCE: java.lang.AssertionError: D8 dexing warning: Ignoring an implementation of the method `int foo.IntPair.getFst()` because it has multiple definitions |
| package foo |
| import kotlin.test.* |
| |
| // CHECK_CONTAINS_NO_CALLS: myAdd |
| |
| internal data class IntPair(public var fst: Int, public var snd: Int) { |
| inline public fun getFst(): Int { return fst } |
| inline public fun setFst(v: Int) { fst = v } |
| |
| inline public fun getSnd(): Int { return this.snd } |
| inline public fun setSnd(v: Int) { this.snd = v } |
| } |
| |
| // CHECK_BREAKS_COUNT: function=myAdd count=0 |
| // CHECK_LABELS_COUNT: function=myAdd name=$l$block count=0 |
| internal fun myAdd(p: IntPair, toFst: Int, toSnd: Int) { |
| val fst = p.getFst() |
| p.setFst(fst + toFst) |
| |
| val snd = p.getSnd() |
| p.setSnd(snd + toSnd) |
| } |
| |
| fun box(): String { |
| val p = IntPair(0, 0) |
| myAdd(p, 1, 2) |
| assertEquals(IntPair(1, 2), p) |
| |
| return "OK" |
| } |