Exclude rangeUntil operation from constant evaluation and interpretation #KT-52933

This commit is contained in:
Ilya Gorbunov
2022-08-15 19:26:27 +02:00
committed by Space
parent bbe5dca33e
commit 800ff20fc7
2 changed files with 4 additions and 1 deletions
+1 -1
View File
@@ -17,7 +17,7 @@ import org.jetbrains.kotlin.utils.Printer
import java.io.File
val DEST_FILE: File = File("compiler/frontend.common/src/org/jetbrains/kotlin/resolve/constants/evaluate/OperationsMapGenerated.kt")
private val EXCLUDED_FUNCTIONS: List<String> = listOf("rangeTo", "hashCode", "inc", "dec", "subSequence")
private val EXCLUDED_FUNCTIONS: List<String> = listOf("rangeTo", "rangeUntil", "hashCode", "inc", "dec", "subSequence")
fun main() {
GeneratorsFileUtil.writeFileIfContentChanged(DEST_FILE, generate())
@@ -204,10 +204,13 @@ private fun getOperationMap(argumentsCount: Int): MutableList<Operation> {
return !isPrimitive && isFakeOverridden
}
val excludedBinaryOperations = listOf("rangeUntil").map { Name.identifier(it) }
for (classDescriptor in allPrimitiveTypes + additionalBuiltIns + arrays) {
val compileTimeFunctions = classDescriptor.unsubstitutedMemberScope.getContributedDescriptors()
.filterIsInstance<CallableDescriptor>()
.filter { !it.isFakeOverride(classDescriptor) && it.valueParameters.size + 1 == argumentsCount }
.filter { it.name !in excludedBinaryOperations }
for (function in compileTimeFunctions) {
operationMap.add(