JVM: Avoid areEquals and checkNotNull calls in merge operatoins
diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/nullCheck/NullabilityInterpreter.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/nullCheck/NullabilityInterpreter.kt
index c76674c..13dc29e 100644
--- a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/nullCheck/NullabilityInterpreter.kt
+++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/nullCheck/NullabilityInterpreter.kt
@@ -95,20 +95,20 @@
}
override fun merge(v: BasicValue, w: BasicValue): BasicValue =
- when(v) {
- NullBasicValue -> if (w === NullBasicValue) NullBasicValue else StrictBasicValue.REFERENCE_VALUE
+ when {
+ v === NullBasicValue -> if (w === NullBasicValue) NullBasicValue else StrictBasicValue.REFERENCE_VALUE
- is ProgressionIteratorBasicValue -> when (w) {
+ v is ProgressionIteratorBasicValue -> when (w) {
is ProgressionIteratorBasicValue -> mergeNotNullValuesOfSameKind(v, w)
is NotNullBasicValue -> NotNullBasicValue.NOT_NULL_REFERENCE_VALUE
else -> super.merge(v, w)
}
- is NotNullBasicValue -> when(w) {
+ v is NotNullBasicValue -> when (w) {
is ProgressionIteratorBasicValue -> NotNullBasicValue.NOT_NULL_REFERENCE_VALUE
is NotNullBasicValue -> mergeNotNullValuesOfSameKind(v, w)
else -> super.merge(v, w)
}
- else -> if (w === NullBasicValue) StrictBasicValue.REFERENCE_VALUE else super.merge(v, w)
+ else -> if (w === NullBasicValue) StrictBasicValue.REFERENCE_VALUE else super.merge(v, w)
}
private fun mergeNotNullValuesOfSameKind(v: StrictBasicValue, w: StrictBasicValue) =