FIR2IR: avoid using constant -1

This commit is contained in:
Jinseong Jeon
2020-10-25 22:00:55 -07:00
committed by teamcityserver
parent 707e94bab5
commit f1fd3d6b5d
5 changed files with 19 additions and 7 deletions
@@ -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("<this>"), -1, thisType,
Name.special("<this>"), UNDEFINED_PARAMETER_INDEX, thisType,
varargElementType = null, isCrossinline = false, isNoinline = false, isAssignable = false
).apply {
this.parent = this@declareThisReceiverParameter
@@ -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
@@ -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 {
@@ -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
)
@@ -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<FirValueParameter>,
valueParameters: List<FirValueParameter>
): Boolean {
var lastValueParameterIndex = -1
var lastValueParameterIndex = UNDEFINED_PARAMETER_INDEX
for (parameter in parametersInActualOrder) {
val index = valueParameters.indexOf(parameter)
if (index < lastValueParameterIndex) {