kotlin-test: make assertIs<T> returning value cast to T KT-45296

This commit is contained in:
Ilya Gorbunov
2021-03-17 18:14:01 +03:00
parent 2fd8620551
commit 42648d55a0
2 changed files with 5 additions and 2 deletions
@@ -87,9 +87,10 @@ fun <@OnlyInputTypes T> assertNotSame(illegal: T, actual: T, message: String? =
@SinceKotlin("1.5")
@InlineOnly
@OptIn(ExperimentalStdlibApi::class)
inline fun <reified T> assertIs(value: Any?, message: String? = null) {
inline fun <reified T> assertIs(value: Any?, message: String? = null): T {
contract { returns() implies (value is T) }
assertIsOfType(value, typeOf<T>(), value is T, message)
return value as T
}
@PublishedApi
@@ -210,8 +210,10 @@ class BasicAssertionsTest {
@Test
fun testAssertIsOfType() {
val s: Any = "test"
assertIs<String>(s)
val result = assertIs<String>(s)
assertEquals(4, s.length)
assertEquals(s, result)
assertEquals(4, result.length)
}
@OptIn(ExperimentalStdlibApi::class)