Exclude rangeUntil operation from constant evaluation and interpretation #KT-52933
This commit is contained in:
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user