diff --git a/src/commonMain/kotlin/ru/landrafhomyak/utility/reference_counter/CloseableReferenceCounter.kt b/src/commonMain/kotlin/ru/landrafhomyak/utility/reference_counter/CloseableReferenceCounter.kt index ebc959b..0c6edc8 100644 --- a/src/commonMain/kotlin/ru/landrafhomyak/utility/reference_counter/CloseableReferenceCounter.kt +++ b/src/commonMain/kotlin/ru/landrafhomyak/utility/reference_counter/CloseableReferenceCounter.kt @@ -1,5 +1,7 @@ package ru.landrafhomyak.utility.reference_counter +import kotlin.contracts.InvocationKind +import kotlin.contracts.contract import kotlin.jvm.JvmName import kotlin.jvm.JvmStatic @@ -13,9 +15,13 @@ public class CloseableReferenceCounter : MayBeClosedReferenceCounter { } public companion object { + @Suppress("LEAKED_IN_PLACE_LAMBDA", "WRONG_INVOCATION_KIND") @JvmStatic @JvmName("autoClosed") public fun autoClosed(errMessageClosed: String, errExistRefs: String, scope: (MayBeClosedReferenceCounter) -> R): R { + contract { + callsInPlace(scope, InvocationKind.EXACTLY_ONCE) + } _Platform.jvm_assertNotNull(errMessageClosed, "param: errMessageClosed") _Platform.jvm_assertNotNull(errExistRefs, "param: errExistRefs") _Platform.jvm_assertNotNull(scope, "param: scope")