Kotlin不能内联一些机构

我有一个内联函数接受两个lambda表达式。 这个函数是在我的代码的热点中调用的,尽管它是内联的,但是为这些实体创建了数千个对象。

有趣的是注释,或者用像println这样简单的调用替换身体,一切都完美。 但由于某种原因,我的具体使用,似乎内联没有做好工作!

我该如何解决这个问题? 与内联体有什么限制? 这是一个错误?

在这里输入图像描述

我的用例:

 fun PlayerSend.sync() = reusable({ val packet = this it.syncMovement(packet) reusable({ if (it.updateRequired) it.sync(this) }, { packet.bits(8, 0 /* amount of players to update */) if (readable > 0) { packet.bits(11, 2047).byteAccess() + this } else packet.byteAccess() }) }, { ses + 81.byte + readable.short + this }) 

方法头:

 inline fun <R1, R2> reusable(use: ByteBufPacketeer.() -> R1, after: ByteBufPacketeer.() -> R2) { val reusables = Reusables.get() val count = ReuseablesCount.get() ReuseablesCount.set(if (count + 1 >= reusables.size) 0 else count + 1) with(reusables[count]) { use() after() clear() } }