Scala.JS: Невозможно вызвать lookupMethod(init___sc_Seq) для не Scala класса sjs_js_Function
Я получаю следующее исключение, когда sbt run
в моем проекте scala.js - Binding.scala:
[info] Fast optimizing /Users/..../client/target/scala-2.12/cms-adapters-general-client-fastopt.js
[error] java.lang.AssertionError: assertion failed: Cannot call lookupMethod(init___sc_Seq) on non Scala class sjs_js_Function
[error] at scala.Predef$.assert(Predef.scala:219)
[error] at org.scalajs.core.tools.linker.analyzer.Analyzer$ClassInfo.tryLookupMethod(Analyzer.scala:321)
Это происходит в этом коде:
<button class="ui basic icon button"
onclick={_: Event =>
if (jQuery(".ui.form").form("is valid").asInstanceOf[Boolean]) {
val reader = new FileReader()
reader.readAsDataURL(excelInput.files(0))
reader.onload = (_: UIEvent) => {
println("file loaded")
}
}
}>Submit</button>
Если я прокомментирую /*reader.onload = (_: UIEvent) => ... } */
оно работает.
Там нет ссылки на любой "не Scala класс".
Еще более странно - у меня есть проект, где работает точно такой же код - см. DemoRunJobDialog
Изменить: найденная проблема / обходной путь
Это действительно странно. Я взял рабочий класс из другого проекта и шаг за шагом корректировал его.
В конце концов это было имя класса!
Это имя сработало:
case class ImportJobDialog(socket: ClientWebsocket)
Это имя сработало НЕ:
case class ExcelImportJobDialog(socket: ClientWebsocket)
Изменить: я создал проблему здесь: Binding.scala / Issues / 78