FIR2IR: avoid using constant -1
This commit is contained in:
committed by
teamcityserver
parent
707e94bab5
commit
f1fd3d6b5d
@@ -31,6 +31,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.*
|
|||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
import org.jetbrains.kotlin.ir.IrElement
|
import org.jetbrains.kotlin.ir.IrElement
|
||||||
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
|
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.*
|
||||||
import org.jetbrains.kotlin.ir.descriptors.WrappedReceiverParameterDescriptor
|
import org.jetbrains.kotlin.ir.descriptors.WrappedReceiverParameterDescriptor
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrConst
|
import org.jetbrains.kotlin.ir.expressions.IrConst
|
||||||
@@ -317,7 +318,7 @@ internal fun IrDeclarationParent.declareThisReceiverParameter(
|
|||||||
) { symbol ->
|
) { symbol ->
|
||||||
symbolTable.irFactory.createValueParameter(
|
symbolTable.irFactory.createValueParameter(
|
||||||
startOffset, endOffset, thisOrigin, symbol,
|
startOffset, endOffset, thisOrigin, symbol,
|
||||||
Name.special("<this>"), -1, thisType,
|
Name.special("<this>"), UNDEFINED_PARAMETER_INDEX, thisType,
|
||||||
varargElementType = null, isCrossinline = false, isNoinline = false, isAssignable = false
|
varargElementType = null, isCrossinline = false, isNoinline = false, isAssignable = false
|
||||||
).apply {
|
).apply {
|
||||||
this.parent = this@declareThisReceiverParameter
|
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.FirClassSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
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.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.descriptors.WrappedClassDescriptor
|
import org.jetbrains.kotlin.ir.descriptors.WrappedClassDescriptor
|
||||||
import org.jetbrains.kotlin.ir.descriptors.WrappedEnumEntryDescriptor
|
import org.jetbrains.kotlin.ir.descriptors.WrappedEnumEntryDescriptor
|
||||||
@@ -338,7 +339,7 @@ class Fir2IrClassifierStorage(
|
|||||||
|
|
||||||
internal fun getCachedIrTypeParameter(
|
internal fun getCachedIrTypeParameter(
|
||||||
typeParameter: FirTypeParameter,
|
typeParameter: FirTypeParameter,
|
||||||
index: Int = -1,
|
index: Int = UNDEFINED_PARAMETER_INDEX,
|
||||||
typeContext: ConversionTypeContext = ConversionTypeContext.DEFAULT
|
typeContext: ConversionTypeContext = ConversionTypeContext.DEFAULT
|
||||||
): IrTypeParameter? {
|
): IrTypeParameter? {
|
||||||
// Here transformation is a bit difficult because one FIR property type parameter
|
// Here transformation is a bit difficult because one FIR property type parameter
|
||||||
|
|||||||
+2
-1
@@ -34,6 +34,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.*
|
|||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||||
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
|
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.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.impl.IrVariableImpl
|
import org.jetbrains.kotlin.ir.declarations.impl.IrVariableImpl
|
||||||
import org.jetbrains.kotlin.ir.declarations.lazy.IrLazyClass
|
import org.jetbrains.kotlin.ir.declarations.lazy.IrLazyClass
|
||||||
@@ -844,7 +845,7 @@ class Fir2IrDeclarationStorage(
|
|||||||
|
|
||||||
internal fun createIrParameter(
|
internal fun createIrParameter(
|
||||||
valueParameter: FirValueParameter,
|
valueParameter: FirValueParameter,
|
||||||
index: Int = -1,
|
index: Int = UNDEFINED_PARAMETER_INDEX,
|
||||||
useStubForDefaultValueStub: Boolean = true,
|
useStubForDefaultValueStub: Boolean = true,
|
||||||
typeContext: ConversionTypeContext = ConversionTypeContext.DEFAULT
|
typeContext: ConversionTypeContext = ConversionTypeContext.DEFAULT
|
||||||
): IrValueParameter {
|
): IrValueParameter {
|
||||||
|
|||||||
+3
-2
@@ -18,6 +18,7 @@ import org.jetbrains.kotlin.fir.types.ConeClassLikeType
|
|||||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
import org.jetbrains.kotlin.fir.types.coneType
|
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.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.descriptors.WrappedSimpleFunctionDescriptor
|
import org.jetbrains.kotlin.ir.descriptors.WrappedSimpleFunctionDescriptor
|
||||||
import org.jetbrains.kotlin.ir.descriptors.WrappedValueParameterDescriptor
|
import org.jetbrains.kotlin.ir.descriptors.WrappedValueParameterDescriptor
|
||||||
@@ -221,7 +222,7 @@ internal class AdapterGenerator(
|
|||||||
createAdapterParameter(
|
createAdapterParameter(
|
||||||
irAdapterFunction,
|
irAdapterFunction,
|
||||||
Name.identifier("receiver"),
|
Name.identifier("receiver"),
|
||||||
index = -1,
|
index = UNDEFINED_PARAMETER_INDEX,
|
||||||
boundReceiver.type,
|
boundReceiver.type,
|
||||||
IrDeclarationOrigin.ADAPTER_PARAMETER_FOR_CALLABLE_REFERENCE
|
IrDeclarationOrigin.ADAPTER_PARAMETER_FOR_CALLABLE_REFERENCE
|
||||||
)
|
)
|
||||||
@@ -474,7 +475,7 @@ internal class AdapterGenerator(
|
|||||||
irAdapterFunction.extensionReceiverParameter = createAdapterParameter(
|
irAdapterFunction.extensionReceiverParameter = createAdapterParameter(
|
||||||
irAdapterFunction,
|
irAdapterFunction,
|
||||||
Name.identifier("callee"),
|
Name.identifier("callee"),
|
||||||
-1,
|
UNDEFINED_PARAMETER_INDEX,
|
||||||
argumentType,
|
argumentType,
|
||||||
IrDeclarationOrigin.ADAPTER_PARAMETER_FOR_SUSPEND_CONVERSION
|
IrDeclarationOrigin.ADAPTER_PARAMETER_FOR_SUSPEND_CONVERSION
|
||||||
)
|
)
|
||||||
|
|||||||
+10
-2
@@ -26,6 +26,8 @@ import org.jetbrains.kotlin.fir.scopes.unsubstitutedScope
|
|||||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||||
import org.jetbrains.kotlin.fir.typeContext
|
import org.jetbrains.kotlin.fir.typeContext
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
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.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.expressions.*
|
import org.jetbrains.kotlin.ir.expressions.*
|
||||||
import org.jetbrains.kotlin.ir.expressions.impl.*
|
import org.jetbrains.kotlin.ir.expressions.impl.*
|
||||||
@@ -527,7 +529,13 @@ class CallAndReferenceGenerator(
|
|||||||
if (parameter.isVararg && !argumentMapping.containsValue(parameter)) {
|
if (parameter.isVararg && !argumentMapping.containsValue(parameter)) {
|
||||||
val elementType = parameter.returnTypeRef.toIrType()
|
val elementType = parameter.returnTypeRef.toIrType()
|
||||||
putValueArgument(
|
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>,
|
parametersInActualOrder: Collection<FirValueParameter>,
|
||||||
valueParameters: List<FirValueParameter>
|
valueParameters: List<FirValueParameter>
|
||||||
): Boolean {
|
): Boolean {
|
||||||
var lastValueParameterIndex = -1
|
var lastValueParameterIndex = UNDEFINED_PARAMETER_INDEX
|
||||||
for (parameter in parametersInActualOrder) {
|
for (parameter in parametersInActualOrder) {
|
||||||
val index = valueParameters.indexOf(parameter)
|
val index = valueParameters.indexOf(parameter)
|
||||||
if (index < lastValueParameterIndex) {
|
if (index < lastValueParameterIndex) {
|
||||||
|
|||||||
Reference in New Issue
Block a user