diff --git a/kotlin-native/backend.native/tests/objcexport/expectedLazy.h b/kotlin-native/backend.native/tests/objcexport/expectedLazy.h index 2f0e3a78b22..2632d5aa081 100644 --- a/kotlin-native/backend.native/tests/objcexport/expectedLazy.h +++ b/kotlin-native/backend.native/tests/objcexport/expectedLazy.h @@ -3214,6 +3214,7 @@ __attribute__((swift_name("ValuesKt"))) + (id)createTransformDecimalStringToInt __attribute__((swift_name("createTransformDecimalStringToInt()"))); + (void)emptyFun __attribute__((swift_name("emptyFun()"))); + (void)ensureEqualBooleansActual:(KtBoolean * _Nullable)actual expected:(BOOL)expected __attribute__((swift_name("ensureEqualBooleans(actual:expected:)"))); ++ (void)ensureEqualBooleansAsAnyActual:(id _Nullable)actual expected:(BOOL)expected __attribute__((swift_name("ensureEqualBooleansAsAny(actual:expected:)"))); + (void)ensureEqualBytesActual:(KtByte * _Nullable)actual expected:(int8_t)expected __attribute__((swift_name("ensureEqualBytes(actual:expected:)"))); + (void)ensureEqualDoublesActual:(KtDouble * _Nullable)actual expected:(double)expected __attribute__((swift_name("ensureEqualDoubles(actual:expected:)"))); + (void)ensureEqualFloatsActual:(KtFloat * _Nullable)actual expected:(float)expected __attribute__((swift_name("ensureEqualFloats(actual:expected:)"))); diff --git a/kotlin-native/backend.native/tests/objcexport/expectedLazyLegacySuspendUnit.h b/kotlin-native/backend.native/tests/objcexport/expectedLazyLegacySuspendUnit.h index 89b8dcd93d3..7f41c363fac 100644 --- a/kotlin-native/backend.native/tests/objcexport/expectedLazyLegacySuspendUnit.h +++ b/kotlin-native/backend.native/tests/objcexport/expectedLazyLegacySuspendUnit.h @@ -3214,6 +3214,7 @@ __attribute__((swift_name("ValuesKt"))) + (id)createTransformDecimalStringToInt __attribute__((swift_name("createTransformDecimalStringToInt()"))); + (void)emptyFun __attribute__((swift_name("emptyFun()"))); + (void)ensureEqualBooleansActual:(KtBoolean * _Nullable)actual expected:(BOOL)expected __attribute__((swift_name("ensureEqualBooleans(actual:expected:)"))); ++ (void)ensureEqualBooleansAsAnyActual:(id _Nullable)actual expected:(BOOL)expected __attribute__((swift_name("ensureEqualBooleansAsAny(actual:expected:)"))); + (void)ensureEqualBytesActual:(KtByte * _Nullable)actual expected:(int8_t)expected __attribute__((swift_name("ensureEqualBytes(actual:expected:)"))); + (void)ensureEqualDoublesActual:(KtDouble * _Nullable)actual expected:(double)expected __attribute__((swift_name("ensureEqualDoubles(actual:expected:)"))); + (void)ensureEqualFloatsActual:(KtFloat * _Nullable)actual expected:(float)expected __attribute__((swift_name("ensureEqualFloats(actual:expected:)"))); diff --git a/kotlin-native/backend.native/tests/objcexport/expectedLazyNoGenerics.h b/kotlin-native/backend.native/tests/objcexport/expectedLazyNoGenerics.h index 29c09b1cd5e..42319374a87 100644 --- a/kotlin-native/backend.native/tests/objcexport/expectedLazyNoGenerics.h +++ b/kotlin-native/backend.native/tests/objcexport/expectedLazyNoGenerics.h @@ -3214,6 +3214,7 @@ __attribute__((swift_name("ValuesKt"))) + (id)createTransformDecimalStringToInt __attribute__((swift_name("createTransformDecimalStringToInt()"))); + (void)emptyFun __attribute__((swift_name("emptyFun()"))); + (void)ensureEqualBooleansActual:(KtBoolean * _Nullable)actual expected:(BOOL)expected __attribute__((swift_name("ensureEqualBooleans(actual:expected:)"))); ++ (void)ensureEqualBooleansAsAnyActual:(id _Nullable)actual expected:(BOOL)expected __attribute__((swift_name("ensureEqualBooleansAsAny(actual:expected:)"))); + (void)ensureEqualBytesActual:(KtByte * _Nullable)actual expected:(int8_t)expected __attribute__((swift_name("ensureEqualBytes(actual:expected:)"))); + (void)ensureEqualDoublesActual:(KtDouble * _Nullable)actual expected:(double)expected __attribute__((swift_name("ensureEqualDoubles(actual:expected:)"))); + (void)ensureEqualFloatsActual:(KtFloat * _Nullable)actual expected:(float)expected __attribute__((swift_name("ensureEqualFloats(actual:expected:)"))); diff --git a/kotlin-native/backend.native/tests/objcexport/values.kt b/kotlin-native/backend.native/tests/objcexport/values.kt index dc441fc5de3..d4b58c5f047 100644 --- a/kotlin-native/backend.native/tests/objcexport/values.kt +++ b/kotlin-native/backend.native/tests/objcexport/values.kt @@ -58,12 +58,18 @@ fun box(uLongValue: ULong) = uLongValue.toNullable() fun box(floatValue: Float) = floatValue.toNullable() fun box(doubleValue: Double) = doubleValue.toNullable() -private inline fun ensureEquals(actual: T?, expected: T) { - if (actual !is T) error(T::class) - if (actual != expected) error(T::class) +private fun ensureEquals(actual: Any?, expected: Any, expectedClass: KClass<*>) { + check(actual != null) + if (actual::class != expectedClass) error("expected ::class $expectedClass, got ${actual::class}") + if (actual != expected) error("for $expectedClass expected $expected, got $actual") +} + +private inline fun ensureEquals(actual: T?, expected: T) { + ensureEquals(actual, expected, T::class) } fun ensureEqualBooleans(actual: Boolean?, expected: Boolean) = ensureEquals(actual, expected) +fun ensureEqualBooleansAsAny(actual: Any?, expected: Boolean) = ensureEquals(actual as Boolean?, expected) fun ensureEqualBytes(actual: Byte?, expected: Byte) = ensureEquals(actual, expected) fun ensureEqualShorts(actual: Short?, expected: Short) = ensureEquals(actual, expected) fun ensureEqualInts(actual: Int?, expected: Int) = ensureEquals(actual, expected) diff --git a/kotlin-native/backend.native/tests/objcexport/values.swift b/kotlin-native/backend.native/tests/objcexport/values.swift index b8251abbab0..6424c7a6b2f 100644 --- a/kotlin-native/backend.native/tests/objcexport/values.swift +++ b/kotlin-native/backend.native/tests/objcexport/values.swift @@ -137,6 +137,9 @@ func testNumbers() throws { ValuesKt.ensureEqualBooleans(actual: KotlinBoolean(value: true), expected: true) ValuesKt.ensureEqualBooleans(actual: false, expected: false) + ValuesKt.ensureEqualBooleansAsAny(actual: true, expected: true) + ValuesKt.ensureEqualBooleansAsAny(actual: false, expected: false) + ValuesKt.ensureEqualBytes(actual: KotlinByte(value: 42), expected: 42) ValuesKt.ensureEqualBytes(actual: -11, expected: -11)