Add contract for takeUnless

This commit is contained in:
Dmitry Savvinov
2017-10-13 18:35:13 +03:00
parent 0b88e7cfd0
commit edd3f76e7b
@@ -113,6 +113,9 @@ public inline fun <T> T.takeIf(predicate: (T) -> Boolean): T? {
@kotlin.internal.InlineOnly
@SinceKotlin("1.1")
public inline fun <T> T.takeUnless(predicate: (T) -> Boolean): T? {
contract {
callsInPlace(predicate, InvocationKind.EXACTLY_ONCE)
}
return if (!predicate(this)) this else null
}