K2: fix intrinsic analysis in FirToConstantValueChecker
#KT-57986 Fixed
This commit is contained in:
committed by
Space Team
parent
c826c7301c
commit
5cff8c15ab
+4
-3
@@ -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
@@ -1,5 +1,4 @@
|
||||
// ISSUE: KT-57986
|
||||
// IGNORE_BACKEND_K2: JS_IR, NATIVE
|
||||
|
||||
// MODULE: m1
|
||||
// FILE: m1.kt
|
||||
|
||||
Reference in New Issue
Block a user