[IR] Supported IrFunctionReference.reflectionTarget

(cherry picked from commit fbaf57dab7a2cf25dcc469abe56c56ae41a5a2bb)
This commit is contained in:
Igor Chevdar
2020-01-22 21:25:29 +03:00
committed by Vasily Levchenko
parent 392d248c23
commit b711f14ae9
5 changed files with 14 additions and 7 deletions
@@ -535,7 +535,8 @@ internal fun KotlinStubs.generateCFunctionPointer(
expression.endOffset, expression.endOffset,
expression.type, expression.type,
fakeFunction.symbol, fakeFunction.symbol,
0 typeArgumentsCount = 0,
reflectionTarget = null
) )
} }
@@ -116,7 +116,8 @@ internal class WorkersBridgesBuilding(val context: Context) : DeclarationContain
endOffset = job.endOffset, endOffset = job.endOffset,
type = job.type, type = job.type,
symbol = bridge.symbol, symbol = bridge.symbol,
typeArgumentsCount = 0) typeArgumentsCount = 0,
reflectionTarget = null)
) )
return expression return expression
} }
@@ -211,7 +211,8 @@ internal class PropertyDelegationLowering(val context: Context) : FileLoweringPa
type = getterKFunctionType, type = getterKFunctionType,
symbol = expression.getter!!, symbol = expression.getter!!,
typeArgumentsCount = getter.typeParameters.size, typeArgumentsCount = getter.typeParameters.size,
valueArgumentsCount = getter.valueParameters.size valueArgumentsCount = getter.valueParameters.size,
reflectionTarget = expression.getter!!
).apply { ).apply {
this.dispatchReceiver = dispatchReceiver?.let { irGet(it) } this.dispatchReceiver = dispatchReceiver?.let { irGet(it) }
this.extensionReceiver = extensionReceiver?.let { irGet(it) } this.extensionReceiver = extensionReceiver?.let { irGet(it) }
@@ -233,7 +234,8 @@ internal class PropertyDelegationLowering(val context: Context) : FileLoweringPa
type = setterKFunctionType, type = setterKFunctionType,
symbol = expression.setter!!, symbol = expression.setter!!,
typeArgumentsCount = setter.typeParameters.size, typeArgumentsCount = setter.typeParameters.size,
valueArgumentsCount = setter.valueParameters.size valueArgumentsCount = setter.valueParameters.size,
reflectionTarget = expression.setter!!
).apply { ).apply {
this.dispatchReceiver = dispatchReceiver?.let { irGet(it) } this.dispatchReceiver = dispatchReceiver?.let { irGet(it) }
this.extensionReceiver = extensionReceiver?.let { irGet(it) } this.extensionReceiver = extensionReceiver?.let { irGet(it) }
@@ -1038,7 +1038,8 @@ private class InteropTransformer(val context: Context, override val irFile: IrFi
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,
reflectionTarget = null)
builder.irCall(symbols.executeImpl).apply { builder.irCall(symbols.executeImpl).apply {
putValueArgument(0, expression.dispatchReceiver) putValueArgument(0, expression.dispatchReceiver)
@@ -107,7 +107,8 @@ internal class TestProcessor (val context: Context) {
registerTestCase.valueParameters[1].type, registerTestCase.valueParameters[1].type,
it.function.symbol, it.function.symbol,
typeArgumentsCount = 0, typeArgumentsCount = 0,
valueArgumentsCount = 0)) valueArgumentsCount = 0,
reflectionTarget = null))
putValueArgument(2, irBoolean(it.ignored)) putValueArgument(2, irBoolean(it.ignored))
} }
} else { } else {
@@ -127,7 +128,8 @@ internal class TestProcessor (val context: Context) {
registerFunction.valueParameters[1].type, registerFunction.valueParameters[1].type,
it.function.symbol, it.function.symbol,
typeArgumentsCount = 0, typeArgumentsCount = 0,
valueArgumentsCount = 0)) valueArgumentsCount = 0,
reflectionTarget = null))
} }
} }
} }