Как исправить эту ошибку в демо-версии Kotlin Web?

Я настоящий n00b в Котлине и только что начал с его демо .

Решение проблемы тривиально, но есть ошибка в

private fun assertEquals<T>(actual : T?, expected : T?, message : Any? = null) { if (actual != expected) { errors++ println("Test failed") val trace = Thread.currentThread()?.getStackTrace()!! if (trace.size > 6) { // Finding relevant stack frames val location = trace.getFrameAfter("runs.Tester", "expect") // ERROR HERE val function = trace.getFrameAfter("runs.TesterRunner", "forFunction") // AND HERE println("at ${function?.getClassName()}.${function?.getMethodName()}(line:${location?.getLineNumber()})") } if (message != null) println(message) } else if (!skipSuccessful) println("OK") } 

которые я не понимаю. В нем говорится:

  Type mismatch: inferred type is kotlin.Array<java.lang.StackTraceElement> but kotlin.Array<java.lang.StackTraceElement?> was expected 

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

Я «исправил» его, удалив оскорбительные строки, но я уверен, что кто-то может просветить меня.

Проблема заключалась в том, что функция getFrameAfter определена на kotlin.Array<java.lang.StackTraceElement?> , Но вы пытались вызвать ее на переменной trace , которая была типа kotlin.Array<java.lang.StackTraceElement> .

Мы установили пример на веб-демо Kotlin, поэтому вы можете попробовать его снова.