JVM: KT-40664 disable optimization for 'ULong in range of UInt' case
This commit is contained in:
+4
-4
@@ -29,7 +29,6 @@ import org.jetbrains.kotlin.codegen.range.inExpression.InExpressionGenerator
|
||||
import org.jetbrains.kotlin.codegen.range.inExpression.InFloatingPointRangeLiteralExpressionGenerator
|
||||
import org.jetbrains.kotlin.codegen.range.inExpression.InIntegralContinuousRangeExpressionGenerator
|
||||
import org.jetbrains.kotlin.descriptors.CallableDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.isTopLevelInPackage
|
||||
import org.jetbrains.kotlin.psi.KtExpression
|
||||
import org.jetbrains.kotlin.psi.KtForExpression
|
||||
import org.jetbrains.kotlin.psi.KtSimpleNameExpression
|
||||
@@ -70,9 +69,10 @@ abstract class PrimitiveNumberRangeIntrinsicRangeValue(
|
||||
?: throw AssertionError("Floating point intrinsic range value should be a range literal")
|
||||
InFloatingPointRangeLiteralExpressionGenerator(operatorReference, rangeLiteral, comparisonGenerator, codegen.frameMap)
|
||||
}
|
||||
else -> InIntegralContinuousRangeExpressionGenerator(
|
||||
operatorReference, rangeContainsTypeInfo, getBoundedValue(codegen), comparisonGenerator, codegen.frameMap
|
||||
)
|
||||
else ->
|
||||
InIntegralContinuousRangeExpressionGenerator(
|
||||
operatorReference, rangeContainsTypeInfo, getBoundedValue(codegen), comparisonGenerator, codegen.frameMap
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+4
-1
@@ -87,7 +87,10 @@ fun getComparisonGeneratorForRangeContainsCall(
|
||||
getComparisonGeneratorForKotlinType(elementType)
|
||||
|
||||
KotlinBuiltIns.isUInt(elementType) ->
|
||||
UIntComparisonGenerator
|
||||
if (KotlinBuiltIns.isULong(valueParameterType))
|
||||
null
|
||||
else
|
||||
UIntComparisonGenerator
|
||||
|
||||
KotlinBuiltIns.isULong(elementType) ->
|
||||
ULongComparisonGenerator
|
||||
|
||||
Reference in New Issue
Block a user