无法为增量和减量运算符定义运算符扩展函数

Unable To Define An Operator Extension Function For The Increment and Decrement Operators

出于某种原因。我无法为运算符 ++-- 定义扩展运算符函数,同时能够为相同运算符定义成员运算符函数。

@TestInstance(TestInstance.Lifecycle.PER_CLASS)
object _12_IncrementAndDecrementOperatorsCantBeExtensionFunctions_Test {
    private class X {
        operator fun inc(): X = X()
        operator fun dec(): X = X()
    }

    private class Y

    /*Compile-time | 'operator' modifier is inapplicable on this function: receiver must be a supertype of the return type*/
    private operator fun Y.inc(): Y = Y()

    /*Compile-time | 'operator' modifier is inapplicable on this function: receiver must be a supertype of the return type*/
    private operator fun Y.dec(): Y = Y()
}

我错过了什么吗?有这种限制的原因吗?

如果您在 _12_IncrementAndDecrementOperatorsCantBeExtensionFunctions_Test 对象之外定义运算符,它将起作用:

class Y

operator fun Y.inc(): Y = Y()

operator fun Y.dec(): Y = Y()

这实际上是 Kotlin 中的一个错误:https://youtrack.jetbrains.com/issue/KT-24800