PrimitiveCompanionLowering
This commit is contained in:
committed by
Anton Bannykh
parent
edf6dec63b
commit
fb36432cb5
+6
-5
@@ -5,12 +5,13 @@
|
||||
|
||||
package org.jetbrains.kotlin.ir.backend.js.lower
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.FileLoweringPass
|
||||
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.IrFile
|
||||
import org.jetbrains.kotlin.ir.declarations.IrDeclaration
|
||||
import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
|
||||
import org.jetbrains.kotlin.ir.expressions.IrBody
|
||||
import org.jetbrains.kotlin.ir.expressions.IrCall
|
||||
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
||||
import org.jetbrains.kotlin.ir.expressions.IrGetObjectValue
|
||||
@@ -22,7 +23,7 @@ import org.jetbrains.kotlin.ir.util.irCall
|
||||
import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid
|
||||
import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid
|
||||
|
||||
class PrimitiveCompanionLowering(val context: JsIrBackendContext) : FileLoweringPass {
|
||||
class PrimitiveCompanionLowering(val context: JsIrBackendContext) : BodyLoweringPass {
|
||||
|
||||
private fun getActualPrimitiveCompanion(irClass: IrClass): IrClass? {
|
||||
if (!irClass.isCompanion)
|
||||
@@ -55,8 +56,8 @@ class PrimitiveCompanionLowering(val context: JsIrBackendContext) : FileLowering
|
||||
.single { it.name == function.name }
|
||||
}
|
||||
|
||||
override fun lower(irFile: IrFile) {
|
||||
irFile.transformChildrenVoid(object : IrElementTransformerVoid() {
|
||||
override fun lower(irBody: IrBody, container: IrDeclaration) {
|
||||
irBody.transformChildrenVoid(object : IrElementTransformerVoid() {
|
||||
override fun visitGetObjectValue(expression: IrGetObjectValue): IrExpression {
|
||||
val irClass = expression.symbol.owner
|
||||
val actualCompanion = getActualPrimitiveCompanion(irClass) ?: return expression
|
||||
|
||||
Reference in New Issue
Block a user