// WITH_RUNTIME @Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") @kotlin.jvm.JvmInline value class X(val x: String) @Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") @kotlin.jvm.JvmInline value class Y(val y: Number) @Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") @kotlin.jvm.JvmInline value class NX(val x: String?) @Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") @kotlin.jvm.JvmInline value class NY(val y: Number?) fun testNotNull(x: X?, y: Y?) { val xs = listOf(x) val ys = listOf(y) if (!xs.contains(y)) throw AssertionError() if (xs[0] != ys[0]) throw AssertionError() if (xs[0] !== ys[0]) throw AssertionError() } fun testNullable(x: NX?, y: NY?) { val xs = listOf(x) val ys = listOf(y) if (xs.contains(y)) throw AssertionError() if (xs[0] == ys[0]) throw AssertionError() if (xs[0] === ys[0]) throw AssertionError() } fun testNullsAsNullable(x: NX?, y: NY?) { val xs = listOf(x) val ys = listOf(y) if (!xs.contains(y)) throw AssertionError() if (xs[0] != ys[0]) throw AssertionError() if (xs[0] !== ys[0]) throw AssertionError() } fun box(): String { testNotNull(null, null) testNullable(NX(null), NY(null)) testNullable(NX(null), null) testNullable(null, NY(null)) testNullsAsNullable(null, null) return "OK" }