[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.type,
fakeFunction.symbol,
0
typeArgumentsCount = 0,
reflectionTarget = null
)
}
@@ -116,7 +116,8 @@ internal class WorkersBridgesBuilding(val context: Context) : DeclarationContain
endOffset = job.endOffset,
type = job.type,
symbol = bridge.symbol,
typeArgumentsCount = 0)
typeArgumentsCount = 0,
reflectionTarget = null)
)
return expression
}
@@ -211,7 +211,8 @@ internal class PropertyDelegationLowering(val context: Context) : FileLoweringPa
type = getterKFunctionType,
symbol = expression.getter!!,
typeArgumentsCount = getter.typeParameters.size,
valueArgumentsCount = getter.valueParameters.size
valueArgumentsCount = getter.valueParameters.size,
reflectionTarget = expression.getter!!
).apply {
this.dispatchReceiver = dispatchReceiver?.let { irGet(it) }
this.extensionReceiver = extensionReceiver?.let { irGet(it) }
@@ -233,7 +234,8 @@ internal class PropertyDelegationLowering(val context: Context) : FileLoweringPa
type = setterKFunctionType,
symbol = expression.setter!!,
typeArgumentsCount = setter.typeParameters.size,
valueArgumentsCount = setter.valueParameters.size
valueArgumentsCount = setter.valueParameters.size,
reflectionTarget = expression.setter!!
).apply {
this.dispatchReceiver = dispatchReceiver?.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,
symbols.executeImpl.owner.valueParameters[3].type,
targetSymbol,
typeArgumentsCount = 0)
typeArgumentsCount = 0,
reflectionTarget = null)
builder.irCall(symbols.executeImpl).apply {
putValueArgument(0, expression.dispatchReceiver)
@@ -107,7 +107,8 @@ internal class TestProcessor (val context: Context) {
registerTestCase.valueParameters[1].type,
it.function.symbol,
typeArgumentsCount = 0,
valueArgumentsCount = 0))
valueArgumentsCount = 0,
reflectionTarget = null))
putValueArgument(2, irBoolean(it.ignored))
}
} else {
@@ -127,7 +128,8 @@ internal class TestProcessor (val context: Context) {
registerFunction.valueParameters[1].type,
it.function.symbol,
typeArgumentsCount = 0,
valueArgumentsCount = 0))
valueArgumentsCount = 0,
reflectionTarget = null))
}
}
}