[JS IR] Fix typo
This commit is contained in:
+8
-8
@@ -67,7 +67,7 @@ class CallableReferenceLowering(private val context: CommonBackendContext) : Bod
|
|||||||
return expression.run {
|
return expression.run {
|
||||||
val vpCount = if (function.isSuspend) 1 else 0
|
val vpCount = if (function.isSuspend) 1 else 0
|
||||||
val ctorCall =
|
val ctorCall =
|
||||||
IrConstructorCallImpl(startOffset, endOffset, type, ctor.symbol, 0 /*TODO: properly set type arguments*/, 0, vpCount, CALLABLE_REFERNCE_CREATE).apply {
|
IrConstructorCallImpl(startOffset, endOffset, type, ctor.symbol, 0 /*TODO: properly set type arguments*/, 0, vpCount, CALLABLE_REFERENCE_CREATE).apply {
|
||||||
if (function.isSuspend) {
|
if (function.isSuspend) {
|
||||||
putValueArgument(0, IrConstImpl.constNull(startOffset, endOffset, context.irBuiltIns.nothingNType))
|
putValueArgument(0, IrConstImpl.constNull(startOffset, endOffset, context.irBuiltIns.nothingNType))
|
||||||
}
|
}
|
||||||
@@ -85,7 +85,7 @@ class CallableReferenceLowering(private val context: CommonBackendContext) : Bod
|
|||||||
|
|
||||||
return expression.run {
|
return expression.run {
|
||||||
val ctorCall =
|
val ctorCall =
|
||||||
IrConstructorCallImpl(startOffset, endOffset, type, ctor.symbol, 0 /*TODO: properly set type arguments*/, 0, 0, CALLABLE_REFERNCE_CREATE)
|
IrConstructorCallImpl(startOffset, endOffset, type, ctor.symbol, 0 /*TODO: properly set type arguments*/, 0, 0, CALLABLE_REFERENCE_CREATE)
|
||||||
IrCompositeImpl(startOffset, endOffset, type, origin, listOf(clazz, ctorCall))
|
IrCompositeImpl(startOffset, endOffset, type, origin, listOf(clazz, ctorCall))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -211,16 +211,16 @@ class CallableReferenceLowering(private val context: CommonBackendContext) : Bod
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun getValue(d: IrValueDeclaration): IrGetValue =
|
fun getValue(d: IrValueDeclaration): IrGetValue =
|
||||||
IrGetValueImpl(UNDEFINED_OFFSET, UNDEFINED_OFFSET, d.type, d.symbol, CALLABLE_REFERNCE_INVOKE)
|
IrGetValueImpl(UNDEFINED_OFFSET, UNDEFINED_OFFSET, d.type, d.symbol, CALLABLE_REFERENCE_INVOKE)
|
||||||
|
|
||||||
|
|
||||||
private fun IrSimpleFunction.buildInvoke(): IrFunctionAccessExpression {
|
private fun IrSimpleFunction.buildInvoke(): IrFunctionAccessExpression {
|
||||||
val callee = function
|
val callee = function
|
||||||
val irCall = reference.run {
|
val irCall = reference.run {
|
||||||
if (callee is IrConstructor) {
|
if (callee is IrConstructor) {
|
||||||
IrConstructorCallImpl(startOffset, endOffset, callee.parentAsClass.defaultType, callee.symbol, callee.typeParameters.size, 0 /* TODO */, callee.valueParameters.size, CALLABLE_REFERNCE_INVOKE)
|
IrConstructorCallImpl(startOffset, endOffset, callee.parentAsClass.defaultType, callee.symbol, callee.typeParameters.size, 0 /* TODO */, callee.valueParameters.size, CALLABLE_REFERENCE_INVOKE)
|
||||||
} else {
|
} else {
|
||||||
IrCallImpl(startOffset, endOffset, callee.returnType, callee.symbol, callee.typeParameters.size, callee.valueParameters.size, CALLABLE_REFERNCE_INVOKE)
|
IrCallImpl(startOffset, endOffset, callee.returnType, callee.symbol, callee.typeParameters.size, callee.valueParameters.size, CALLABLE_REFERENCE_INVOKE)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -254,7 +254,7 @@ class CallableReferenceLowering(private val context: CommonBackendContext) : Bod
|
|||||||
boundReceiverField.symbol,
|
boundReceiverField.symbol,
|
||||||
boundReceiverField.type,
|
boundReceiverField.type,
|
||||||
thisValue,
|
thisValue,
|
||||||
CALLABLE_REFERNCE_INVOKE
|
CALLABLE_REFERENCE_INVOKE
|
||||||
)
|
)
|
||||||
|
|
||||||
if (funRef.dispatchReceiver != null) irCall.dispatchReceiver = value
|
if (funRef.dispatchReceiver != null) irCall.dispatchReceiver = value
|
||||||
@@ -352,8 +352,8 @@ class CallableReferenceLowering(private val context: CommonBackendContext) : Bod
|
|||||||
object FUNCTION_REFERENCE_IMPL : IrDeclarationOriginImpl("FUNCTION_REFERENCE_IMPL")
|
object FUNCTION_REFERENCE_IMPL : IrDeclarationOriginImpl("FUNCTION_REFERENCE_IMPL")
|
||||||
object GENERATED_MEMBER_IN_CALLABLE_REFERENCE : IrDeclarationOriginImpl("GENERATED_MEMBER_IN_CALLABLE_REFERENCE")
|
object GENERATED_MEMBER_IN_CALLABLE_REFERENCE : IrDeclarationOriginImpl("GENERATED_MEMBER_IN_CALLABLE_REFERENCE")
|
||||||
|
|
||||||
object CALLABLE_REFERNCE_CREATE : IrStatementOriginImpl("CALLABLE_REFERENCE_CREATE")
|
object CALLABLE_REFERENCE_CREATE : IrStatementOriginImpl("CALLABLE_REFERENCE_CREATE")
|
||||||
object CALLABLE_REFERNCE_INVOKE : IrStatementOriginImpl("CALLABLE_REFERENCE_INVOKE")
|
object CALLABLE_REFERENCE_INVOKE : IrStatementOriginImpl("CALLABLE_REFERENCE_INVOKE")
|
||||||
|
|
||||||
val THIS_NAME = Name.special("<this>")
|
val THIS_NAME = Name.special("<this>")
|
||||||
val BOUND_RECEIVER_NAME = Name.identifier("\$boundThis")
|
val BOUND_RECEIVER_NAME = Name.identifier("\$boundThis")
|
||||||
|
|||||||
+2
-2
@@ -39,7 +39,7 @@ class InteropCallableReferenceLowering(val context: JsIrBackendContext) : BodyLo
|
|||||||
inner class CallableReferenceLowerTransformer : IrElementTransformerVoid() {
|
inner class CallableReferenceLowerTransformer : IrElementTransformerVoid() {
|
||||||
override fun visitConstructorCall(expression: IrConstructorCall): IrExpression {
|
override fun visitConstructorCall(expression: IrConstructorCall): IrExpression {
|
||||||
expression.transformChildrenVoid(this)
|
expression.transformChildrenVoid(this)
|
||||||
if (expression.origin === CallableReferenceLowering.Companion.CALLABLE_REFERNCE_CREATE) {
|
if (expression.origin === CallableReferenceLowering.Companion.CALLABLE_REFERENCE_CREATE) {
|
||||||
return transformToJavaScriptFunction(expression)
|
return transformToJavaScriptFunction(expression)
|
||||||
}
|
}
|
||||||
return expression
|
return expression
|
||||||
@@ -162,7 +162,7 @@ class InteropCallableReferenceLowering(val context: JsIrBackendContext) : BodyLo
|
|||||||
nameGetter.symbol,
|
nameGetter.symbol,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
CallableReferenceLowering.Companion.CALLABLE_REFERNCE_INVOKE
|
CallableReferenceLowering.Companion.CALLABLE_REFERENCE_INVOKE
|
||||||
).apply {
|
).apply {
|
||||||
dispatchReceiver = JsIrBuilder.buildGetValue(instanceVal.symbol)
|
dispatchReceiver = JsIrBuilder.buildGetValue(instanceVal.symbol)
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -35,7 +35,7 @@ class ReflectionCallsTransformer(private val context: JsIrBackendContext) : Call
|
|||||||
addWithPredicate(
|
addWithPredicate(
|
||||||
Name.special(Namer.KCALLABLE_GET_NAME),
|
Name.special(Namer.KCALLABLE_GET_NAME),
|
||||||
{ call ->
|
{ call ->
|
||||||
call.origin != CallableReferenceLowering.Companion.CALLABLE_REFERNCE_INVOKE &&
|
call.origin != CallableReferenceLowering.Companion.CALLABLE_REFERENCE_INVOKE &&
|
||||||
call.symbol.owner.dispatchReceiverParameter?.run { type.isSubtypeOfClass(context.irBuiltIns.kCallableClass) } ?: false
|
call.symbol.owner.dispatchReceiverParameter?.run { type.isSubtypeOfClass(context.irBuiltIns.kCallableClass) } ?: false
|
||||||
},
|
},
|
||||||
{ call ->
|
{ call ->
|
||||||
|
|||||||
Reference in New Issue
Block a user