[K/JS] Fix corutines build for 1.9.20
This reverts commit f0d6471a8bcbdfc52ddc840a6383032ef86976d1.
This commit is contained in:
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.backend.common.lower.inline.LocalClassesInInlineFunc
|
||||
import org.jetbrains.kotlin.backend.common.lower.inline.LocalClassesInInlineLambdasLowering
|
||||
import org.jetbrains.kotlin.backend.common.lower.loops.ForLoopsLowering
|
||||
import org.jetbrains.kotlin.backend.common.phaser.*
|
||||
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
||||
import org.jetbrains.kotlin.ir.backend.js.lower.*
|
||||
import org.jetbrains.kotlin.ir.backend.js.lower.calls.CallsLowering
|
||||
import org.jetbrains.kotlin.ir.backend.js.lower.cleanup.CleanupLowering
|
||||
@@ -22,6 +23,7 @@ import org.jetbrains.kotlin.ir.backend.js.lower.coroutines.AddContinuationToFunc
|
||||
import org.jetbrains.kotlin.ir.backend.js.lower.coroutines.JsSuspendArityStoreLowering
|
||||
import org.jetbrains.kotlin.ir.backend.js.lower.coroutines.JsSuspendFunctionsLowering
|
||||
import org.jetbrains.kotlin.ir.backend.js.lower.inline.*
|
||||
import org.jetbrains.kotlin.ir.backend.js.transformers.irToJs.JsGenerationGranularity
|
||||
import org.jetbrains.kotlin.ir.declarations.IrFile
|
||||
import org.jetbrains.kotlin.ir.declarations.IrModuleFragment
|
||||
import org.jetbrains.kotlin.ir.interpreter.IrInterpreterConfiguration
|
||||
@@ -736,7 +738,7 @@ private val inlineClassUsageLoweringPhase = makeBodyLoweringPhase(
|
||||
)
|
||||
|
||||
private val autoboxingTransformerPhase = makeBodyLoweringPhase(
|
||||
{ AutoboxingTransformer(it, shouldCalculateActualTypeForInlinedFunction = true) },
|
||||
::AutoboxingTransformer,
|
||||
name = "AutoboxingTransformer",
|
||||
description = "Insert box/unbox intrinsics"
|
||||
)
|
||||
|
||||
+3
-17
@@ -31,10 +31,7 @@ import org.jetbrains.kotlin.ir.util.render
|
||||
|
||||
// Copied and adapted from Kotlin/Native
|
||||
|
||||
abstract class AbstractValueUsageLowering(
|
||||
val context: JsCommonBackendContext,
|
||||
private val shouldCalculateActualTypeForInlinedFunction: Boolean = false
|
||||
) : AbstractValueUsageTransformer(context.irBuiltIns),
|
||||
abstract class AbstractValueUsageLowering(val context: JsCommonBackendContext) : AbstractValueUsageTransformer(context.irBuiltIns),
|
||||
BodyLoweringPass {
|
||||
|
||||
val icUtils = context.inlineClassesUtils
|
||||
@@ -55,19 +52,11 @@ abstract class AbstractValueUsageLowering(
|
||||
|
||||
abstract fun IrExpression.useExpressionAsType(actualType: IrType, expectedType: IrType): IrExpression
|
||||
|
||||
protected fun IrExpression.getActualType(): IrType = when (this) {
|
||||
protected fun IrExpression.getActualType() = when (this) {
|
||||
is IrConstructorCall -> symbol.owner.returnType
|
||||
is IrCall -> symbol.owner.realOverrideTarget.returnType
|
||||
is IrGetField -> this.symbol.owner.type
|
||||
|
||||
is IrInlinedFunctionBlock -> {
|
||||
if (shouldCalculateActualTypeForInlinedFunction) {
|
||||
inlineCall.getActualType()
|
||||
} else {
|
||||
this.type
|
||||
}
|
||||
}
|
||||
|
||||
is IrTypeOperatorCall -> {
|
||||
if (operator == IrTypeOperator.REINTERPRET_CAST) {
|
||||
this.typeOperand
|
||||
@@ -131,10 +120,7 @@ abstract class AbstractValueUsageLowering(
|
||||
)
|
||||
}
|
||||
|
||||
class AutoboxingTransformer(
|
||||
context: JsCommonBackendContext,
|
||||
shouldCalculateActualTypeForInlinedFunction: Boolean = false
|
||||
) : AbstractValueUsageLowering(context, shouldCalculateActualTypeForInlinedFunction) {
|
||||
class AutoboxingTransformer(context: JsCommonBackendContext) : AbstractValueUsageLowering(context) {
|
||||
private var processingReturnStack = mutableListOf<IrReturn>()
|
||||
|
||||
private fun IrExpression.useReturnableExpressionAsType(expectedType: IrType): IrExpression {
|
||||
|
||||
Reference in New Issue
Block a user