From f141c276bef66b85daf4ffa5e2d115a47037516c Mon Sep 17 00:00:00 2001 From: "Denis.Zharkov" Date: Wed, 24 Feb 2021 15:15:19 +0300 Subject: [PATCH] IR: Avoid recomputing Symbols::progressionElementTypes --- .../src/org/jetbrains/kotlin/backend/common/ir/Ir.kt | 6 +++++- .../kotlin/backend/common/lower/loops/HeaderInfo.kt | 5 ----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/Ir.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/Ir.kt index 95889632606..52be21aee2d 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/Ir.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/Ir.kt @@ -23,11 +23,11 @@ import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol import org.jetbrains.kotlin.ir.types.IrSimpleType import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.types.classOrNull +import org.jetbrains.kotlin.ir.types.defaultType import org.jetbrains.kotlin.ir.util.* import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.resolve.calls.components.isVararg -import org.jetbrains.kotlin.util.OperatorNameConventions import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly // This is what Context collects about IR. @@ -164,6 +164,10 @@ open class BuiltinSymbolsBase(protected val irBuiltIns: IrBuiltIns, protected va val integerClasses = listOf(byte, short, int, long) + val progressionElementTypes: Collection by lazy { + listOfNotNull(byte, short, int, long, char, uByte, uShort, uInt, uLong).map { it.defaultType } + } + val arrayOf = getSimpleFunction(Name.identifier("arrayOf")) { it.extensionReceiverParameter == null && it.dispatchReceiverParameter == null && it.valueParameters.size == 1 && it.valueParameters[0].isVararg diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/loops/HeaderInfo.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/loops/HeaderInfo.kt index d3ee9fa93ba..8627b2151d8 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/loops/HeaderInfo.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/loops/HeaderInfo.kt @@ -17,8 +17,6 @@ import org.jetbrains.kotlin.ir.declarations.IrVariable import org.jetbrains.kotlin.ir.expressions.IrCall import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.symbols.IrSymbol -import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.types.defaultType import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.utils.addToStdlib.firstNotNullResult @@ -350,6 +348,3 @@ internal class NestedHeaderInfoBuilderForWithIndex(context: CommonBackendContext DefaultSequenceHandler(context), ) } - -internal val Symbols<*>.progressionElementTypes: Collection - get() = listOfNotNull(byte, short, int, long, char, uByte, uShort, uInt, uLong).map { it.defaultType }