From f1fd3d6b5dd520a1ac46318418ca3cb5aae5d0e2 Mon Sep 17 00:00:00 2001 From: Jinseong Jeon Date: Sun, 25 Oct 2020 22:00:55 -0700 Subject: [PATCH] FIR2IR: avoid using constant -1 --- .../jetbrains/kotlin/fir/backend/ConversionUtils.kt | 3 ++- .../kotlin/fir/backend/Fir2IrClassifierStorage.kt | 3 ++- .../kotlin/fir/backend/Fir2IrDeclarationStorage.kt | 3 ++- .../fir/backend/generators/AdapterGenerator.kt | 5 +++-- .../backend/generators/CallAndReferenceGenerator.kt | 12 ++++++++++-- 5 files changed, 19 insertions(+), 7 deletions(-) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt index 5c8b40313e5..e2434965f69 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt @@ -31,6 +31,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET +import org.jetbrains.kotlin.ir.builders.declarations.UNDEFINED_PARAMETER_INDEX import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.descriptors.WrappedReceiverParameterDescriptor import org.jetbrains.kotlin.ir.expressions.IrConst @@ -317,7 +318,7 @@ internal fun IrDeclarationParent.declareThisReceiverParameter( ) { symbol -> symbolTable.irFactory.createValueParameter( startOffset, endOffset, thisOrigin, symbol, - Name.special(""), -1, thisType, + Name.special(""), UNDEFINED_PARAMETER_INDEX, thisType, varargElementType = null, isCrossinline = false, isNoinline = false, isAssignable = false ).apply { this.parent = this@declareThisReceiverParameter diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt index e56ecaf571b..f979e551b70 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt @@ -21,6 +21,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol import org.jetbrains.kotlin.fir.types.FirTypeRef +import org.jetbrains.kotlin.ir.builders.declarations.UNDEFINED_PARAMETER_INDEX import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.descriptors.WrappedClassDescriptor import org.jetbrains.kotlin.ir.descriptors.WrappedEnumEntryDescriptor @@ -338,7 +339,7 @@ class Fir2IrClassifierStorage( internal fun getCachedIrTypeParameter( typeParameter: FirTypeParameter, - index: Int = -1, + index: Int = UNDEFINED_PARAMETER_INDEX, typeContext: ConversionTypeContext = ConversionTypeContext.DEFAULT ): IrTypeParameter? { // Here transformation is a bit difficult because one FIR property type parameter diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt index 0ad64004aa7..598632f58b4 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt @@ -34,6 +34,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET +import org.jetbrains.kotlin.ir.builders.declarations.UNDEFINED_PARAMETER_INDEX import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.declarations.impl.IrVariableImpl import org.jetbrains.kotlin.ir.declarations.lazy.IrLazyClass @@ -844,7 +845,7 @@ class Fir2IrDeclarationStorage( internal fun createIrParameter( valueParameter: FirValueParameter, - index: Int = -1, + index: Int = UNDEFINED_PARAMETER_INDEX, useStubForDefaultValueStub: Boolean = true, typeContext: ConversionTypeContext = ConversionTypeContext.DEFAULT ): IrValueParameter { diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/AdapterGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/AdapterGenerator.kt index 721a1134bf1..cb59bea9a29 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/AdapterGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/AdapterGenerator.kt @@ -18,6 +18,7 @@ import org.jetbrains.kotlin.fir.types.ConeClassLikeType import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.types.coneType +import org.jetbrains.kotlin.ir.builders.declarations.UNDEFINED_PARAMETER_INDEX import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.descriptors.WrappedSimpleFunctionDescriptor import org.jetbrains.kotlin.ir.descriptors.WrappedValueParameterDescriptor @@ -221,7 +222,7 @@ internal class AdapterGenerator( createAdapterParameter( irAdapterFunction, Name.identifier("receiver"), - index = -1, + index = UNDEFINED_PARAMETER_INDEX, boundReceiver.type, IrDeclarationOrigin.ADAPTER_PARAMETER_FOR_CALLABLE_REFERENCE ) @@ -474,7 +475,7 @@ internal class AdapterGenerator( irAdapterFunction.extensionReceiverParameter = createAdapterParameter( irAdapterFunction, Name.identifier("callee"), - -1, + UNDEFINED_PARAMETER_INDEX, argumentType, IrDeclarationOrigin.ADAPTER_PARAMETER_FOR_SUSPEND_CONVERSION ) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/CallAndReferenceGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/CallAndReferenceGenerator.kt index 95e1f9f9970..17fc9961843 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/CallAndReferenceGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/CallAndReferenceGenerator.kt @@ -26,6 +26,8 @@ import org.jetbrains.kotlin.fir.scopes.unsubstitutedScope import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.typeContext import org.jetbrains.kotlin.fir.types.* +import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET +import org.jetbrains.kotlin.ir.builders.declarations.UNDEFINED_PARAMETER_INDEX import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.expressions.* import org.jetbrains.kotlin.ir.expressions.impl.* @@ -527,7 +529,13 @@ class CallAndReferenceGenerator( if (parameter.isVararg && !argumentMapping.containsValue(parameter)) { val elementType = parameter.returnTypeRef.toIrType() putValueArgument( - index, IrVarargImpl(-1, -1, elementType, elementType.toArrayOrPrimitiveArrayType(irBuiltIns)) + index, + IrVarargImpl( + UNDEFINED_OFFSET, + UNDEFINED_OFFSET, + elementType, + elementType.toArrayOrPrimitiveArrayType(irBuiltIns) + ) ) } } @@ -540,7 +548,7 @@ class CallAndReferenceGenerator( parametersInActualOrder: Collection, valueParameters: List ): Boolean { - var lastValueParameterIndex = -1 + var lastValueParameterIndex = UNDEFINED_PARAMETER_INDEX for (parameter in parametersInActualOrder) { val index = valueParameters.indexOf(parameter) if (index < lastValueParameterIndex) {