| // IGNORE_BACKEND: JVM | |
| // ^^^ CIRCULAR REFERENCE: java.lang.AssertionError: D8 dexing warning: Ignoring an implementation of the method `void foo.A.setParam(int)` because it has multiple definitions] | |
| // FILE: lib.kt | |
| package foo | |
| import kotlin.test.* | |
| class A() { | |
| public var param: Int = 0 | |
| inline public fun setParam(value: Int) { | |
| val b = B(value) | |
| b.setParam(this) | |
| } | |
| } | |
| class B(val value: Int) { | |
| inline fun setParam(a: A) { | |
| a.param = this.value | |
| } | |
| } | |
| // FILE: main.kt | |
| package foo | |
| import kotlin.test.* | |
| // CHECK_BREAKS_COUNT: function=box count=0 | |
| // CHECK_LABELS_COUNT: function=box name=$l$block count=0 | |
| fun box(): String { | |
| val a = A() | |
| a.setParam(10) | |
| assertEquals(10, a.param) | |
| return "OK" | |
| } |