[IR] Supported IrFunctionReference.reflectionTarget
(cherry picked from commit fbaf57dab7a2cf25dcc469abe56c56ae41a5a2bb)
This commit is contained in:
committed by
Vasily Levchenko
parent
392d248c23
commit
b711f14ae9
+2
-1
@@ -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
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-2
@@ -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) }
|
||||||
|
|||||||
+2
-1
@@ -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)
|
||||||
|
|||||||
+4
-2
@@ -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))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user