Big Chungus
06/12/2022, 11:13 AMBig Chungus
06/12/2022, 11:14 AMoverride fun visitFunctionAccess(expression: IrFunctionAccessExpression): IrExpression {
val candidates = context.referenceFunctions(expression.symbol.owner.kotlinFqName)
val pick = candidates.first { fn ->
fn.owner.valueParameters.any { it.type.classOrNull == klipContextClass }
}
debug { "pick: $pick" }
val irBuilder = DeclarationIrBuilder(context, expression.symbol)
val rewrite = irBuilder.irCall(pick).also {
it.putValueArgument(0, klipContextConstructorCall)
for (i in 0 until expression.valueArgumentsCount) {
it.putValueArgument(i + 1, expression.getValueArgument(i))
}
for (i in 0 until expression.typeArgumentsCount) {
it.putTypeArgument(i, expression.getTypeArgument(i))
}
debug { it.dump() }
}
return rewrite
}
shikasd
06/12/2022, 3:18 PMBig Chungus
06/12/2022, 3:36 PMBig Chungus
06/12/2022, 3:36 PMBig Chungus
06/12/2022, 3:37 PMshikasd
06/12/2022, 3:40 PMshikasd
06/12/2022, 3:41 PM