IR BE Common: IrSimpleFunction.isOperator
This commit is contained in:
@@ -486,7 +486,8 @@ fun IrClass.addFakeOverrides() {
|
||||
isTailrec = irFunction.isTailrec,
|
||||
isSuspend = irFunction.isSuspend,
|
||||
isExpect = irFunction.isExpect,
|
||||
isFakeOverride = true
|
||||
isFakeOverride = true,
|
||||
isOperator = irFunction.isOperator
|
||||
).apply {
|
||||
descriptor.bind(this)
|
||||
parent = this@addFakeOverrides
|
||||
@@ -528,7 +529,8 @@ fun createStaticFunctionWithReceivers(
|
||||
isTailrec = false,
|
||||
isSuspend = oldFunction.isSuspend,
|
||||
isExpect = oldFunction.isExpect,
|
||||
isFakeOverride = origin == IrDeclarationOrigin.FAKE_OVERRIDE
|
||||
isFakeOverride = origin == IrDeclarationOrigin.FAKE_OVERRIDE,
|
||||
isOperator = oldFunction is IrSimpleFunction && oldFunction.isOperator
|
||||
).apply {
|
||||
descriptor.bind(this)
|
||||
parent = irParent
|
||||
|
||||
+9
-7
@@ -57,7 +57,8 @@ abstract class AbstractSuspendFunctionsLowering<C : CommonBackendContext>(val co
|
||||
|
||||
protected abstract fun initializeStateMachine(coroutineConstructors: List<IrConstructor>, coroutineClassThis: IrValueDeclaration)
|
||||
|
||||
protected open fun IrBuilderWithScope.generateDelegatedCall(expectedType: IrType, delegatingCall: IrExpression): IrExpression = delegatingCall
|
||||
protected open fun IrBuilderWithScope.generateDelegatedCall(expectedType: IrType, delegatingCall: IrExpression): IrExpression =
|
||||
delegatingCall
|
||||
|
||||
private val builtCoroutines = mutableMapOf<IrFunction, BuiltCoroutine>()
|
||||
private val suspendLambdas = mutableMapOf<IrFunction, IrFunctionReference>()
|
||||
@@ -308,9 +309,7 @@ abstract class AbstractSuspendFunctionsLowering<C : CommonBackendContext>(val co
|
||||
private val continuationType = continuationClassSymbol.typeWith(irFunction.returnType)
|
||||
|
||||
// Save all arguments to fields.
|
||||
private val argumentToPropertiesMap = functionParameters.associate {
|
||||
it to coroutineClass.addField(it.name, it.type, false)
|
||||
}
|
||||
private val argumentToPropertiesMap = functionParameters.associateWith { coroutineClass.addField(it.name, it.type, false) }
|
||||
|
||||
private val coroutineBaseClass = getCoroutineBaseClass(irFunction)
|
||||
private val coroutineBaseClassConstructor = coroutineBaseClass.owner.constructors.single { it.valueParameters.size == 1 }
|
||||
@@ -491,7 +490,8 @@ abstract class AbstractSuspendFunctionsLowering<C : CommonBackendContext>(val co
|
||||
isTailrec = false,
|
||||
isSuspend = false,
|
||||
isExpect = false,
|
||||
isFakeOverride = false
|
||||
isFakeOverride = false,
|
||||
isOperator = false
|
||||
).apply {
|
||||
d.bind(this)
|
||||
parent = coroutineClass
|
||||
@@ -558,7 +558,8 @@ abstract class AbstractSuspendFunctionsLowering<C : CommonBackendContext>(val co
|
||||
isTailrec = false,
|
||||
isSuspend = true,
|
||||
isExpect = false,
|
||||
isFakeOverride = false
|
||||
isFakeOverride = false,
|
||||
isOperator = false
|
||||
).apply {
|
||||
d.bind(this)
|
||||
parent = coroutineClass
|
||||
@@ -617,7 +618,8 @@ abstract class AbstractSuspendFunctionsLowering<C : CommonBackendContext>(val co
|
||||
isTailrec = stateMachineFunction.isTailrec,
|
||||
isSuspend = stateMachineFunction.isSuspend,
|
||||
isExpect = stateMachineFunction.isExpect,
|
||||
isFakeOverride = false
|
||||
isFakeOverride = false,
|
||||
isOperator = false
|
||||
).apply {
|
||||
d.bind(this)
|
||||
parent = coroutineClass
|
||||
|
||||
+2
-1
@@ -527,7 +527,8 @@ class LocalDeclarationsLowering(
|
||||
isTailrec = oldDeclaration.isTailrec,
|
||||
isSuspend = oldDeclaration.isSuspend,
|
||||
isExpect = oldDeclaration.isExpect,
|
||||
isFakeOverride = oldDeclaration.isFakeOverride
|
||||
isFakeOverride = oldDeclaration.isFakeOverride,
|
||||
isOperator = oldDeclaration.isOperator
|
||||
)
|
||||
newDescriptor.bind(newDeclaration)
|
||||
|
||||
|
||||
+2
-1
@@ -85,7 +85,8 @@ class PropertiesLowering(
|
||||
return IrFunctionImpl(
|
||||
UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, symbol, Name.identifier(name),
|
||||
declaration.visibility, Modality.OPEN, context.irBuiltIns.unitType,
|
||||
isInline = false, isExternal = false, isTailrec = false, isSuspend = false, isExpect = false, isFakeOverride = false
|
||||
isInline = false, isExternal = false, isTailrec = false, isSuspend = false, isExpect = false, isFakeOverride = false,
|
||||
isOperator = false
|
||||
).apply {
|
||||
descriptor.bind(this)
|
||||
|
||||
|
||||
+2
-1
@@ -128,7 +128,8 @@ fun IrFunctionBuilder.buildFun(originalDescriptor: FunctionDescriptor? = null):
|
||||
IrSimpleFunctionSymbolImpl(wrappedDescriptor),
|
||||
name, visibility, modality, returnType,
|
||||
isInline = isInline, isExternal = isExternal, isTailrec = isTailrec, isSuspend = isSuspend, isExpect = isExpect,
|
||||
isFakeOverride = origin == IrDeclarationOrigin.FAKE_OVERRIDE
|
||||
isFakeOverride = origin == IrDeclarationOrigin.FAKE_OVERRIDE,
|
||||
isOperator = isOperator
|
||||
).also {
|
||||
wrappedDescriptor.bind(it)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user