Я пытался воспроизвести вашу проблему с IntelliJ IDEA 2017.2.6 с помощью:
fun main(args: Array<String>) {
fun foo(x: Int, y: Int, z: Int) = x % 2 != 0
val f = ::foo
val f1: KFunction3<Int, Int, Int, Boolean> = ::foo
}
Компилируется без проблем.
Почему в KFunction3 тип возвращаемого значения Foo
? Ваша функция Foo
возвращает себя?
Обновление 1:
Я протестировал то же самое с конструктором без ошибок:
class Foo (x: Int, y: Int, z: Int) {}
fun main(args: Array<String>) {
val ft1 = ::Foo
val ft2: KFunction3<Int, Int, Int, Foo> = ::Foo
}
Использование Kotlin 1.2.31 и никаких дополнительных библиотек.