From edd3f76e7ba3578e1328009ac2f4d56ff9ecec95 Mon Sep 17 00:00:00 2001 From: Dmitry Savvinov Date: Fri, 13 Oct 2017 18:35:13 +0300 Subject: [PATCH] Add contract for takeUnless --- libraries/stdlib/src/kotlin/util/Standard.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libraries/stdlib/src/kotlin/util/Standard.kt b/libraries/stdlib/src/kotlin/util/Standard.kt index 98421de1651..a88e1ae6aa5 100644 --- a/libraries/stdlib/src/kotlin/util/Standard.kt +++ b/libraries/stdlib/src/kotlin/util/Standard.kt @@ -113,6 +113,9 @@ public inline fun T.takeIf(predicate: (T) -> Boolean): T? { @kotlin.internal.InlineOnly @SinceKotlin("1.1") public inline fun T.takeUnless(predicate: (T) -> Boolean): T? { + contract { + callsInPlace(predicate, InvocationKind.EXACTLY_ONCE) + } return if (!predicate(this)) this else null }