IR: remove unneeded casts after making IrCall's symbol a simple function
This commit is contained in:
+1
-4
@@ -6,7 +6,6 @@
|
||||
package org.jetbrains.kotlin.ir.backend.js.lower
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.BodyLoweringPass
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||
import org.jetbrains.kotlin.ir.backend.js.JsIrBackendContext
|
||||
import org.jetbrains.kotlin.ir.declarations.IrClass
|
||||
import org.jetbrains.kotlin.ir.declarations.IrDeclaration
|
||||
@@ -73,9 +72,7 @@ class PrimitiveCompanionLowering(val context: JsIrBackendContext) : BodyLowering
|
||||
override fun visitCall(expression: IrCall): IrExpression {
|
||||
val newCall = super.visitCall(expression) as IrCall
|
||||
|
||||
val function = expression.symbol.owner as IrSimpleFunction
|
||||
|
||||
val actualFunction = getActualPrimitiveCompanionPropertyAccessor(function)
|
||||
val actualFunction = getActualPrimitiveCompanionPropertyAccessor(expression.symbol.owner)
|
||||
?: return newCall
|
||||
|
||||
return irCall(newCall, actualFunction)
|
||||
|
||||
+4
-5
@@ -59,13 +59,12 @@ class PrimitiveContainerMemberCallTransformer(private val context: JsIrBackendCo
|
||||
}
|
||||
}
|
||||
|
||||
override fun transformFunctionAccess(expression: IrFunctionAccessExpression): IrExpression {
|
||||
val symbol = expression.symbol
|
||||
symbolToTransformer[symbol]?.let {
|
||||
return it(expression)
|
||||
override fun transformFunctionAccess(call: IrFunctionAccessExpression): IrExpression {
|
||||
symbolToTransformer[call.symbol]?.let {
|
||||
return it(call)
|
||||
}
|
||||
|
||||
return expression
|
||||
return call
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-4
@@ -78,11 +78,8 @@ fun translateCall(
|
||||
transformer: IrElementToJsExpressionTransformer
|
||||
): JsExpression {
|
||||
val function = expression.symbol.owner.realOverrideTarget
|
||||
require(function is IrSimpleFunction) { "Only IrSimpleFunction could be called via IrCall" } // TODO: fix it in IrCall
|
||||
|
||||
val symbol = function.symbol
|
||||
|
||||
context.staticContext.intrinsics[symbol]?.let {
|
||||
context.staticContext.intrinsics[function.symbol]?.let {
|
||||
return it(expression, context)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user