看起来KProperty1<T, R>
在JVM和JS中具有不同的语义,例如虽然此测试适用于JVM:
data class Data(val name: String)
class Test {
@Test fun propertiesMustBeEqual() {
assertEquals(Data::name, Data::name)
}
}
它在Javascript中失败并显示以下消息:
1) test
Test
propertiesMustBeEqual:
AssertionError: Expected <function ($receiver) {
return $receiver.name;
}>, actual <function ($receiver) {
return $receiver.name;
}>
任何想法如何解决这个问题?
答案 0 :(得分:2)
对所有平台的同一属性的未绑定属性引用应该相同。但是他们在JS中不相同的情况是跟踪为https://youtrack.jetbrains.com/issue/KT-15101
的错误