IrFunctionReference.fromSymbolDescriptor

(cherry picked from commit f9b70d2fa8649132ba344a9983553835c4afb3dd)
This commit is contained in:
Georgy Bronnikov
2020-10-14 14:55:07 +03:00
committed by Vasily Levchenko
parent db9e3c9085
commit 344b865232
3 changed files with 3 additions and 6 deletions
@@ -524,13 +524,12 @@ internal fun KotlinStubs.generateCFunctionPointer(
) )
addKotlin(fakeFunction) addKotlin(fakeFunction)
return IrFunctionReferenceImpl( return IrFunctionReferenceImpl.fromSymbolDescriptor(
expression.startOffset, expression.startOffset,
expression.endOffset, expression.endOffset,
expression.type, expression.type,
fakeFunction.symbol, fakeFunction.symbol,
typeArgumentsCount = 0, typeArgumentsCount = 0,
fakeFunction.valueParameters.size,
reflectionTarget = null reflectionTarget = null
) )
} }
@@ -113,13 +113,12 @@ internal class WorkersBridgesBuilding(val context: Context) : DeclarationContain
overriddenFunction = overriddenJobDescriptor, overriddenFunction = overriddenJobDescriptor,
targetSymbol = jobFunction.symbol) targetSymbol = jobFunction.symbol)
bridges += bridge bridges += bridge
expression.putValueArgument(3, IrFunctionReferenceImpl( expression.putValueArgument(3, IrFunctionReferenceImpl.fromSymbolDescriptor(
startOffset = job.startOffset, startOffset = job.startOffset,
endOffset = job.endOffset, endOffset = job.endOffset,
type = job.type, type = job.type,
symbol = bridge.symbol, symbol = bridge.symbol,
typeArgumentsCount = 0, typeArgumentsCount = 0,
valueArgumentsCount = bridge.symbol.owner.valueParameters.size,
reflectionTarget = null) reflectionTarget = null)
) )
return expression return expression
@@ -995,12 +995,11 @@ private class InteropTransformer(val context: Context, override val irFile: IrFi
&& irCallableReference.getArguments().isEmpty()) { renderCompilerError(expression) } && irCallableReference.getArguments().isEmpty()) { renderCompilerError(expression) }
val targetSymbol = irCallableReference.symbol val targetSymbol = irCallableReference.symbol
val jobPointer = IrFunctionReferenceImpl( val jobPointer = IrFunctionReferenceImpl.fromSymbolDescriptor(
builder.startOffset, builder.endOffset, builder.startOffset, builder.endOffset,
symbols.executeImpl.owner.valueParameters[3].type, symbols.executeImpl.owner.valueParameters[3].type,
targetSymbol, targetSymbol,
typeArgumentsCount = 0, typeArgumentsCount = 0,
targetSymbol.owner.valueParameters.size,
reflectionTarget = null) reflectionTarget = null)
builder.irCall(symbols.executeImpl).apply { builder.irCall(symbols.executeImpl).apply {