Generate switch instruction for 'when' with unsigned subject
This commit is contained in:
@@ -22,10 +22,7 @@ import org.jetbrains.kotlin.codegen.binding.CodegenBinding
|
||||
import org.jetbrains.kotlin.codegen.state.GenerationState
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
import org.jetbrains.kotlin.resolve.constants.ConstantValue
|
||||
import org.jetbrains.kotlin.resolve.constants.IntegerValueConstant
|
||||
import org.jetbrains.kotlin.resolve.constants.NullValue
|
||||
import org.jetbrains.kotlin.resolve.constants.StringValue
|
||||
import org.jetbrains.kotlin.resolve.constants.*
|
||||
import org.jetbrains.org.objectweb.asm.Type
|
||||
|
||||
import java.util.ArrayList
|
||||
@@ -102,7 +99,7 @@ private constructor(
|
||||
|
||||
private fun isIntegralConstantsSwitch(expression: KtWhenExpression, subjectType: Type): Boolean =
|
||||
AsmUtil.isIntPrimitive(subjectType) &&
|
||||
checkAllItemsAreConstantsSatisfying(expression) { it is IntegerValueConstant<*> }
|
||||
checkAllItemsAreConstantsSatisfying(expression) { it is IntegerValueConstant<*> || it is UnsignedValueConstant<*> }
|
||||
|
||||
private fun isStringConstantsSwitch(expression: KtWhenExpression, subjectType: Type): Boolean =
|
||||
subjectType.className == String::class.java.name &&
|
||||
|
||||
Reference in New Issue
Block a user