通用扩展属性接收器类型不匹配

以下代码:

package com.gitlab.morality.navigable.support import android.support.v4.app.Fragment import android.support.v4.app.FragmentActivity import kotlin.reflect.primaryConstructor interface Navigable val <FragmentType> FragmentType.parameters : MutableMap<String, in Any> where FragmentType : Fragment, FragmentType : Navigable by lazy { mutableMapOf<String, Any>() } inline fun <reified FragmentType> FragmentType.navigate(containerViewId : Int, vararg parameters : Pair<String, Any>) where FragmentType : Fragment, FragmentType : Navigable { val fragment = FragmentType::class.primaryConstructor!!.call() parameters.forEach { fragment.parameters[it.first] = it.second } activity.supportFragmentManager.beginTransaction() .replace(containerViewId, fragment) .commit() } 

使用Kotlin 1.0.5导致以下编译器错误:

错误:(34,9)公共API内联函数无法访问非公开API内部打开fun():[错误:]在根包中定义'

错误:(34,18)未解决的参考。 public val FragmentType#1(com.gitlab.morality.navigable.support.navigate的类型参数).parameters:MutableMap其中FragmentType:在com.gitlab.morality中定义的Navigable。 navigable.support

我不明白我在这里做错了什么。 这些错误信息是什么意思?

我可以通过使parameters属性成为Navigable的成员来解决这个问题,但是然后需要一个实现者来实现这个属性,这个属性从这个技术的吸引力中被剥夺了,那就是实现类不需要做任何事情除了被标记为Navigable ,还可以使用Navigable功能。

目前不支持多种接收器类型的扩展属性。 问题解决后,您可以投票给KT-10468以获得通知。