From f1f0c7e0a0b3278c4df3e4084679a46c6cbea0be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steven=20Sch=C3=A4fer?= Date: Fri, 10 May 2019 12:20:08 +0200 Subject: [PATCH] Take inline classes into account in JvmBuiltinOptimizationLowering --- .../backend/jvm/lower/JvmBuiltinOptimizationLowering.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmBuiltinOptimizationLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmBuiltinOptimizationLowering.kt index bd96faff0e1..8ccd0caecc9 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmBuiltinOptimizationLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmBuiltinOptimizationLowering.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.backend.jvm.lower import org.jetbrains.kotlin.backend.common.FileLoweringPass import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase import org.jetbrains.kotlin.backend.jvm.JvmBackendContext +import org.jetbrains.kotlin.backend.jvm.lower.inlineclasses.unboxInlineClass import org.jetbrains.kotlin.codegen.intrinsics.Not import org.jetbrains.kotlin.ir.IrStatement import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin @@ -49,8 +50,8 @@ class JvmBuiltinOptimizationLowering(val context: JvmBackendContext) : FileLower // When used for null checks, it is safe to eliminate constants and local variable loads. // Even if a local variable of simple type is updated via the debugger it still cannot // be null. - return (right.isNullConst() && left.type.isPrimitiveType()) - || (left.isNullConst() && right.type.isPrimitiveType()) + return (right.isNullConst() && left.type.unboxInlineClass().isPrimitiveType()) + || (left.isNullConst() && right.type.unboxInlineClass().isPrimitiveType()) } return false }