Различная семантика KProperty1<T, R> в JS по сравнению с JVM
Это выглядит как 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;
}>
Есть идеи как решить это?
1 ответ
Решение
Ссылки на несвязанные свойства для одного и того же свойства должны быть одинаковыми на всех платформах. Но ситуация, что они не равны в JS, является ошибкой, отслеживаемой как https://youtrack.jetbrains.com/issue/KT-15101