// DISABLE_NATIVE: gcType=NOOP import kotlin.native.ref.WeakReference import kotlin.native.runtime.GC import kotlin.test.* @OptIn(kotlin.experimental.ExperimentalNativeApi::class) private fun makeWeakRef(create: () -> Any) = WeakReference(create()) @OptIn(kotlin.native.runtime.NativeRuntimeApi::class, kotlin.experimental.ExperimentalNativeApi::class) private fun ensureGetsCollected(create: () -> Any) { val ref = makeWeakRef(create) GC.collect() assertNull(ref.get()) } class LazyCapturesThis { fun foo() = 42 val bar by lazy { foo() } } @Test fun test() { ensureGetsCollected { LazyCapturesThis() } ensureGetsCollected { val l = LazyCapturesThis() l.bar l } }