Re-enable "JVM IR: Move direct invoke optimization into a separate pass"

This commit is contained in:
Steven Schäfer
2022-07-18 11:18:38 +02:00
committed by Alexander Udalov
parent 6f0ff6aeb0
commit 7e472301b6
19 changed files with 193 additions and 419 deletions
@@ -32,7 +32,6 @@ 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.*
@@ -313,12 +312,6 @@ 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,