| @file:OptIn(kotlin.experimental.ExperimentalNativeApi::class) |
| import kotlin.native.ref.WeakReference |
| |
| class Node { |
| var next: Node? = null |
| val value = "OK" |
| } |
| |
| fun box(): String { |
| val node1 = Node() |
| lateinit var weakNode3: WeakReference<Node> |
| repeat(2) { |
| val node2 = Node() |
| val node3 = Node() |
| if (it == 0) { |
| weakNode3 = WeakReference(node3) |
| node1.next = node2 |
| node2.next = node3 |
| } |
| } |
| |
| repeat(2) { |
| @OptIn(kotlin.native.runtime.NativeRuntimeApi::class) |
| kotlin.native.runtime.GC.collect() |
| } |
| |
| return weakNode3.value?.value ?: "FAIL" |
| } |