From bf54fda8ec36c2f893f589c6341cf0fb7681a085 Mon Sep 17 00:00:00 2001 From: Alexander Korepanov Date: Wed, 22 Nov 2023 10:57:23 +0100 Subject: [PATCH] [JS Test] Add a test case Add a test case for a suspend lambda with a user-defined value class. ^KT-62077 Fixed --- .../coroutines/suspendLambdaWithValueClass.kt | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/js/js.translator/testData/box/coroutines/suspendLambdaWithValueClass.kt b/js/js.translator/testData/box/coroutines/suspendLambdaWithValueClass.kt index 3ff285c67db..12002a5f594 100644 --- a/js/js.translator/testData/box/coroutines/suspendLambdaWithValueClass.kt +++ b/js/js.translator/testData/box/coroutines/suspendLambdaWithValueClass.kt @@ -13,7 +13,9 @@ fun builder(c: suspend () -> Unit) { }) } -fun box(): String { +infix fun ULong.ror(shift: Int): ULong = this shr shift + +fun testUlong(): String { val a: suspend () -> Unit = { mapOf( 0x0000000000000000UL to 0x0000000000000000UL @@ -40,4 +42,24 @@ fun box(): String { return "OK" } -infix fun ULong.ror(shift: Int): ULong = this shr shift \ No newline at end of file +value class UserValueClass(val raw: String) + +fun testUseValueClass(): String { + var result = "NOT OK" + builder { + val test = UserValueClass("test") + val map = listOf(test).groupBy { it }.mapValues { "OK" } + result = map[test] ?: "Cannot find value" + } + return result +} + +fun box(): String { + if (testUlong() != "OK") { + return "Fail testUlong()" + } + if (testUseValueClass() != "OK") { + return "Fail testUseValueClass()" + } + return "OK" +}