Take inline classes into account in JvmBuiltinOptimizationLowering
This commit is contained in:
committed by
Alexander Udalov
parent
69cf8d4df4
commit
f1f0c7e0a0
+3
-2
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user