@file:OptIn(kotlin.native.runtime.NativeRuntimeApi::class) import kotlin.native.ref.WeakReference import kotlinx.cinterop.* import kotlin.test.* import objcTests.* @Test fun testKT42482() { // Attempt to make the state predictable: kotlin.native.runtime.GC.collect() kt42482Deallocated = false assertFalse(kt42482Deallocated); { assertEquals(41, KT42482().fortyTwo()) val obj: KT42482 = KT42482Impl() assertEquals(42, obj.fortyTwo()) kt42482Swizzle(obj) assertEquals(43, obj.fortyTwo()) // Test retain and release on swizzled object: kt42482Global = obj kt42482Global = null }() kotlin.native.runtime.GC.collect() assertTrue(kt42482Deallocated) } class KT42482Impl : KT42482() { override fun fortyTwo() = 42 }