Всем привет. Вопрос. Речь о kotlin-js Примерно т...
# russian
c
Всем привет. Вопрос. Речь о kotlin-js Примерно такая ситуация
Copy code
external interface Foo {
    var text: String?
        get() = definedExternally
        set(value) = definedExternally
}
Далее наследуюсь от него
Copy code
interface Bar : Foo{

.....

}
В итоге в JS файле код вида
Object.defineProperty(CSSTemplate.prototype, 'text', Object.getOwnPropertyDescriptor(TreeCssClass.prototype, 'text'));
Как это можно исправить? что бы эти поля, которые объявлены в
external interface Foo
не писались в JS файл для классов наследников?
b
Приведи пожалуйста самодостаточный пример на котором виден твой кейс
для
external interface
не должен генерится код подобный тому что ты привел
если это не так зарепорть пожалуйста багу -- http://kotl.in/issue
c
Вот так все ок:
Copy code
external interface Foo {
    var externalProperty: String?
        get() = definedExternally
        set(it) = definedExternally
}

interface Bar : Foo

class DDD : Foo {

}
Класс
Bar
не используется. теперь такой код:
Copy code
external interface Foo {
    var externalProperty: String?
        get() = definedExternally
        set(it) = definedExternally
}

interface Bar : Foo

class DDD : Bar {

}
Сделал так, что бы
DDD
наследовался не от
Foo
, а от
Bar
. И теперь в итоговом JS файле появилась строка:
Object.defineProperty(DDD.prototype, 'externalProperty', Object.getOwnPropertyDescriptor(Bar.prototype, 'externalProperty'));
kotlin_version="1.2.41"
потыкал разные версии. в 1.2.10 все было ок. в 1.2.20 уже начинается эта вот проблема, о которой писал выше
b
зарепорть пожалуйста