本地委托属性和内联属性不支持扩充分配和增量

时间:2017-08-08 14:37:16

标签: android kotlin

标题中的

Augment assignment and increment are not supported for local delegated properties ans inline properties - 我得到以下代码:

var timer by someDelegate { }
timer += someOtherValue

在半小时前完美编译。清理项目并重置Android Studio没有帮助。

1 个答案:

答案 0 :(得分:1)

这是因为此功能尚未实现,它不是一个bug,:)。这是Kotlin 1.1.3中StackValue#L1815的源代码,如下所示:

if (stackValue instanceof Delegate) {
    //TODO need to support
    throwUnsupportedComplexOperation(((Delegate) stackValue).variableDescriptor);
}

为什么属性可以与+=一起使用,这是因为Delegategetter / setter包裹,这意味着它在客户端代码中不可见。