diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/MethodInliner.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/MethodInliner.kt index 7c29493bf95..d1afc6b34ce 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/MethodInliner.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/MethodInliner.kt @@ -1071,15 +1071,17 @@ class MethodInliner( //remove next template: // aload x // LDC paramName - // INTRINSICS_CLASS_NAME.checkParameterIsNotNull(...) + // INTRINSICS_CLASS_NAME.checkParameterIsNotNull/checkNotNullParameter(...) private fun removeClosureAssertions(node: MethodNode) { val toDelete = arrayListOf() InsnSequence(node.instructions).filterIsInstance().forEach { methodInsnNode -> - if (methodInsnNode.name == "checkParameterIsNotNull" && methodInsnNode.owner == IntrinsicMethods.INTRINSICS_CLASS_NAME) { + if (methodInsnNode.owner == IntrinsicMethods.INTRINSICS_CLASS_NAME && + (methodInsnNode.name == "checkParameterIsNotNull" || methodInsnNode.name == "checkNotNullParameter") + ) { val prev = methodInsnNode.previous - assert(Opcodes.LDC == prev?.opcode) { "'checkParameterIsNotNull' should go after LDC but $prev" } + assert(Opcodes.LDC == prev?.opcode) { "'${methodInsnNode.name}' should go after LDC but $prev" } val prevPev = methodInsnNode.previous.previous - assert(Opcodes.ALOAD == prevPev?.opcode) { "'checkParameterIsNotNull' should be invoked on local var, but $prev" } + assert(Opcodes.ALOAD == prevPev?.opcode) { "'${methodInsnNode.name}' should be invoked on local var, but $prev" } toDelete.add(prevPev) toDelete.add(prev)