Skip to content

Commit 5515a63

Browse files
committed
Replace KotlinBuiltIns.isBuiltIn with corresponding package checking
Method `isBuiltIn` may not work correctly as built-ins are becoming more and more like a usual dependency. Also behaviour of this method is depend on the target platform.
1 parent 8c84717 commit 5515a63

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

compiler/frontend/src/org/jetbrains/kotlin/resolve/constants/evaluate/ConstantExpressionEvaluator.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptorImpl
2929
import org.jetbrains.kotlin.diagnostics.Errors
3030
import org.jetbrains.kotlin.lexer.KtTokens
3131
import org.jetbrains.kotlin.name.Name
32+
import org.jetbrains.kotlin.name.isSubpackageOf
3233
import org.jetbrains.kotlin.psi.*
3334
import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType
3435
import org.jetbrains.kotlin.resolve.*
@@ -37,6 +38,7 @@ import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall
3738
import org.jetbrains.kotlin.resolve.calls.model.ResolvedValueArgument
3839
import org.jetbrains.kotlin.resolve.calls.tasks.ExplicitReceiverKind
3940
import org.jetbrains.kotlin.resolve.constants.*
41+
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameOrNull
4042
import org.jetbrains.kotlin.types.KotlinType
4143
import org.jetbrains.kotlin.types.TypeUtils
4244
import org.jetbrains.kotlin.types.checker.KotlinTypeChecker
@@ -449,7 +451,8 @@ private class ConstantExpressionEvaluatorVisitor(
449451
private fun evaluateCall(callExpression: KtExpression, receiverExpression: KtExpression, expectedType: KotlinType?): CompileTimeConstant<*>? {
450452
val resolvedCall = callExpression.getResolvedCall(trace.bindingContext) ?: return null
451453

452-
if (!KotlinBuiltIns.isBuiltIn(resolvedCall.resultingDescriptor)) return null
454+
val descriptorFqName = resolvedCall.resultingDescriptor.fqNameOrNull() ?: return null
455+
if (!descriptorFqName.isSubpackageOf(KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME)) return null
453456

454457
val resultingDescriptorName = resolvedCall.resultingDescriptor.name
455458

0 commit comments

Comments
 (0)