Turn off incorrect switch-optimization for when by enums
#KT-24708 Fixed
This commit is contained in:
@@ -35,6 +35,7 @@ import org.jetbrains.kotlin.resolve.DescriptorUtils.isEnumClass
|
||||
import org.jetbrains.kotlin.resolve.DescriptorUtils.isEnumEntry
|
||||
import org.jetbrains.kotlin.resolve.constants.CompileTimeConstant
|
||||
import org.jetbrains.kotlin.resolve.constants.evaluate.ConstantExpressionEvaluator
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.classId
|
||||
import org.jetbrains.kotlin.types.KotlinType
|
||||
import org.jetbrains.kotlin.types.TypeUtils
|
||||
import java.util.*
|
||||
@@ -265,8 +266,12 @@ object WhenChecker {
|
||||
)
|
||||
|
||||
@JvmStatic
|
||||
fun isWhenByEnum(expression: KtWhenExpression, context: BindingContext) =
|
||||
getClassDescriptorOfTypeIfEnum(whenSubjectType(expression, context)) != null
|
||||
fun getClassIdForEnumSubject(expression: KtWhenExpression, context: BindingContext) =
|
||||
getClassIdForTypeIfEnum(whenSubjectType(expression, context))
|
||||
|
||||
@JvmStatic
|
||||
fun getClassIdForTypeIfEnum(type: KotlinType?) =
|
||||
getClassDescriptorOfTypeIfEnum(type)?.classId
|
||||
|
||||
@JvmStatic
|
||||
fun getClassDescriptorOfTypeIfEnum(type: KotlinType?): ClassDescriptor? {
|
||||
|
||||
Reference in New Issue
Block a user