Сопрограммы работают, но IntelliJ показывает ошибки - PullRequest
0 голосов
/ 23 мая 2018

Я работаю над проектом, использующим kotlinjs для nodejs , и я начинаю изучать сопрограммы и интегрирую их в свой код, чтобы попрощаться с адом обратного вызова.

Мне удалось получить сопрограммы , работающие , мой код можно скомпилировать и выполнить, все выглядит нормально .

... кроме: В среде IDE все еще отображаются ошибки .Кажется, его смущают дополнительные библиотеки, которые я добавил для запуска сопрограмм.

В настоящее время я перебираю зависимости от библиотек, иногда некоторые ошибки исчезают, но затем некоторый код становится красным, что раньше было нормально...

Вот что я вижу:

Случай 1:

module dependencies in the first case code in the first case

Нет доступа к классу 'kotlinx.coroutines.experimental.CoroutineContext.Проверьте путь к классу вашего модуля на предмет отсутствующих или конфликтующих зависимостей

Случай 2:

module dependencies in the second case code in the second case

Неразрешенная ссылка: JsModule

Модификатор 'external' не применим к 'class'

Видите ли, launch распознается, когда я добавляю stdlib, но затем IDE жалуется на две другие ошибки.

Опять же, обратите внимание: В обоих случаях фактическая компиляция прошла успешно!

Я использую IntelliJ 2018.1 с Плагин Kotlin 1.2.41 .

1 Ответ

0 голосов
/ 25 мая 2018

Благодаря Александру Черникову на youtrack.jetbrains Я мог решить мою проблему.

Я привожу его объяснение:

Проблема в том, что библиотеки JavaScript должны быть помечены специальным атрибутом для распознавания.Когда они импортируются из pom.xml или build.gradle, эта метка устанавливается, поэтому функция работает.В вашем проекте они не помечены.

В данный момент, чтобы исправить libs вручную, пожалуйста, откройте .idea/libraries/org_jetbrains_kotlin_kotlin_stdlib_js_1_2_41.xml и .idea/libraries/org_jetbrains_kotlinx_kotlinx_coroutines_core_js_0_22_5.xml.В обоих файлах найдите type="repository" и замените его на type="kotlin.js".Убедитесь, что IDEA видит изменения.(Вы можете выйти из IDEA, внести изменения и перезапустить.)

Тогда вы можете оставить только эти две библиотеки в зависимостях.Редактор должен работать.

Вот ссылка на проблему: https://youtrack.jetbrains.com/issue/KT-24575

Там я также приложил пример проекта с проблемой.

...