K2: fix intrinsic analysis in FirToConstantValueChecker

#KT-57986 Fixed
This commit is contained in:
Mikhail Glukhikh
2023-04-15 13:25:12 +02:00
committed by Space Team
parent c826c7301c
commit 5cff8c15ab
2 changed files with 4 additions and 4 deletions
@@ -214,6 +214,8 @@ internal object FirToConstantValueChecker : FirDefaultVisitor<Boolean, FirSessio
ConstantValueKind.Int, ConstantValueKind.UnsignedInt, ConstantValueKind.Long, ConstantValueKind.UnsignedLong,
)
private val constantIntrinsicCalls = setOf("toByte", "toLong", "toShort", "toFloat", "toDouble", "toChar", "unaryMinus")
override fun visitElement(element: FirElement, data: FirSession): Boolean {
return false
}
@@ -259,9 +261,8 @@ internal object FirToConstantValueChecker : FirDefaultVisitor<Boolean, FirSessio
symbol.callableId.packageName.asString() == "kotlin" -> {
val dispatchReceiver = qualifiedAccessExpression.dispatchReceiver
when (symbol.callableId.callableName.asString()) {
in setOf("toByte", "toLong", "toShort", "toFloat", "toDouble", "toChar") -> true
"unaryMinus" -> dispatchReceiver.accept(this, data)
else -> false
!in constantIntrinsicCalls -> false
else -> dispatchReceiver.accept(this, data)
}
}
-1
View File
@@ -1,5 +1,4 @@
// ISSUE: KT-57986
// IGNORE_BACKEND_K2: JS_IR, NATIVE
// MODULE: m1
// FILE: m1.kt