IR: remove unneeded casts after making IrCall's symbol a simple function

This commit is contained in:
Alexander Udalov
2020-08-14 12:28:49 +02:00
parent 3bdbfc1e73
commit 9961bd1fe1
11 changed files with 18 additions and 39 deletions
@@ -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)
@@ -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
}
}
@@ -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)
}