Don't optimize null checks for unsafe primitive type boxes as well

#KT-34829 Fixed
This commit is contained in:
Alexander Udalov
2019-11-08 18:54:33 +01:00
parent b80e157381
commit 228fdb4436
5 changed files with 37 additions and 2 deletions
@@ -3871,8 +3871,7 @@ public class ExpressionCodegen extends KtVisitor<StackValue, StackValue> impleme
Type type = expressionType(exp);
StackValue argument = pregeneratedExpr != null ? pregeneratedExpr : gen(exp);
if (kotlinType == null ||
!AsmUtil.isPrimitive(type) && (TypeUtils.isNullableType(kotlinType) || !InlineClassesUtilsKt.isInlineClassType(kotlinType))) {
if (kotlinType == null || TypeUtils.isNullableType(kotlinType) || !InlineClassesUtilsKt.isInlineClassType(kotlinType)) {
return StackValue.compareWithNull(argument, (KtTokens.EQEQ == opToken || KtTokens.EQEQEQ == opToken) ? IFNONNULL : IFNULL);
} else {
// If exp is an unboxed inline class value the comparison is vacuous