Revert "JVM IR: Move direct invoke optimization into a separate pass"

This reverts commit f0760e0550.

The reason is that it leads to KT-53202.
This commit is contained in:
Alexander Udalov
2022-07-15 15:11:10 +02:00
parent 497bb9a05c
commit b50d2ff20a
19 changed files with 417 additions and 191 deletions
@@ -32,6 +32,7 @@ import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
import org.jetbrains.kotlin.diagnostics.BackendErrors
import org.jetbrains.kotlin.ir.IrElement
import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl
import org.jetbrains.kotlin.ir.descriptors.toIrBasedDescriptor
import org.jetbrains.kotlin.ir.descriptors.toIrBasedKotlinType
import org.jetbrains.kotlin.ir.expressions.*
@@ -312,6 +313,12 @@ class ExpressionCodegen(
if (irFunction.isSuspend)
return
// As a small optimization, don't generate nullability assertions in methods for directly invoked lambdas
if (irFunction is IrFunctionImpl && irFunction.attributeOwnerId in context.directInvokedLambdas) {
context.directInvokedLambdas.remove(irFunction.attributeOwnerId)
return
}
irFunction.extensionReceiverParameter?.let { generateNonNullAssertion(it) }
// Private operator functions don't have null checks on value parameters,