Add missing overrides used for common inliner
This commit is contained in:
+7
-3
@@ -328,7 +328,7 @@ internal class KonanSymbols(context: Context, private val symbolTable: SymbolTab
|
|||||||
|
|
||||||
override val getContinuation = internalFunction("getContinuation")
|
override val getContinuation = internalFunction("getContinuation")
|
||||||
|
|
||||||
val returnIfSuspended = internalFunction("returnIfSuspended")
|
override val returnIfSuspended = internalFunction("returnIfSuspended")
|
||||||
|
|
||||||
val coroutineLaunchpad = internalFunction("coroutineLaunchpad")
|
val coroutineLaunchpad = internalFunction("coroutineLaunchpad")
|
||||||
|
|
||||||
@@ -336,6 +336,10 @@ internal class KonanSymbols(context: Context, private val symbolTable: SymbolTab
|
|||||||
|
|
||||||
val konanCoroutineContextGetter = internalFunction("getCoroutineContext")
|
val konanCoroutineContextGetter = internalFunction("getCoroutineContext")
|
||||||
|
|
||||||
|
override val suspendCoroutineUninterceptedOrReturn = konanSuspendCoroutineUninterceptedOrReturn
|
||||||
|
|
||||||
|
override val coroutineGetContext = konanCoroutineContextGetter
|
||||||
|
|
||||||
private val coroutinesIntrinsicsPackage = context.builtIns.builtInsModule.getPackage(
|
private val coroutinesIntrinsicsPackage = context.builtIns.builtInsModule.getPackage(
|
||||||
context.config.configuration.languageVersionSettings.coroutinesIntrinsicsPackageFqName()).memberScope
|
context.config.configuration.languageVersionSettings.coroutinesIntrinsicsPackageFqName()).memberScope
|
||||||
|
|
||||||
@@ -345,10 +349,10 @@ internal class KonanSymbols(context: Context, private val symbolTable: SymbolTab
|
|||||||
val continuationClassDescriptor = coroutinesPackage
|
val continuationClassDescriptor = coroutinesPackage
|
||||||
.getContributedClassifier(Name.identifier("Continuation"), NoLookupLocation.FROM_BACKEND) as ClassDescriptor
|
.getContributedClassifier(Name.identifier("Continuation"), NoLookupLocation.FROM_BACKEND) as ClassDescriptor
|
||||||
|
|
||||||
val coroutineContextGetter = coroutinesPackage
|
override val coroutineContextGetter = symbolTable.referenceSimpleFunction(coroutinesPackage
|
||||||
.getContributedVariables(Name.identifier("coroutineContext"), NoLookupLocation.FROM_BACKEND)
|
.getContributedVariables(Name.identifier("coroutineContext"), NoLookupLocation.FROM_BACKEND)
|
||||||
.single()
|
.single()
|
||||||
.getter!!
|
.getter!!)
|
||||||
|
|
||||||
override val coroutineImpl get() = TODO()
|
override val coroutineImpl get() = TODO()
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -70,7 +70,7 @@ internal class FunctionInlining(val context: Context) : IrElementTransformerVoid
|
|||||||
descriptor.isBuiltInSuspendCoroutineUninterceptedOrReturn(languageVersionSettings) ->
|
descriptor.isBuiltInSuspendCoroutineUninterceptedOrReturn(languageVersionSettings) ->
|
||||||
context.ir.symbols.konanSuspendCoroutineUninterceptedOrReturn.owner
|
context.ir.symbols.konanSuspendCoroutineUninterceptedOrReturn.owner
|
||||||
|
|
||||||
descriptor == context.ir.symbols.coroutineContextGetter ->
|
descriptor == context.ir.symbols.coroutineContextGetter.owner.descriptor ->
|
||||||
context.ir.symbols.konanCoroutineContextGetter.owner
|
context.ir.symbols.konanCoroutineContextGetter.owner
|
||||||
|
|
||||||
else -> (symbol.owner as? IrSimpleFunction)?.resolveFakeOverride() ?: symbol.owner
|
else -> (symbol.owner as? IrSimpleFunction)?.resolveFakeOverride() ?: symbol.owner
|
||||||
|
|||||||
Reference in New Issue
Block a user