[Native] Drop addArguments from IrUtils2

We can simplify single usage of this function
This commit is contained in:
Ivan Kylchik
2023-08-16 11:14:44 +02:00
committed by Space Team
parent 20165dd699
commit 4fb29a5e12
3 changed files with 3 additions and 30 deletions
@@ -38,11 +38,10 @@ private fun Context.getTypeConversionImpl(
if (actualInlinedClass == expectedInlinedClass) return null
return when {
actualInlinedClass == null && expectedInlinedClass == null -> null
actualInlinedClass != null && expectedInlinedClass == null -> getBoxFunction(actualInlinedClass)
actualInlinedClass == null && expectedInlinedClass != null -> getUnboxFunction(expectedInlinedClass)
else -> error("actual type is ${actualInlinedClass?.fqNameForIrSerialization}, expected ${expectedInlinedClass?.fqNameForIrSerialization}")
}?.symbol
}.symbol
}
internal object DECLARATION_ORIGIN_INLINE_CLASS_SPECIAL_FUNCTION : IrDeclarationOriginImpl("INLINE_CLASS_SPECIAL_FUNCTION")
@@ -146,12 +146,12 @@ private class AutoboxingTransformer(val context: Context) : AbstractValueUsageTr
it.type = expectedType
return it
}
val parameter = conversion.owner.explicitParameters.single()
val parameter = conversion.owner.valueParameters.single()
val argument = this.uncheckedCast(parameter.type)
IrCallImpl(startOffset, endOffset, conversion.owner.returnType, conversion,
conversion.owner.typeParameters.size, conversion.owner.valueParameters.size).apply {
addArguments(mapOf(parameter to argument))
this.putValueArgument(parameter.index, argument)
}.uncheckedCast(this.type) // Try not to bring new type incompatibilities.
}
}
@@ -68,32 +68,6 @@ fun IrModuleFragment.addFile(fileEntry: IrFileEntry, packageFqName: FqName): IrF
.also { this.files += it }
}
fun IrFunctionAccessExpression.addArguments(args: Map<IrValueParameter, IrExpression>) {
val unhandledParameters = args.keys.toMutableSet()
fun getArg(parameter: IrValueParameter) = args[parameter]?.also { unhandledParameters -= parameter }
symbol.owner.dispatchReceiverParameter?.let {
val arg = getArg(it)
if (arg != null) {
this.dispatchReceiver = arg
}
}
symbol.owner.extensionReceiverParameter?.let {
val arg = getArg(it)
if (arg != null) {
this.extensionReceiver = arg
}
}
symbol.owner.valueParameters.forEach {
val arg = getArg(it)
if (arg != null) {
this.putValueArgument(it.index, arg)
}
}
}
fun IrBuilderWithScope.irCatch() =
IrCatchImpl(
startOffset, endOffset,