Файл компилируется нормально в плагине IntelliJ, но не компилируется с компилятором командной строки kotlinc - PullRequest
0 голосов
/ 14 декабря 2018

Следующий исходный файл Kotlin компилируется и отлично работает с использованием плагина Kotlin 1.3.11 в IntelliJ IDEA 2018.3.1.Тем не менее, он не может скомпилироваться в компиляторе командной строки Kotlin, выдавая следующее сообщение.Что-то не так с кодом или мне не хватает зависимости от пути к классу или что-то в этом роде?

C:\tmp>type Main.kt
import java.nio.file.Files
import java.nio.file.Paths

fun main() {
    Files.lines(Paths.get("t.txt"))
            .use { lines -> lines.forEach { println(it) } }
}

C:\tmp>kotlinc -version
info: kotlinc-jvm 1.3.11 (JRE 1.8.0_192-b12)

C:\tmp>kotlinc Main.kt
Main.kt:6:14: error: unresolved reference. None of the following candidates is applicable because of receiver type mismatch:
@InlineOnly public inline fun <T : Closeable?, R> ???.use(block: (???) -> ???): ??? defined in kotlin.io
            .use { lines -> lines.forEach { println(it) } }
             ^
Main.kt:6:20: error: cannot infer a type for this parameter. Please specify it explicitly.
            .use { lines -> lines.forEach { println(it) } }
                   ^
Main.kt:6:35: error: cannot choose among the following candidates without completing type inference:
@HidesMembers public inline fun <T> Iterable<???>.forEach(action: (???) -> Unit): Unit defined in kotlin.collections
@HidesMembers public inline fun <K, V> Map<out ???, ???>.forEach(action: (Map.Entry<???, ???>) -> Unit): Unit defined in kotlin.collections
            .use { lines -> lines.forEach { println(it) } }
                                  ^
Main.kt:6:53: error: unresolved reference: it
            .use { lines -> lines.forEach { println(it) } }
                                                    ^

C:\tmp>

1 Ответ

0 голосов
/ 14 декабря 2018

Проблема

Функция use не определена в kotlin-stdlib, но в kotlin-std-jdk7 (см. https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/use.html)

Решение

kotlinc -classpath kotlin-stdlib-jdk7-1.3.11.jar Main.kt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...